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