xx x x x x x x x x x xxxxxxx x x x x x x x x x xxxxxxxxxxxxxxxxxxxxx x xxx x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x xxx x x x x x x x x x x x x x x x x x x x x x x x x x x x x x xxx x xxx x x x x x x x x x xxxxxxx x x x x x x x x x xxxxxxxxxxxxxxxxxxxxx x xxx x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x xxx x x x x x x x x x x x x x x x x x x x x x x x x x x x x x xxx x x x x x xxxxxxx x xxxxxxx x x x xxx x x x x x x x x x x x xxxxxxx x xxx x x x xxx x xxx x x x x x x x x x x x xxxxxxx x xxxxxxx x x x xxx x x x x x xxxxxxxxx x x x x x x x x x x x x x x x xxxxx x x x x x x x x x xxxxxxx x xxxxxxx x x x xxx x x x x x x x x x x x xxxxxxx x xxx x x x xxx x xxx x x x x x x x x x x x xxxxxxx x xxxxxxx x x x xxx x x x x x xxxxxxxxx x x x x x x x x x x x x x x x xxxxx x xxxxxxx x x x x x x x x x xxxxxxx x x x x x x x x x xxxxxxxxxxxxxxxxxxxxx x xxx x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x xxx x x x x x x x x x x x x x x x x x x x x x x x x x x x x x xxx x x x xxxxxxxxxxxxxxxxxxxxx x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x xxxxxxxxxxx x xxxxxxxxxxx x xxxxxxxxxxxxxxxxxxxx x xxxx xx x xxx x x x x x x x x x x x xxxxx x xxxxxxxxxxxxxxxxxxxxxxx x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x xxxxxxxxxxx x xxxxxxxxxxx x xxxxxxxxxxxxxxxxxxxx x xxxx xx x xxx x x x x x x x x x x x xxx x xxxxxxxxxxxxxxxxx x x x xxxxxxxxx x x x xxx x x x xxxxx x x x xxxxxxx x x x xxx x x x x x x x xxxxxxxxxxxxxxx x x x xxx x x x xxx x x x xxx x xxxxx x xxxxx x xxxxxxxxxxxxx x xxx x xxxxxxxxxxxxxxx x x x xxxxxxxxx x x x xxx x x x xxxxx x x x xxxxxxx x x x xxx x x x x x x x xxxxxxxxxxxxxxx x x x xxx x x x xxx x x x xxx x xxxxx x xxxxx x xxxxxxxxxxxxx x xxx x x x x