
....................````````````````````........``````````````````````````````.........``````````.........````......................................................................
...................`````````````````````........``````````````````````````````.........``````````.........`````..`````................................`....```......................
...................````````````````````.........`````````````````````````````..........````..```..........`````..`````..............................................................
...................``.`````````````````.........`````````````````````````````..........````..``...........````...```........................................``......................
..................`````````````````````........``````````````````````````````..........````......................````...............................................................
..................``.``````````````````........``````````````````````````````..........```..................``...```................................................................
.....................`````````````````.........````````````````````````.````............`....................`......................................................................
.....................`````````````````.........``````````..`````..`````.````........................................................................................................
.....................`````````````````.........`````````````````````````````..............................````..`````.............`......`..........................................
.....................`````````````````........``````````````````````````````................................`....````.............`......`............`.............................
.....................`````````````````........``````````````````````````````.......;;;;;;;;...............````..`````.............`..`..............................................
....................`````````````````.........```````````````````````````......;;;;;;;;;;;;;;;;;;;;;;.............................`..`..``..`......`................................
....................`````````````````........````````````````````````......;;;;;;;;;;;;;;;;;;;;;;;;;;;............................`..`..``..``.....`.`..............................
...........................```..````.........`````````````````````......;;;;;;;;;;;;;;;;;+++++;;;;;;;;;.....;;;;;;;...............`.................```.............................
....................`````````````````.........````..```.............;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;+;;;...............................```.............................
....................`````````````````........``````````````````..;;;;;;;;;;;;;;;;;;+;++++++++++++++;;;;;;+;;+++++;;;;...............................................................
....................`````````````````........`````````````````.;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++;;;;;;..........`..`````..`````..````...````.......................
...................`````````````````.........```````````````..;;;;;;;;;.;;;..;;;;+++++++++++++++++++++++++++++++++;;;;;;;;;;;;.........```.`````..```....`````......................
...................`````````````````.........``````````````..;;;.;;;.;;;;;;.;;+;++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;.....`````..`````..``````.`````......................
...................`````````````````........................;;+;.;;.;;;;;;;;++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;.....````..``````.``````.`````......................
..............................`````.........................;++;;;;;;+;;+;+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;....................................................
..................`````````````````.......................;;++++++;++++++++++++++++++++++++++++++++++++++++++++++++++;;;;++++;;;;...................................................
.```..`````...``..`````````````````......................;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;+++++++++;..................................................
````````````````..`````````````````......................;;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;+++++++++++;;;..............................................
````````````````.``````````````````.....................;++++++++++++++++++++++++++++++++++++++++++++++++++++*+**+++++++++++++++++++++;;............................................
````````````````.`````````````````....................;;;++++++++++++++++++++++++++++++++++++++++++++++++++++*****+++++++++++++++++++++;;;..........................................
````````````````.`````````````````..................;;;;++++++++++++++++++++++++++++++++++++++++++++++++++++*++*++*+++++++++++++++++++++;;;;........................................
````````````````.```````````.````..................;;;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;.......................................
``````````````````````````````````...........`.....;;;;+++++++++++++++++++++++++++++++++++++++++++++++++++*+++++++++++++++++++++++++++++++;;;.......................................
``````````````````````````````````........`````....;;;++++++++++++++++++++++++++++++++++++++*++++++++++++++++++++++++++++++++++++++++++++++;;;......................................
``````````````````````````````````........`````..;;;++++++++++++++++++++++++++++++++++++*+***+++++++++++++++++++****++++++++++++++;;++++++++;;......................................
`````````````````````````````````.........````...;;;++++++++++++++++++++++++++++++++++++*****+++++*+++++++++++**********++++++++++;;+++++++++;;......``...````......................
`````````````````````````````````.........````...;;;++++++++++++++++++++++++++++++++++++****+++++++++++++++**************+++++++++;;;;++++++++;;......`...````......................
`````````````````````````````````.........````..;;+++++++++++++++++++++++++++++++++++++*****+++++++++****+****************++++++++++;;++++++++;;....................................
```````````````````...`...................```...;;+++++++++++++++++++++++++++++++++++*****++++++++++**********************++++++++++;;++++++++;;;...................................
`````````````````````````````````.........```...;;+++++++++++++++++++++++++++++++++++****++++++++++************************+++++++;;;;+++++++;;;;...................................
`````````````````````````````````.........``......;;+++++++++++++++++++++++++++++++++***+*++++++++****************************+++;;;;++++++++;;;;;..................................
````````````````````````````````...................;++++++++++++++*++++++++++++++++++**++++++++++******************************+++;;;;;++++++;;;;;..................................
````````````````````````````````....................;++++++++++++++*++++++++++++++++++++++++**+++********++*********************+++;;;;;;++++++;;;;.................................
````````````````````````````````....................;;;;+++++++++++++++++++++++++++++++++++++++++++*****++++*********************+++;;;;;;;++++;;;;.................................
````````````````````````````````....................;;;;++++++++++++++++++++++++++++++++++++++++++++****++++**********************+++;;;;;;;;;;;;;;.................................
````````````````````````````````....................;;;;++++++++++++++*+++++++++++++++++++++++++++++*++*++*************************+++;;;;;;;;;;;;;;................................
```````````````````````````````......................;;;++++++++++++++++++++++++++++++++++++++++++++++*+++**************************++++;;;;;;;;;;;;................................
````````````````` `````````````......................;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++*************************++++++++;;;;;;;.............................`.
````````````````` ``    `` ````......................;;;++++++++++++++++++++++++++++++++++++++++++++++++++++++++************************++++++++;;;;;............................``.
```````````````   ``    ```````......................;;;++++++++++++++++++++++++++++++++++++++++++++++++++++++++*************************++++++++;;;................................
```````````````````  `  `` ` ```..................`...;;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*************************++++++;;;...........................````.
`````````````` ` ``     `    ```.................``....;;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++***********************+++++;;;..........................`````.
```````````````` ``    `` ``````................```.`..;;++++++++++++++++++++++++;;;;;;;;;;;+++++++++++++++++++++++++++*********************+++++;;;..........................`````.
````````````````````````````````....................``..;;++++++++++++++++++++;;;;;;;;;;;;;;++++++++++++++++++++++++++**********************+++++;;;..........................`````.
`````````````    `     ``    ````...............``..```..;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++**********************+++++;;;;.........................`````.
```````````````````    ``   `````..............````````..;;++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++***********+**++*****+++++;;;;........................``````.
````````````````````````````````...........``.````````....;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++****+*****+++*++*+**+++++++;;;;.......................``````.
``````````````` ``    ````` `````.........``..............;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++***++****+++*+*+++++++++++;;;;...........................``.
`````````````````` `  ````` `````.....`````````````````...;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++***++****++****+++++++++++;;;;........................`````.
```````````````````````````````.......```````````..````..;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++****++***********++++++++++;;;;....................`..``````.
```````````````````````````````......``````````````````..;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++****+*****+*****++++++++++;;;;;.......................`````.
```````````````````````````````......``````````````````..;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++*********+++****+++++++++++;;;;.............................
````````````````````````````````.........................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++****++**+++***++++++++++++;;;;.............................
`````````````  `` `  ``    ``````....`````.`````........;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++****++***+++**+++++++++++;;;;;;.......................```..
``````````````````` ```````````.....``````````````````..;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++****+++**++++++++++++++++;;;;;;............................
````````````````````````````........````````````.`````.;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++****++***++++++++++++++++;;;;;;;...........................
`````````````````````````````........``..............`..;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++*+*****+****+++++++++++++++;;;;;;............................
````````````  ``    ``    ```.`......```````````........;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++**+***++****++++++++++++++;;;;;;.......................``...
`````````````````````````````........`````````````````..;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++*+*++****++++++++++++++;;;;;;.......................```..
```````````` ````` ```````````......```````````.`````...;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++**+++++++++++++++++;;;;;;.....................`````..
````````````  `     `     `````....```````````````````..;;;;;;;;;;;;;;;;;++;;;;;;++;;;;;;;;;;;;;;;+++++++++++++++++++++++++++++*++++++++++++++++++;;.;;;.....................`.```..
```````````  ``     `     ````.....```````````````````..;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++++++++++++;;;.;;;............................
```````````  ``     `    `````.....```````````````````..;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++++++++++++;;;..;;.................``..``````.
```````````  `     ``    ````.....````````````````````..;;;;;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++++++++++++;;;..;;.................``..``````.
``````````` ``     ``    ```......````````````````````.;;;;;;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++++++++++++;;;..;;..`.........................
``````````` ``     ``    ```......````````````````````.;;;;;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;.................`...``````.
``````````````````````````.........```````````````````.;;;;;;;;;;;;;;;;;;+;+++++++;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++++++++++;;;;;;...............````.```````.
``````````  ``    ```   ``........````````````.``````..;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++++++++++;;;;;;...............````.```````.
``````````  `     ```   ``........```````````````````..;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++++++++;;+;++..`............````.```````.
``````````  `     ````````........```````````````````..;;;;;;;;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++++++++;;;++;.``...........`````.```````.
``````````  `     ``  ````........``````````````````..;;;;;;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++++++;;++;..............`````.```````.
``````````  `     ```````........```````````````````.;;;++;;;++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++++++;;+++...............````.```````.
`````````         `   ```........```````````````````.;+++++;;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++++++;;+++.``....................```..
````````````````````````.........````````````````````.;++++;;++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++++++++;.``..................`````..
````````````````````````...................``````````.;+;+++;++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++++++++;.``..........``````.```````.
````````   `     ```````.........`````````````````.....;;+++;;+++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++++++++;.`............````..``````..
````````` ``     ```````........````````````````  `````;;++++;;+++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++++++++;.``..........`````..```````.
````````` ``    ````````........```````````````````````.;++++;;;;;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++;;;;;++++++++++++++;;.``..........``````.````````
````````````    ````````........```````````````````````..++++;;;;;;;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++;+++;;;;;;;+++++++++++++;;``...........```````````````
````````````    ```````.........````````````````````````.;++;;;;;;;;;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++;+;;;;;;;;;;;+++++++++;;;;.............`````..`````...
```````````` ``````````.........`````````````````````````.++;;;;;;;;;;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;++;+++++++++++++++;;;;;;;;;;;;+++++++++++;;............................
```````````````````````.........`````````````````````````.;;;;;;;;;;;;++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;+;+++;;+++++++++;;+++;;;;;;;;+++++++++++;;``..........................
``````````````````````..........`````````````````````````.;.;;;;;;;;;;++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;+;++;;;;;+++++;;+++++;;;;;;;;++++++++++;.``.............``.....````..
``````````````````````.........```````````````````.``````.;.;;;;;;;;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;++++;;;++;;;;++++++++++;.``.............``.....````..
``````````````````````.........`````````````````````````...;;;;;;;;;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++++;;;;++;;;;+++++++++;;.``....................```...
``````````````````````.........``````````````````````````.;;;;;;;;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++++;;;;;++;;;+++++++++;;.``.....................``...
``````````````````````.........`````````````````````````..;;;;;;;+;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;++++;;;;;++;;;+++++++++;..`...........................
...```````````````````.........`````````````````````````.;+++;+;;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;++;;;+++++++++;..``..........................
...``````````````````..........`````````````````````````;+++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...;;;;;;;+++++;;;;;+;;;+++++++++;..............................
.....```.````````````.........`````````````````````````.;+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..;;;;;;+++++++;;;;+;;+++++++++;..``...........................
....````````````````...........```````````````````````.;;+;+++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++;;;;+;;+++++++++;...`...........................
....`````````````````.........````````````.```````````;;;;;;++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++;;;;;;;+++++++++....`...........................
....`````````````````.........```````````````````````.;;;;;;++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;+++;;;;;;+++++++++;................................
....````````````````..........``````````````````````.;;;;;;;+++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++;;;;;;+++++++++;................................
....````````````````..........``````````````````````.;+;;;;;+++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++;;;;;++++++++++.................................
....```.```````````...........`````````````````````.;++;;;;;;++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;+++;;;;;+++++++++;.................................
.........````.`````..........``````````````````````.;++;;;;;+++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;++;;;;;++++++++++;.................................
..............................`````````````````````.;++;;;+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;+++++++++;..................................
....``..```.............................`.`````````..;+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;++++++++++;..................................
........`````.`````...........`.......................;+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++;;;;;;;;;;++++++++++;...................................
.................``..........```````````````...........;++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;;;;++++++++++;...................................
.............................``````````````````..````...;+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++;;;;;;;;+++++++++++....................................
..............````...................```.``````..`````..;+;++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;++++++++++;....................................
................``...........````.``................`...;;;+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;++++++++++.....................................
.............................````.``````.`````..........;;.+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;+++++++++;.....................................
.............................````.``````.`````..`````...;;;++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;++++++++;;;;;;;;;+++++++++.;;;;;;;....;;;;;.....................
..............................``..`````..`````...```.....;;;+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;++++++++;...........;;;;;;;;...................
..........................................```............;;+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;++++++++;...........;;;;;;;;;;.................
.........................................................;;+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++............;;;;;;;;;..................
..................................````....```............;;+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;............;;;;;;;;;..................
..................................````......`.............;+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;;;;;;;;;;;;;;;;;.................
..........................................................;++++++++++++++++.;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;............;;;;;;;;;;;;;;;;;;..........
..........................................................;++++++++++++++++;+***++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;............;;;;;;;;;;;.................
...........................................................++++++++++++++++;+***++++++++++++;;..;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;....;.......;;;;;;;;;;;;................
...........................................................;+++++++++++++++;+****+++++++++++++.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;.....;;;;;;;;;;;;;;;;.;...........
...........................................................;++++++++++++++++++++*+++++++++++++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;.....;......;;;;;;;;;;;;;;;;;;...........
...........................................................;;;++++++++++++++++;++**++****+**;+***++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............;;;;;;;;;;;;;;;;;;;;........
...........................................................;;;+++++++++++++++;+++++++++++*++;;;++;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............;;;;;;;;;;;;;;;;;;;;........
................;;;.;;;....................................;;;++++++++++++++++++++++++++**++++;+*++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...............;;;;;;;;;;;;;;;;;;;;........
................;;;;;;;;....................................;;+++++++++++++++++++*+++***++**+;++*+++++++;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;..............;;;;;;;;;;;;;;;;;;;;;;.......
................;;;;;;;;...................................;;;;+++++++++++++;+**+++**++++*++++++++++++++++;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;..............;;;;;;;;;;;;;;;;;;;;;;.......
................;;;;;;;;...................................;;;;+++++++++++++++++++++++++*++++++++++++++++++;;;;;;;;++++++;;;;;;;;;;;;;;;;.............;;;;;;;;;;;;;;;;;;;;;;;;;;;...
......;;;;;...;;;;;;;;;;...................................;;;;++++++++++++++++++*++++*++++*+;;++++++++++++;;;;;;;+++++++;;;;;;;;;;;;;;;;..............;;;;;;;;;;;;;;;;;;;;;;;;;;...
..............;;;;;;;;;;;.................................;;;;;;++++++++++++++*++++**+++**+++++++;+++++++++;;;;;;++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.
...............;;;;;;;;;.....;......;.....................;;;;;;+++++++++++++++++*++++++++++++;++;+++++++++;;;;;;+++++++;;;;;;;;;;;;;;;;;......;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
...............;;;;;;;;;................;;;;;;............;;;;;;+++++++++++;++++**+++**++++++;+++;+++++++++;;;;;++++++++++;;;;;;;;;;;;;;;......;.....;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
..............;;;;;;;;;;..........................;;....;;;;;;;;;+++++++++++++**+++**+++**+++++++;++++++++++;;;;+++++++++++;;;;;;;;;;;;;;;...........;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;