;^^^^^^^^^^^^^^^^""""";;;;;;((((((((((*GGe7**(((;;;;;;"""""^^^^^^^^^^::'''''''''
"^^^^^^^^^^^^^^^""""";;;;;;(((((((((**fBk#kfJjJ7([;;;"""^^^^^^^^^::::'''''`````'
;^^^^^^^^^^^^^""";;;;;;;;(((([eeCGZyGkBB#kkB#B#pB#pJy2;;"""^^^^^:::'''''''`'``''
;"^^^^^^"""""";;;;;;;;;((2GfpBBBBB########p#@BJeyqqC7c(;;;"""^^^^^^:::::''''''''
;""""""""""";;;;;;;;;(((ck#G1eZq#pJk@@jf#JcQBp1(((;77c1(;;;"""^^^^^^^^^^:::'''':
;;;;;;;;;;;;;;;;;;;;(([@##kG7*1#j1cy[cGfp#@kkG7"^;;77[71*;;;;;""""^^^^^^^^::::::
(;;;;;;;;;;;;;;;;;((((cB##17(7*2cyqqc[C@@#p@eqQ[(77("7712;;;;;;"""""^^^^^^^^:::^
(;;;;;;;;;(;;((((((((*2#Bf1CyJjyB#@Z7(e1cJ(1*(7(;^(((;(717;;;;;;;;""""""^^^^^^^^
*(((((((((((((((((((*7Jkky2GkZZ@QqC1c;.';(;7;(;^`;7(^([1[27(((;;;;;;;"""""^^^^^^
*(((((((((((((((***7772CcqG2Jc1ZZZye7"";*c(7;^''`:^^;2C27211*(((((;;;;;;;;""""""
*((((****777777777777[[[2@kyecJB#yqyCCq[[J1*1;(*7;(':;^;7cc2777***((((;;;;;;;;;;
7******7777777777[[[[[112JQ@#Q##p@ej7Gf2JC[17;7[7CJ(`;(7[1J2777777(((((((((;;;;;
77**7777777777[[[[111122cZB#Jy@kJe717*Gyye11[**72q1777(7j21[[[7777**(((((((((;;;
[77777777[[[[[[[1111222cG##fe[1221777*7((2CC1[CyZZCCejcC211[[[[777****((((((((((
[7777777[[1111121222cccck#B#@q1;^";[2*;((121eeZGJJyc22222211[[[[777777*(*(((((((
[[[[[[[11121122222cccccCe#p@k#k1*7"^*7((2ceCejZyCCCcccc2222111[[77777777****(((*
11111112222c2ccccccCCCCeejyQe7(":``::;*7CZfpfGJeeeeeCCCCcc221111[[777777777777**
22222ccccCCCCCCCCeejjjjjJJGke*;^.:^^(72ceGZyJjjJJJJJJjjeeCCCcc22222211[[[7777777
CCcCcCCCeejjjjjjjJJJyyyGGGq#qyG[(;";(1cCjJyyyyyGGGGyyyJJJJJjeeCCCCcc2111[[[77777
JjjejjjJJJyyyyyyyyGGGZZZqQf##fcGj*71(1eyGGZZqqZZZZZZGGGGGGyyJJJjeCCCc222111[[[7[
yyyGGGyGGZZqqQQQQQqQQQfff@pkpC[2Z27[[jGZqqQQfQQQQqqqqqqqqZZGGGyJjjjeCCCc22211111
GGGZqQQQfffff@@@@@@@@@pppp#BpQ[;;;*71JqQfff@@ffffffQQffQQQZZZZZGyJJjeCCCccc21111
ZZZqQff@@@@@@ppppppppppkkk##@Q2c;7[[2Gq@@@@ppp@@@@@f@@@fffQqqqqqZGyyJjeeeeCccc22
qqqQQf@@@ppkkkkkkkkkkkkkkk#j2Z7(*e**GQfpkkkkpppppppppp@@@@ffQQqqZZGGGyJJJjjeCCcc
QQQffff@@pppkkkkk##########k#qqZZQpkkkQJf###kkppppppkkppp@@fffQqqZZZGGyJJjjjeeee
p@@ppkkkkkkkkkk#k#k#####pfZJpBBBBBBBBBkZjyqk##kkkkkkkkkpp@fQQQQqZZZGGGyyJJJJJJJj
kkkk#################pQj21cZ#BBBBBBB#p1^'"([2f##kkkkkkkkpp@ffQQqqZZZZGGGGyyJjjjj
@@@ppkk###########@Zjc[*77[2cJJJfqqQj7;([2**(17j@######kkkkpp@@@ffQQQqqZZZZGGGyy
@@@pppkkk#####@Ge2217((*(((777(;;7*;*;^^*77[(77(*2Q########kkpp@@@fffQQQQqqZZZGG
@@@@@ppkkk@Ze17777[7(;"*((;(;^:";(771;^^;;7;;77:7(7*cGf#####kkkppp@@ffQQqqZZGGyG
ppppkkqj1*;;;(;;;(;;^:^(;(;^^";;*711(;*;.:^("77;*((;;;(;7ejJGG@kkpp@@fffQQqZZZGG
@QyC(^''^^^"^^;;:'^:::^"^^:^;(;((*[777*;:::^"^;;"*;;;;"(;(((;;^(1yyQf@fQQQqyeCCC
: .````'```:'`'`^;;";^;;""^^^::''.`.':'`'::^^^^''^^:^^"^^^^^'':````'..''`''`:...