From 459df6ef4034ea01582594fcd389bd0f417bedd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johan=20Bov=C3=A9?= Date: Tue, 4 Feb 2020 22:47:28 +0100 Subject: [PATCH 001/464] Added jbm8b --- apps/jbm8b/Changelog | 2 + apps/jbm8b/add_to_apps.json | 23 ++++++++++ apps/jbm8b/app-icon.js | 1 + apps/jbm8b/app.js | 85 ++++++++++++++++++++++++++++++++++++ apps/jbm8b/app.json | 6 +++ apps/jbm8b/app.png | Bin 0 -> 2635 bytes 6 files changed, 117 insertions(+) create mode 100644 apps/jbm8b/Changelog create mode 100644 apps/jbm8b/add_to_apps.json create mode 100644 apps/jbm8b/app-icon.js create mode 100644 apps/jbm8b/app.js create mode 100644 apps/jbm8b/app.json create mode 100644 apps/jbm8b/app.png diff --git a/apps/jbm8b/Changelog b/apps/jbm8b/Changelog new file mode 100644 index 000000000..bd71ffcd5 --- /dev/null +++ b/apps/jbm8b/Changelog @@ -0,0 +1,2 @@ +0.01: First working version +0.02: Added delay in replying for dramatic effect \ No newline at end of file diff --git a/apps/jbm8b/add_to_apps.json b/apps/jbm8b/add_to_apps.json new file mode 100644 index 000000000..ffa033f75 --- /dev/null +++ b/apps/jbm8b/add_to_apps.json @@ -0,0 +1,23 @@ +{ + "id": "jbm8b", + "name": "Magic 8 Ball", + "icon": "app.png", + "description": "A simple fortune telling app", + "tags": "game", + "storage": [ + { + "name": "+jbm8b", + "url": "app.json" + }, + { + "name": "-jbm8b", + "url": "app.js" + }, + { + "name": "*jbm8b", + "url": "app-icon.js", + "evaluate": true + } + ], + "version": "1.1.0" +} \ No newline at end of file diff --git a/apps/jbm8b/app-icon.js b/apps/jbm8b/app-icon.js new file mode 100644 index 000000000..b2da211af --- /dev/null +++ b/apps/jbm8b/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("slkgRC/AF1a1WpoAWSgO//4AB/1QDCNvC4QZCGaELC4gAB/BITAAmAGCoyQGBAABMpkHC5P/8AYLl4YK/pJWPxkDC5ZLLj4YM/gYJv4YM/4YJC5v/4BiVMhUPDBz8IYpbJMPZx9JC559HPZ4AB6AYFg4YQ+CUVSxEfDCCWGn4YQSwytH/2V34YHoCtMRYMBBQ+AC4YNHLAcvZBcCBg30gFZgELZBbfH8DPB8ALHZAjfH4C2B/hWHDAg+HwC2B/yIHKwL4KoCsCDA76EDBYDDAAf8DAZaBDCy7HwF/JRLTDgBzBSox8KBAIYK6CuCdg4YM+DQBAQQAGDBZwBtVARA4YMSQILBSgwYFRgSWGgEBBQ4YMUQa6HDBnwSQPQPhgYH4CuKPhlAfJQYMCgeAHw4YK/ySD4AlIDBP8gYEC6CWG/wYP8D6GDAgkGDBjTDgALGDBn8DAcPBYzDDMY4YLSpn4DAcLUI+/cgoAD+gYDg75HIwJzBBY3wDAZ0DAAfAEIPgJwYYIOgYMFig9I6AYDEo67DVow9BDAZXH/+QEZH/wAYERIwAB1SXCUIwAEXYwAK/wYFLA4AJfAj6IABT4EcJIAJYwjIJABLGEV5QAIVoqvKVpoABl4XO/oYHhYYO+gYHgYYO8AYHPp57HAAM/C5n+C5D7Oe4ziRMRIAB34YLoAYKj7FTWB5JLAAN/JKr8LexB+PGBoABg4wWAAMvSSIAGt4XC/xIPAAkV1WVCyYA/AH4A/AH4Ai")) \ No newline at end of file diff --git a/apps/jbm8b/app.js b/apps/jbm8b/app.js new file mode 100644 index 000000000..0fd5a177c --- /dev/null +++ b/apps/jbm8b/app.js @@ -0,0 +1,85 @@ +const affirmative = [ + 'It is\ncertain.', + 'It is\ndicededly\nso.', + 'Without\na doubt.', + 'Yes\ndefinitely.', + 'You may\nrely\non it.', + 'As I see,\nit yes.', + 'Most\nlikely.', + 'Outlook\ngood.', + 'Yes.', + 'Signs point\nto yes.' +]; +const nonCommittal = [ + 'Reply hazy,\ntry again.', + 'Ask again\nlater.', + 'Better not\ntell you\nnow.', + 'Cannot\npredict\nnow.', + 'Concentrate\nand\nask again.' +]; +const negative = [ + 'Don\'t\ncount on it.', + 'My reply\nis no.', + 'My sources\nsay no.', + 'Outlook\nis not\nso\ngood.', + 'Very\ndoubtful.' +]; + +const title = 'Magic 8 Ball'; + +const answers = [affirmative, nonCommittal, negative]; + +function getRandomArbitrary(min, max) { + return Math.random() * (max - min) + min; +} + +function predict() { + // affirmative, negative or non-committal + let max = answers.length; + const a = Math.floor(getRandomArbitrary(0, max)); + // sets max compared to answer category + max = answers[a].length; + const b = Math.floor(getRandomArbitrary(0, max)); + // get the answer + const response = answers[a][b]; + return response; +} + +function draw(msg) { + // console.log(msg); + g.clear(); + E.showMessage(msg, title); +} + +function reply(button) { + const theButton = (typeof button === 'undefined' || isNaN(button)) ? 1 : button; + const timer = Math.floor(getRandomArbitrary(0, theButton) * 1000); + // Thinking... + draw('...'); + setTimeout('draw(predict());', timer); +} + +function ask() { + draw('Ask me a\nYes or No\nquestion\nand\ntouch the\nscreen'); +} + +g.clear(); + +Bangle.loadWidgets(); + +// Event Handlers + +Bangle.on('touch', (button) => reply(button)); + +setWatch(ask, BTN1, {repeat:true, edge:"falling"}); +setWatch(reply, BTN3, {repeat:true, edge:"falling"}); + +// Back to launcher +setWatch(Bangle.showLauncher, BTN2, {repeat:false, edge:"falling"}); + +Bangle.on('lcdPower', (on) => { + if (on) { + Bangle.drawWidgets(); + ask(); + } +}); \ No newline at end of file diff --git a/apps/jbm8b/app.json b/apps/jbm8b/app.json new file mode 100644 index 000000000..a378c4916 --- /dev/null +++ b/apps/jbm8b/app.json @@ -0,0 +1,6 @@ +{ + "name": "Magic 8 Ball", + "icon": "*jbm8b", + "src": "-jbm8b", + "version": "1.1.0" +} \ No newline at end of file diff --git a/apps/jbm8b/app.png b/apps/jbm8b/app.png new file mode 100644 index 0000000000000000000000000000000000000000..78128d47e33ce69755e21a155ee77979fa35f776 GIT binary patch literal 2635 zcmc&#_ct4gAB|bD#SV>!P$RL5SS_j8YDCoDjXh)bSv4C)?M*$Slv+V3+LEf#KBGmg zs{QO)wbxhwitp!~`?=?H&;9X!&P^~f&|;tk(*ghh1|4k_`i39>0S(2?)>6Sb-w>HU zTI&IzZisjN=Ad*zK12clgcQ092Py!70$`+%(fDH`BO@m#r=Xyqq@<*xqN1jzzIE#s z4Gj$t2&AQ@rK6*xr>AFNU|?iqWMX1sW@ct#VF7_atgNhTY;5f8>>L~%oSd9oTwL7T z++Z-6hlhukmlpzo@bmKv2nYxY3PPb!At51QVc|P>?udwph>3}bi;KfxFgP48DJdx> zB_$&xbNB9DIXO9bd3gi^p`f6ksHmu0K743sXlP_)ghr!HOiVBsjH#*VqeqX-%*@Qq%`Ge}EG;dq ztgNi9t!->B>fm$$dKpPwHNhx7OM z4-5ub93|Z^78ZZ3knK~ zii(Phi%UvMN=r-2%F4>i%PT7@U%!4`RaI48UH#_Go0^)M+S=N>y1M%M`i6!E0)f!j z*x1z6)ZE-mBobR%T3TCM-@bj@*4EbE-u~|0yUxzeuC6W;iPYWQ{pr)Eo}QlG-rl~x zzW)CH&!0bk`SN98U|?`?aA;^~czF2h*RNw^W8c4jA0Ho|n3$NHoSd4Pnx3Bi@#DwL z%*^cU?A+Yk{QUgF!ouR>;?mO6^78V^%F62M>e|}c`uh6D#>VF6=GNBM_V)J9&d%=c z?%v+s{{H^2U%w6x4u1dseRz0ybaZrle0*|pa(a4tc6N4tetvOrad~-pb#--peSH(c z|JRs*Uism17h=eohsy<|H=Xd!Y>QK2gjN-W!MCX z4Y08X`{_ZW-p;lMXid$8l8ShmswjlS=F7aP&dT7aDw`=q{~?E};u95>4tkfB%a_3` zMaq_Z*SFP}|N1B9MBRt{scNcxMDK{)Cc@088fJ%)RRZ=frwK+pJ%PYZmxD8md%KM? z&J4ZsivJT5(6a_G-{Y^ZmVT^=4+x*5F54tvea*VqU`cp z^MyZ8eg9c$A4-Zt6zaxG4?o1M(?PxDxLJFONUrCO2ok;29#_+IOOJsr&Ef`ox}(mm z(bCMCrp)fUyn!Aw5 z;RN{#1ezkCKBTOdA;L?#=tz%!bzkrOSulm@L?*lu zBx}PL4DC|rAV@H9l0KMJr)6#nrqjldYmDv9V+)giU;I!wSfbSS*dbLsu@uEA+Xy!z z7ie4x2-;`ZG>VM^grWB}FI*sHz0+_&4a4c4&SBuSOd>7EaO(;ZOhXZ?WfL zk|3OUT>~#!kf>c^ zf{+wyLs=?MltI9*NUB@Mt5TN(^)j;%&Jmx$%4C#Oh;VO4+6HZ}7-N9tZ9j&0{)g@kO^G{8n*m0#JEFcR$_v;RyxfHV=U=`5nM;7O3WlvK-pg8~!k zL-RER20|539AX*}juyc#lj=Qp((PM?Yzb0A<~B_jFPvT@3#7(!n!sYN=uygZKQ%_+ z4Mu>N9!F^mM=NS_e)dkxk6@ZV8a**Cf4s*a!}6W?lLtL{dFIt9_bJgh7gAL@gWRb^0UC&>X34ixSt&WuYucX$RUE~7HOeXy*Mck zPOBPCN}R1LlwO-lpvRFT#5JGir9s(v8}b&+bR5MgMVm$YEq)Fma^727wjEawen@L! zBrubVP2tfFap%+*gnNqRS@CiB3U*N!3C?C`+C-4bvn|_iEQMKCXHm5>EoBJIr5G7&s#rwzu>H>AuAKBYf@f`oFyUe z>~AOPmCrayM*9^;%#a3?cp>JyTYKC_JGu$CZARS literal 0 HcmV?d00001 From 67b2b08e0967e7c2a0523a855c6cb64f73b5e182 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johan=20Bov=C3=A9?= Date: Tue, 4 Feb 2020 22:55:32 +0100 Subject: [PATCH 002/464] Added jbm8b to apps.json --- apps.json | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/apps.json b/apps.json index 76151a627..e02bc3d43 100644 --- a/apps.json +++ b/apps.json @@ -751,5 +751,31 @@ {"name":"*demoapp","url":"app-icon.js","evaluate":true} ], "sortorder" : -9 + }, + { + "id": "jbm8b", + "name": "Magic 8 Ball", + "icon": "app.png", + "description": "A simple fortune telling app", + "tags": "game", + "storage": [ + { + "name": "+jbm8b", + "url": "app.json" + }, + { + "name": "-jbm8b", + "url": "app.js" + }, + { + "name": "*jbm8b", + "url": "app-icon.js", + "evaluate": true + } + ], + "allow_emulator":true, + "type":"app", + "version": "0.01", + "sortorder" : -9 } ] From bfe298f615c819c19426a2d779434c7eb4c863fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johan=20Bov=C3=A9?= Date: Tue, 4 Feb 2020 23:02:54 +0100 Subject: [PATCH 003/464] Updated jbm8b --- apps.json | 2 +- apps/jbm8b/add_to_apps.json | 2 +- apps/jbm8b/app.js | 15 +++++---------- 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/apps.json b/apps.json index e02bc3d43..a9c40569a 100644 --- a/apps.json +++ b/apps.json @@ -775,7 +775,7 @@ ], "allow_emulator":true, "type":"app", - "version": "0.01", + "version": "0.02", "sortorder" : -9 } ] diff --git a/apps/jbm8b/add_to_apps.json b/apps/jbm8b/add_to_apps.json index ffa033f75..200ea5f65 100644 --- a/apps/jbm8b/add_to_apps.json +++ b/apps/jbm8b/add_to_apps.json @@ -19,5 +19,5 @@ "evaluate": true } ], - "version": "1.1.0" + "version": "0.02" } \ No newline at end of file diff --git a/apps/jbm8b/app.js b/apps/jbm8b/app.js index 0fd5a177c..53baa32e3 100644 --- a/apps/jbm8b/app.js +++ b/apps/jbm8b/app.js @@ -66,20 +66,15 @@ function ask() { g.clear(); Bangle.loadWidgets(); +Bangle.drawWidgets(); +ask(); // Event Handlers Bangle.on('touch', (button) => reply(button)); -setWatch(ask, BTN1, {repeat:true, edge:"falling"}); -setWatch(reply, BTN3, {repeat:true, edge:"falling"}); +setWatch(ask, BTN1, { repeat: true, edge: "falling" }); +setWatch(reply, BTN3, { repeat: true, edge: "falling" }); // Back to launcher -setWatch(Bangle.showLauncher, BTN2, {repeat:false, edge:"falling"}); - -Bangle.on('lcdPower', (on) => { - if (on) { - Bangle.drawWidgets(); - ask(); - } -}); \ No newline at end of file +setWatch(Bangle.showLauncher, BTN2, { repeat: false, edge: "falling" }); \ No newline at end of file From 0c3b38a4c2825f35348acc79912009f591b0b5cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johan=20Bov=C3=A9?= Date: Wed, 5 Feb 2020 21:17:31 +0100 Subject: [PATCH 004/464] Fixed app.png for jbm8b --- apps/jbm8b/app-icon.js | 2 +- apps/jbm8b/app.png | Bin 2635 -> 1548 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/jbm8b/app-icon.js b/apps/jbm8b/app-icon.js index b2da211af..09bf032a6 100644 --- a/apps/jbm8b/app-icon.js +++ b/apps/jbm8b/app-icon.js @@ -1 +1 @@ -require("heatshrink").decompress(atob("slkgRC/AF1a1WpoAWSgO//4AB/1QDCNvC4QZCGaELC4gAB/BITAAmAGCoyQGBAABMpkHC5P/8AYLl4YK/pJWPxkDC5ZLLj4YM/gYJv4YM/4YJC5v/4BiVMhUPDBz8IYpbJMPZx9JC559HPZ4AB6AYFg4YQ+CUVSxEfDCCWGn4YQSwytH/2V34YHoCtMRYMBBQ+AC4YNHLAcvZBcCBg30gFZgELZBbfH8DPB8ALHZAjfH4C2B/hWHDAg+HwC2B/yIHKwL4KoCsCDA76EDBYDDAAf8DAZaBDCy7HwF/JRLTDgBzBSox8KBAIYK6CuCdg4YM+DQBAQQAGDBZwBtVARA4YMSQILBSgwYFRgSWGgEBBQ4YMUQa6HDBnwSQPQPhgYH4CuKPhlAfJQYMCgeAHw4YK/ySD4AlIDBP8gYEC6CWG/wYP8D6GDAgkGDBjTDgALGDBn8DAcPBYzDDMY4YLSpn4DAcLUI+/cgoAD+gYDg75HIwJzBBY3wDAZ0DAAfAEIPgJwYYIOgYMFig9I6AYDEo67DVow9BDAZXH/+QEZH/wAYERIwAB1SXCUIwAEXYwAK/wYFLA4AJfAj6IABT4EcJIAJYwjIJABLGEV5QAIVoqvKVpoABl4XO/oYHhYYO+gYHgYYO8AYHPp57HAAM/C5n+C5D7Oe4ziRMRIAB34YLoAYKj7FTWB5JLAAN/JKr8LexB+PGBoABg4wWAAMvSSIAGt4XC/xIPAAkV1WVCyYA/AH4A/AH4Ai")) \ No newline at end of file +require("heatshrink").decompress(atob("mEwhBC/AGMrq2B1gAEwNWlYthq2s64AKGYIydFpoAEGLUrFqIADqxcXFqhiDFymBFy7GCF1owTRjCSVlYudeiGsF7/XlaNqSKBeP1mBwJxQMBReO1gaEleBMDBLN1hAC1hhBAoIwNCwQAGlZINqxvFGAIXOSBAXQN4hPBC5yQIVBxfBCAgvQSBC+NFAYRDMwJHOF654DqxkBYooALF6+sbIhkEF8Z3CRIWBR6AvXFAzvQF6wnIYQJgNd5AWNdoLoGBBAvPO5pfYH4IvUUwS/GVBzXBYCpHCq2s1mBDwKOWDwRgNPAwVVMCRLCwIABCZ6OJJSAATLxZgRACJeLAAMrFz9WFxiRgRpoADwIub1guQGDmsXhqSfRiL0G1jqkMRYxRwKLUGK2sFryVEq2B1gAEwNWFkIA/AH4A/AH4AQ")) \ No newline at end of file diff --git a/apps/jbm8b/app.png b/apps/jbm8b/app.png index 78128d47e33ce69755e21a155ee77979fa35f776..24c3013de011db9c1517ed544e9d383f5c60378c 100644 GIT binary patch delta 1166 zcmV;91abSz6pRcZiBL{Q4GJ0x0000DNk~Le0000m0000m2m=5B0ASn+wUHrVe-#xK z7Z(>87#JBD85$ZI8yg!P9UUJZA0i?mBO@auBqSvzB_<{&D=RB3EG#W8EiW%GGBPqV zGczQb8~ZabaZ%lczJnwfPjF3fq{mG zhKGlTi;IhljEs$qjgF3vkdTm(k&%*;l9ZH`m6es5nVFoNoSmJWo}QkcpP!?nqot*# zrlzK+r>Ci@sj8}~tE;Q5tgNlAt*@`Iu&}VPv9YtWv$eIgx3{;sxw*T$f4jWAyuH1> zzP`S{zrVo1z{0}9!^6YH#l^dCU$jHda$;ryf%FD~k&CSiw(9qG*(bCe=)6>({ z)z#M4*4WtC+1c6J+S=UQ+}+*X-rnBg;^O1uFMg~>g((4?Ck9A?d|UF z?(gsK@bK{Q@$vKX^Yrxe4E6Q(_V)Jo_xJet_>;K;jg#O4W|QCoNPp6yd3yi=010qN zS#tmY79;=w79;_i6~+_*00NasL_t(YOWl>(U(-Mog=d;3l+e-^(Mm;BP!!x3R8&B~ z9T2IYsHiCJyTw9LDzbw)`4u7o8t=)C{Z{zV}z=orTuDO~IA} zn{O?G!GzQtXE2E*2g_g)kh_*)u#g&F3sVkKhs|;f*lRy*Sx)55uaUZ8uA}w`hVqbX z68EZP6a#sg+W;$v9wZJxu-&i|vP)c1J-Men zXVl6CE*OMhC*%wi9d?Lb)ao5|Ze7w9@WR+9$`fXJ$-K0;FLmAl2{p z>^TrnPm2?*EPuEWphTenHeTF^Sz2q-cIjQYG?-oQ0xui|o}Ge~C8nr$J_0O$YZ_ z+Rjfnb(EarfKtf#_xT)3{YKG@Sm z>=V|M><&;#arm3X&o<|J6aN%M9rop6cjxVoVq1vUz|3hBrm$ro_Y);<(_veguYwiq z$m!X3Bu|=JGHounC^l$m$Wq93Hw7Z))}Aki@-|Brsj&LfbF}`1!Nl^AO@0kpH)dDJ zT#EvO6-$5njHwc~*jHtr9;`bS$^M7fuZi;oe~KK}#)DVGV!Z delta 2407 zcmV-t37Gbb49gTDiBL{Q4GJ0x0000DNk~Le0001F0001F2m=5B07pD!W|1Lbe-soH z6%`d078Vy57Z?~A85tQG8X6lL8yp-Q9v&VcAt53nA|oRsBqSsyB_$>%CMPE+C@3f@ zDk>{0D=aK5EiElCFE21KFfuYSGcz+aH8nOiHa9mnI5;>tIXOByIy*Z%JUl!;K0ZG` zKR`f0K|w)7LqkMFL`FtNM@L6Ve@RJ7N=i#hOH52mO-)TtPft)#P*PG-Q&Uq^R8&<} zRaRD3S65e9SXfzESz20JTU%RPTwGmUU0+{cU|?WjVPRroVr6AzW@ct+XlQ9^X=-X} zY;0_8ZEbFDZgFvOa&mHWb8~fdb#``kcXxMqczAhvd3$?%e0+R;eSLm@e|~>|e}I61 zfq{X7f`WvEgoTBLhK7cSh=_@aiHnPijEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z} zm6ev3mYA5BnVFfInwp!No1LAVpP!$hp`oIpqNAguq@<*$r>Cf>sHv%`s;a81tE;T6 ztgWrBuCA`HudlGMu(7eRf3mW&v$M0bw6wLgwYIjlx3{;rxVX8wxw^W#yu7@>zrVo1 zz`?=6!^6YG#KgtL#m2_Q$H&LW$jHgb$;!&g%*@Qq&CSlv&d<-!(9qD-)YR40)z;S5 z*VotB*x1?G+1lFL+uPgR+}z&Y-rwKf;Nall;o;)q;^X7v>D@000SaNLh0L02U`=AAoQAO9Ud5Fns~_(N|3 zfIpBne#X)@>o-?#sw`hrG&%{z5RoH(fcPFP`Q&$#QO3hillo6>nV;n)B1>EV5IrHU zsxf3ah;)767pCx6v+j*Cx*oR>kfAFtm{fn*j=>BBY8E8LS7(IWySZK1vjBZ+E*n7N z&>39SVG3gkxOufCQIv2A7>O^n2s5_u(*+(~6m$WQ(Z?wjHtgV>-T82!=DN;|g*Ti^ zgfY)ea_I{sZ8aGa#ht-u`(ii23^4E*vx-`4%)myUuwV=JzwFbZ@413A{$--Wb^(8q zbxss>4d0tAtk^(?pLf?9QE&AzQ9|SqoE@> z?JN?eEHMf?YI&j0RSvz3Qd(cNs4#Cv z>F2FBF~~c!EIjeliY#)N|Fa3W{=sz~(NpH1v2o{J3r{8nLRB5($4lIvTsncBM#rny?&2xl)8J!A5u?lI40TihM5;a#*gg z907JIUyFb10j>X^G%Q0|HEIs?cO@*~w50on0!W=wBmS~?<40bthyewc zVrIu2@x%&F>mMbA7@mQdX*j9qiDjL3yNl-T8jxdCf}PC38Eep*3x2ch=qwNZUf5>i zOH)jAW!s2c$^^}u-xPoD^X9=px<(e-tOy!nJQ=Di!Odv|U{afy4LJKD8H0F_dPz|q zjTL zdzwWe%zHRQ7Ai#^7Pce6Q>yT4!5s&j6p1h;SY5MJZE{Pp5gx2s+OZK>IcuUDK9GYV zt5hPjl7$3OEmAo~7s+mmntl)9_S5)Lq-5|7G7;4r#A^%!q?G>C8TqwQm>#2C*A{k< zErdL#5(yOJkm`S3+Y$DKUCPDj*Vv_smFuZ85nqF~3g_q3b?ki;zPN!a$nzCAe-VAU zY8d99%8qkEe_Qop^k8ZzjCJpQ^9yBt*UsWQ-$5T0By`2kwMO}Z0y0|w?m(d znJo%Gg29X4uADLG--!%z0yis0ikXol6dbUb;a5pwD+GTjv?<70-Oe|cy;@qi_o~gl zk+u%85W!JZErMZ%`v&~6JvpS6hJ}cx6)9&f7qn&yixNDC>|W6koRwSpfvqyOqc>F8 z*(8OCOaXMtk%y-G^_rz_mt-nG(H@KAfajnB^Fu2l^zinqdUju)n^0i!CevpeR0 z-oZg9@$G+$OQhUmFM@HLe%!&$j2s?V@9gjyP{n3wvVyY@60FCQyD`!a_so|&?>N5` zBzp4p9{9rjOFgnv8!L#XRJBNu!TFUb?(Vg4>U;7cb8%6_7(1FpViv!4K*q-|4vE># zGRL<-Q2>yFI_l_Ri!pQm11=gP8ZZ(|8Xb&eoYsF%@w%?5C{jurm~xn5)U27Qya2F= z5bx|ms_Wm@k8*qA9vhcR!(TaaD|DtJ?1n)X=#|}bWhae2fe@mnOsP27h|z|9wCjWU z&+T45F(LHt3?f&r0EA?WEtf$KKkh6e@4^( Z25u9%h&7af?>ztj002ovPDHLkV1l1vck=)M From b78c056b867ef205dd757c9d1ba7390cd1dd5039 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johan=20Bov=C3=A9?= Date: Fri, 7 Feb 2020 22:22:50 +0100 Subject: [PATCH 005/464] adds icon for jbb --- apps.json | 26 +++++++++++++++++++ apps/jbb/ChangeLog | 2 ++ apps/jbb/add_to_apps.json | 23 +++++++++++++++++ apps/jbb/app-icon.js | 1 + apps/jbb/app.js | 53 ++++++++++++++++++++++++++++++++++++++ apps/jbb/app.json | 5 ++++ apps/jbb/app.png | Bin 0 -> 1673 bytes 7 files changed, 110 insertions(+) create mode 100644 apps/jbb/ChangeLog create mode 100644 apps/jbb/add_to_apps.json create mode 100644 apps/jbb/app-icon.js create mode 100644 apps/jbb/app.js create mode 100644 apps/jbb/app.json create mode 100644 apps/jbb/app.png diff --git a/apps.json b/apps.json index a9c40569a..6ca702fe7 100644 --- a/apps.json +++ b/apps.json @@ -778,4 +778,30 @@ "version": "0.02", "sortorder" : -9 } + { + "id": "jbb", + "name": "Battery Level", + "icon": "app.png", + "description": "Battery status and charging indicator", + "tags": "tool", + "storage": [ + { + "name": "+jbb", + "url": "app.json" + }, + { + "name": "-jbb", + "url": "app.js" + }, + { + "name": "*jbb", + "url": "app-icon.js", + "evaluate": true + } + ], + "allow_emulator":true, + "type":"app", + "version": "0.02", + "sortorder" : -9 + } ] diff --git a/apps/jbb/ChangeLog b/apps/jbb/ChangeLog new file mode 100644 index 000000000..b7359ee0e --- /dev/null +++ b/apps/jbb/ChangeLog @@ -0,0 +1,2 @@ +0.01: First version trying out stuff +0.02: First usable version \ No newline at end of file diff --git a/apps/jbb/add_to_apps.json b/apps/jbb/add_to_apps.json new file mode 100644 index 000000000..cc6483ac1 --- /dev/null +++ b/apps/jbb/add_to_apps.json @@ -0,0 +1,23 @@ +{ + "id": "jbb", + "name": "Battery Power", + "icon": "app.png", + "description": "Showing battery level and charging status", + "tags": "tool", + "storage": [ + { + "name": "+jbb", + "url": "app.json" + }, + { + "name": "-jbb", + "url": "app.js" + }, + { + "name": "*jbb", + "url": "app-icon.js", + "evaluate": true + } + ], + "version": "0.02" +} \ No newline at end of file diff --git a/apps/jbb/app-icon.js b/apps/jbb/app-icon.js new file mode 100644 index 000000000..8fbebe9df --- /dev/null +++ b/apps/jbb/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwxH+AH4AvlYAVF7NVABdPAggublfVAAfU5gAKFzReCF4guL0RehFxZedF6Iu/F/hezF1AvB1YvOFzxevF54u/F6Qupqxe/FzovBLxougLxoOBACIvNwAuB6YvbXroANqqdQF4YuYLqBedDgNWdqYuZFp/+qwuC6i6nLzi6RF4nPF1peXFqgvCqouUXSheEABhrHRaovSFw9WFyo8O6vUXTb6SFodPF0xeCXTheVF1AvBwC6pLwjsBqoupF4SLqF2AvCFtYuvF4YurF4NWF1otsAH4AXA==")) \ No newline at end of file diff --git a/apps/jbb/app.js b/apps/jbb/app.js new file mode 100644 index 000000000..f39d06280 --- /dev/null +++ b/apps/jbb/app.js @@ -0,0 +1,53 @@ +/** + * draw the current level value + */ +function draw(level) { + console.log('draw', level); + // Clear the screen + g.clear(); + g.setFontAlign(0, 0); // center font + g.setFont("6x8", 8); // bitmap font, 8x magnified + g.drawString(level + "%", 120, 80); + g.setFont("6x8", 4); + g.drawString("power", 120, 130); +} + +function getBatteryLevel() { + level = E.getBattery(); + console.log('getBatteryLevel', level); + + draw(level); + + checkCharging(Bangle.isCharging()); + + // again, 10 secs later + setTimeout(getBatteryLevel, 10E3); +} + +function checkCharging(charging) { + console.log('checkCharging', charging); + // Green LED + //LED2.write(charging); + if (charging) { + g.setFontAlign(0, 0); // center font + g.setFont("6x8", 3); // bitmap font, 3x magnifier + g.drawString("charging", 120, 160); + } +} + +function main() { + console.log('starting jbb version 0.0.1'); + getBatteryLevel(); +} + +g.clear(); +g.flip(); +Bangle.loadWidgets(); +Bangle.drawWidgets(); + +Bangle.on('charging', checkCharging); + +main(); + +// Show launcher when middle button pressed +setWatch(Bangle.showLauncher, BTN2, { repeat: false, edge: "falling" }); diff --git a/apps/jbb/app.json b/apps/jbb/app.json new file mode 100644 index 000000000..9e4eb893c --- /dev/null +++ b/apps/jbb/app.json @@ -0,0 +1,5 @@ +{ + "name": "Battery Power", + "icon": "*jbb", + "src": "-jbb" +} \ No newline at end of file diff --git a/apps/jbb/app.png b/apps/jbb/app.png new file mode 100644 index 0000000000000000000000000000000000000000..6f58711b57c4be035b8368e4adbba1a5741e9532 GIT binary patch literal 1673 zcmV;426p+0P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1|CU7K~!i%)md9i z9Yq-a_j0b3mIMINK(MNr%4rG$tUw}>;CI)Rcch}=*!W8dih0DHfr39mRxN(i z7A>y9wG~tJrPFCgR`H~OZTIYIP1m~#2Z&JuZ%h@K-b={HWZFpJ( zME-$$?vPR*$jW<=CzK<0O8UQqO`?6ts`PlBQ`DHXxc z02Yg$=|OmGpb4^!I}RNiu025H4Ff{~`Q(F{)K{K7*@`a}84Noc2On}pp5RJ>j*bqF z^TF&`H~O&9`s!MjY?Z=X#IMsI<{^%j4;x`upp@Lfl>)TTrbb?sQXV$ZBYQxZmkk>@^W%e$h!pD9`hh; z6y|b6b`*lsG&1KC7-*0fh@l}WOPS^1$^-Ac^Q3H9;EI9#tPQ9HNKaWPjQi%nCUN&- zc^efe(AL%_n6w_hPslcu@1T!MuhM}q~S z{X!$CsD&S)W5clr48y=3H-oL*+oeTPo94m!wieQsVU#d6AoO&?d|Q{G!2*> z?Ey`-zRRz77kHxp^Jo(~$RLtKF;PO$98@ZcbyQR?(=)rz=0Y-E46~gbb|ja}TnBo9 z26?5oU6MD!$b7gbc`?5vzeS4}3pZNiG>Mtbind6>c~^cP$G8(0&O`GO=uV-xSK8gz z1ES{FvXK7zB|*$&nAb6FRt55$U?BaTk6PjKADZyUL8Zol9>}btg3_wmzttgctl$S7 zaX` zBl%7F#2dtM_!od3Q-##I77;!~d~9sYHF-jb0+hZQ9=r>g<8HWeO7?n(Hm|_RPmaP9 zZ#9TH{3heew%6W5Cg+emB&%wqCX)Lmt8 z>;i@iDoy#_@1kzsQo;#n!~1Te3jz$2`ue-F7s;=xz;K664a6{hyuCWv4`s8EQ`oOq z0=f=-Ek~YodA9#3q=wq6N}k|J0m7G`pT_d~4DJ~ypgIiGWMZfh{@SY9%{10Gs{_{x zko6TsgZkPHj6=Cg{~AQA<6`9@@t(h0hnReL^1w4s-w$x@MPYekQHA*VHq1IqSbcna zyz1l$t`;$EcFfcueeqs^8=peY>#gwfk}6J5)j0R=2Ui{-rMEXYu+7gP{#;y;r@os_ zo=~v@WPQ4S|J4uBaiSSFCk{0=HJ)G6x<$nyL<(4cLpwG*G~zZY@<3;2rzDTXnQ0t4 zc|t`B(0^tKl;3A(XAhk`q2e`AS66pa^1EYDNI1Fd*uT{-&&Awf!__`;>j2 Date: Fri, 7 Feb 2020 22:24:39 +0100 Subject: [PATCH 006/464] fixes apps.json --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 6ca702fe7..c9c59d34b 100644 --- a/apps.json +++ b/apps.json @@ -777,7 +777,7 @@ "type":"app", "version": "0.02", "sortorder" : -9 - } + }, { "id": "jbb", "name": "Battery Level", From fc356c31d7021bf6b71552128d54b741f3d9727a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johan=20Bov=C3=A9?= Date: Tue, 7 Apr 2020 22:20:15 +0200 Subject: [PATCH 007/464] Fixes corrupted app list --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index d8cdde0fc..c14fda261 100644 --- a/apps.json +++ b/apps.json @@ -1481,7 +1481,7 @@ "allow_emulator": true, "type": "app", "version": "0.02", - "sortorder": -9, + "sortorder": -9 }, { "id": "flagrse", From 86ad563bc2f4d8ec23aa3e8e3c8ac25590f3bda1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johan=20Bov=C3=A9?= Date: Fri, 10 Apr 2020 23:03:59 +0200 Subject: [PATCH 008/464] Fixes jbmb8 apps entry --- apps.json | 47 +++--------------------------- apps/_example_app/add_to_apps.json | 1 - apps/jbm8b/Changelog | 3 +- apps/jbm8b/add_to_apps.json | 18 +++--------- 4 files changed, 10 insertions(+), 59 deletions(-) diff --git a/apps.json b/apps.json index c14fda261..a82da04d2 100644 --- a/apps.json +++ b/apps.json @@ -1434,54 +1434,15 @@ { "id": "jbm8b", "name": "Magic 8 Ball", + "shortName": "Magic 8 Ball", "icon": "app.png", "description": "A simple fortune telling app", "tags": "game", "storage": [ - { - "name": "+jbm8b", - "url": "app.json" - }, - { - "name": "-jbm8b", - "url": "app.js" - }, - { - "name": "*jbm8b", - "url": "app-icon.js", - "evaluate": true - } + { "name": "jbm8b.app.js", "url": "app.js" }, + { "name": "jbm8b.img", "url": "app-icon.js", "evaluate": true } ], - "allow_emulator": true, - "type": "app", - "version": "0.02", - "sortorder": -9 - }, - { - "id": "jbb", - "name": "Battery Level", - "icon": "app.png", - "description": "Battery status and charging indicator", - "tags": "tool", - "storage": [ - { - "name": "+jbb", - "url": "app.json" - }, - { - "name": "-jbb", - "url": "app.js" - }, - { - "name": "*jbb", - "url": "app-icon.js", - "evaluate": true - } - ], - "allow_emulator": true, - "type": "app", - "version": "0.02", - "sortorder": -9 + "version": "0.03" }, { "id": "flagrse", diff --git a/apps/_example_app/add_to_apps.json b/apps/_example_app/add_to_apps.json index ca75a7bd8..dd66030b6 100644 --- a/apps/_example_app/add_to_apps.json +++ b/apps/_example_app/add_to_apps.json @@ -1,4 +1,3 @@ -// Create an entry in apps.json as follows: { "id": "7chname", "name": "My app's human readable name", "shortName":"Short Name", diff --git a/apps/jbm8b/Changelog b/apps/jbm8b/Changelog index bd71ffcd5..80d7de1d6 100644 --- a/apps/jbm8b/Changelog +++ b/apps/jbm8b/Changelog @@ -1,2 +1,3 @@ 0.01: First working version -0.02: Added delay in replying for dramatic effect \ No newline at end of file +0.02: Added delay in replying for dramatic effect +0.03: Fixed apps.json entry diff --git a/apps/jbm8b/add_to_apps.json b/apps/jbm8b/add_to_apps.json index 200ea5f65..8e28639e7 100644 --- a/apps/jbm8b/add_to_apps.json +++ b/apps/jbm8b/add_to_apps.json @@ -1,23 +1,13 @@ { "id": "jbm8b", "name": "Magic 8 Ball", + "shortName": "Magic 8 Ball", "icon": "app.png", "description": "A simple fortune telling app", "tags": "game", "storage": [ - { - "name": "+jbm8b", - "url": "app.json" - }, - { - "name": "-jbm8b", - "url": "app.js" - }, - { - "name": "*jbm8b", - "url": "app-icon.js", - "evaluate": true - } + { "name": "jbm8b.app.js", "url": "app.js" }, + { "name": "jbm8b.img", "url": "app-icon.js", "evaluate": true } ], - "version": "0.02" + "version": "0.03" } \ No newline at end of file From a7305dc947ecebd275874941c35d3510667290c8 Mon Sep 17 00:00:00 2001 From: Fredrik Lautrup Date: Thu, 23 Apr 2020 21:31:12 +0200 Subject: [PATCH 009/464] First atempt to HR indication --- apps/rclock/rclock.app.js | 96 +++++++++++++++++++++++++++++++-------- 1 file changed, 78 insertions(+), 18 deletions(-) diff --git a/apps/rclock/rclock.app.js b/apps/rclock/rclock.app.js index bd8395116..bbb74205d 100644 --- a/apps/rclock/rclock.app.js +++ b/apps/rclock/rclock.app.js @@ -4,6 +4,14 @@ var hours; var date; var first = true; + var locale = require('locale'); + var _12hour = (require("Storage").readJSON("setting.json", 1) || {})["12hour"] || false; + + //HR variables + var color="#FF0000"; + var id=0; + var size=10; + var grow=true; const screen = { width: g.getWidth(), @@ -41,17 +49,7 @@ }; const dateStr = function (date) { - day = date.getDate(); - month = date.getMonth(); - year = date.getFullYear(); - if (day < 10) { - day = "0" + day; - } - if (month < 10) { - month = "0" + month; - } - - return year + "-" + month + "-" + day; + return locale.date(new Date(), 1); }; const getArcXY = function (centerX, centerY, radius, angle) { @@ -72,7 +70,7 @@ //g.setPixel(r[0],r[1]); g.drawLine(r1[0], r1[1], r2[0], r2[1]); g.setColor('#333333'); - g.drawCircle(settings.circle.middle, settings.circle.center, rad - settings.circle.width-4) + g.drawCircle(settings.circle.middle, settings.circle.center, rad - settings.circle.width - 4) }; const drawSecArc = function (sections, color) { @@ -84,7 +82,7 @@ //g.setPixel(r[0],r[1]); g.drawLine(r1[0], r1[1], r2[0], r2[1]); g.setColor('#333333'); - g.drawCircle(settings.circle.middle, settings.circle.center, rad - settings.circle.width-4) + g.drawCircle(settings.circle.middle, settings.circle.center, rad - settings.circle.width - 4) }; const drawClock = function () { @@ -104,7 +102,7 @@ } first = false; } - + // Reset seconds if (seconds == 59) { g.setColor('#000000'); @@ -128,14 +126,34 @@ //Update seconds when needed if (seconds != currentTime.getSeconds()) { seconds = currentTime.getSeconds(); - drawSecArc(seconds, settings.circle.colorsec); + drawSecArc(seconds, settings.circle.colorsec); } //Write the time as configured in the settings hours = currentTime.getHours(); + if (_12hour && hours > 13) { + hours = hours - 12; + } + + var meridian; + + if (typeof locale.meridian === "function") { + meridian = locale.meridian(new Date()); + } else { + meridian = ""; + } + + var timestr; + + if (meridian.length > 0 && _12hour) { + timestr = hours + " " + meridian; + } else { + timestr = hours; + } + g.setColor(settings.time.color); g.setFont(settings.time.font, settings.time.size); - g.drawString(hours, settings.time.center, settings.time.middle); + g.drawString(timestr, settings.time.center, settings.time.middle); //Write the date as configured in the settings g.setColor(settings.date.color); @@ -147,19 +165,61 @@ if (on) drawClock(); }); + +//setInterval for HR visualisation + const newBeats = function (hr) { + if (id != 0) { + changeInterval(id, 6e3 / hr.bpm); + } else { + id = setInterval(drawHR, 6e3 / hr.bpm); + } + }; + +//visualize HR with circles pulsating + const drawHR = function (hr) { + if (grow && size < 12) { + size++; + } + + if (!grow && size > 3) { + size--; + } + + if (size == 12 || size == 3) { + grow = !grow; + } + + if (grow) { + color = "#f0af00"; + g.setColor(color); + g.fillCircle(settings.circle.center, settings.circle.middle, size); + } else { + color = "#000000"; + g.setColor(color); + g.drawCircle(settings.circle.center, settings.circle.middle, size); + } + print(size); + }; + // clean app screen g.clear(); - g.setFontAlign( 0, 0, 0); + g.setFontAlign(0, 0, 0); Bangle.loadWidgets(); Bangle.drawWidgets(); // refesh every 30 sec setInterval(drawClock, 1E3); + //start HR monitor and draw heart rate + Bangle.setHRMPower(1); + Bangle.on('HRM', function (d) { + newBeats(d); + }); + // draw now drawClock(); // Show launcher when middle button pressed setWatch(Bangle.showLauncher, BTN2, { repeat: false, edge: "falling" }); -} \ No newline at end of file +} \ No newline at end of file From e9509ca74fbda81e9df819fe2a2b4e417f81ca92 Mon Sep 17 00:00:00 2001 From: Fredrik Lautrup Date: Fri, 24 Apr 2020 07:33:16 +0200 Subject: [PATCH 010/464] Updated change log --- apps/rclock/ChangeLog | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/rclock/ChangeLog b/apps/rclock/ChangeLog index a8f708a0a..d3c24cd8e 100644 --- a/apps/rclock/ChangeLog +++ b/apps/rclock/ChangeLog @@ -1 +1,3 @@ 0.01: First published version of app +0.02: Added support for locale and 12H clock +0.03: Added HR indication to clock \ No newline at end of file From 7a8e06c5610980cfe60f7b2727c8bb82800b42d8 Mon Sep 17 00:00:00 2001 From: paul Date: Wed, 29 Apr 2020 19:17:25 +0200 Subject: [PATCH 011/464] better keywords in json description --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 02567f994..b3ecf3ab7 100644 --- a/apps.json +++ b/apps.json @@ -1440,7 +1440,7 @@ "icon": "app.png", "version":"0.02", "description": "Enable HID, connect to your phone, start your camera and trigger the shot on your Bangle", - "tags": "tools", + "tags": "bluetooth,tool", "storage": [ {"name":"hidcam.app.js","url":"app.js"}, {"name":"hidcam.img","url":"app-icon.js","evaluate":true} From 94c008dbcbedfacd8870c06074862f59fe809fb5 Mon Sep 17 00:00:00 2001 From: Paul Charlet Date: Wed, 29 Apr 2020 19:41:29 +0200 Subject: [PATCH 012/464] added readme --- apps.json | 1 + apps/hidcam/README.md | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 apps/hidcam/README.md diff --git a/apps.json b/apps.json index b3ecf3ab7..7de27b708 100644 --- a/apps.json +++ b/apps.json @@ -1440,6 +1440,7 @@ "icon": "app.png", "version":"0.02", "description": "Enable HID, connect to your phone, start your camera and trigger the shot on your Bangle", + "readme": "README.md", "tags": "bluetooth,tool", "storage": [ {"name":"hidcam.app.js","url":"app.js"}, diff --git a/apps/hidcam/README.md b/apps/hidcam/README.md new file mode 100644 index 000000000..5e8d40817 --- /dev/null +++ b/apps/hidcam/README.md @@ -0,0 +1,18 @@ +# Camera shutter + +Control the camera shutter from your phone using your watch + +## Usage + +1. In settings, enable HID for "Keyboard & Media". +2. Pair your watch to your phone. +3. Load your camera app on your phone. +4. There you go, launch the app on your watch and press button 2 to trigger the shutter ! + +## How does it work ? + +The app uses HID to send the key "Vol +", which is a shortcut for camera trigger on Android and iOS. + +## Creator + +Paul Charlet, using code from HID music app. \ No newline at end of file From 41504829d6ab141fc6232d65c52f7ca93adf4f2e Mon Sep 17 00:00:00 2001 From: Paul Charlet Date: Wed, 29 Apr 2020 19:44:04 +0200 Subject: [PATCH 013/464] changelog update --- apps/hidcam/ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/hidcam/ChangeLog b/apps/hidcam/ChangeLog index 2823e1f1d..480d7d448 100644 --- a/apps/hidcam/ChangeLog +++ b/apps/hidcam/ChangeLog @@ -1,2 +1,3 @@ 0.01: Core functionnality 0.02: Offer to enable HID if disabled +0.03: Adds Readme and tags to be used by App Loader From 8b74d3367de41aa85c96e625ad6486231abcc8d7 Mon Sep 17 00:00:00 2001 From: paul Date: Wed, 29 Apr 2020 19:49:24 +0200 Subject: [PATCH 014/464] update version number --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 7de27b708..475443784 100644 --- a/apps.json +++ b/apps.json @@ -1438,7 +1438,7 @@ "name": "Camera shutter", "shortName":"Cam shutter", "icon": "app.png", - "version":"0.02", + "version":"0.03", "description": "Enable HID, connect to your phone, start your camera and trigger the shot on your Bangle", "readme": "README.md", "tags": "bluetooth,tool", From 53d9982a5af25b8661529cf1e1343554e0dddac2 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Thu, 30 Apr 2020 10:23:43 +0100 Subject: [PATCH 015/464] tweak to aid with settings development - fix #366 --- apps/setting/settings.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/setting/settings.js b/apps/setting/settings.js index 55048a9d4..8ed6f58c5 100644 --- a/apps/setting/settings.js +++ b/apps/setting/settings.js @@ -422,7 +422,7 @@ function showAppSettingsMenu() { const apps = storage.list(/\.settings\.js$/) .map(s => s.substr(0, s.length-12)) .map(id => { - const a=storage.readJSON(id+'.info',1); + const a=storage.readJSON(id+'.info',1) || {name: id}; return {id:id,name:a.name,sortorder:a.sortorder}; }) .sort((a, b) => { From 7767d3b0f6dba8e3a47f021cc7834e91723f8cd0 Mon Sep 17 00:00:00 2001 From: RenaudG <34276398+renaudgweb@users.noreply.github.com> Date: Thu, 30 Apr 2020 13:55:52 +0200 Subject: [PATCH 016/464] add Spectre framework html class --- apps/osmpoi/osmpoi.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/osmpoi/osmpoi.html b/apps/osmpoi/osmpoi.html index 0096b78a0..66a0fd06c 100644 --- a/apps/osmpoi/osmpoi.html +++ b/apps/osmpoi/osmpoi.html @@ -28,8 +28,8 @@
-
- From 93ec5b4eddbca81d33c7548f90d972d2777d2c35 Mon Sep 17 00:00:00 2001 From: RenaudG <34276398+renaudgweb@users.noreply.github.com> Date: Thu, 30 Apr 2020 13:59:49 +0200 Subject: [PATCH 017/464] Update osmpoi.html --- apps/osmpoi/osmpoi.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/osmpoi/osmpoi.html b/apps/osmpoi/osmpoi.html index 66a0fd06c..b0d3efc23 100644 --- a/apps/osmpoi/osmpoi.html +++ b/apps/osmpoi/osmpoi.html @@ -29,7 +29,7 @@
- From 3ac0978e261d857012bf7fde25ea4afdee5b3f42 Mon Sep 17 00:00:00 2001 From: RenaudG <34276398+renaudgweb@users.noreply.github.com> Date: Thu, 30 Apr 2020 14:02:17 +0200 Subject: [PATCH 018/464] Update osmpoi.html --- apps/osmpoi/osmpoi.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/osmpoi/osmpoi.html b/apps/osmpoi/osmpoi.html index b0d3efc23..ff44fbcf9 100644 --- a/apps/osmpoi/osmpoi.html +++ b/apps/osmpoi/osmpoi.html @@ -29,7 +29,7 @@
- From 7ffdfdde9aa3ecb9c23c3c4a8c226d31dc4d42ce Mon Sep 17 00:00:00 2001 From: RenaudG <34276398+renaudgweb@users.noreply.github.com> Date: Thu, 30 Apr 2020 14:03:58 +0200 Subject: [PATCH 019/464] Update ChangeLog --- apps/osmpoi/ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/osmpoi/ChangeLog b/apps/osmpoi/ChangeLog index 8e73a192e..1c066f451 100644 --- a/apps/osmpoi/ChangeLog +++ b/apps/osmpoi/ChangeLog @@ -1,2 +1,3 @@ 0.01: New App! 0.02: Change img when no fix +0.03: Add HTML class for Spectre.CSS From 9c45d3a78c5dee762927ed7978da801b3bf9a832 Mon Sep 17 00:00:00 2001 From: RenaudG <34276398+renaudgweb@users.noreply.github.com> Date: Thu, 30 Apr 2020 16:45:10 +0200 Subject: [PATCH 020/464] Update apps.json --- apps.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps.json b/apps.json index 95669f250..902e15a40 100644 --- a/apps.json +++ b/apps.json @@ -1408,6 +1408,7 @@ "version":"0.01", "description": "Convert your current GPS location to the Maidenhead locator system used by HAM amateur radio operators", "tags": "tool,outdoors,gps", + "readme": "README.md", "storage": [ {"name":"hamloc.app.js","url":"app.js"}, {"name":"hamloc.img","url":"app-icon.js","evaluate":true} @@ -1419,6 +1420,7 @@ "version":"0.01", "description": "Uploads all the points of interest in an area onto your watch, same as Beer Compass with more p.o.i.", "tags": "tool,outdoors,gps", + "readme": "README.md", "custom": "osmpoi.html", "storage": [ {"name":"osmpoi.app.js"}, From aa2fbd397201f6497ae93392915b52116c9cd17d Mon Sep 17 00:00:00 2001 From: RenaudG <34276398+renaudgweb@users.noreply.github.com> Date: Thu, 30 Apr 2020 16:45:36 +0200 Subject: [PATCH 021/464] Update apps.json --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 902e15a40..cc8fc25e6 100644 --- a/apps.json +++ b/apps.json @@ -1417,7 +1417,7 @@ { "id": "osmpoi", "name": "POI Compass", "icon": "app.png", - "version":"0.01", + "version":"0.03", "description": "Uploads all the points of interest in an area onto your watch, same as Beer Compass with more p.o.i.", "tags": "tool,outdoors,gps", "readme": "README.md", From 814e63d532d1c80dfa151fe7261afee5e71cd3e2 Mon Sep 17 00:00:00 2001 From: RenaudG <34276398+renaudgweb@users.noreply.github.com> Date: Thu, 30 Apr 2020 16:52:55 +0200 Subject: [PATCH 022/464] Update README.md --- apps/hamloc/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apps/hamloc/README.md b/apps/hamloc/README.md index 5710493bb..6a2a93a44 100644 --- a/apps/hamloc/README.md +++ b/apps/hamloc/README.md @@ -12,3 +12,7 @@ The chosen coding uses alternating pairs of letters and digits, like so: ## * support Paul Brewer KI6CQ HamGridSquare.js * support Chris Veness 2002-2012 LatLon library + +## Requests + +If you have any bug or feature request, please contact [Renaudgweb](https://github.com/renaudgweb/) From 6b42a0376b4d9b2328022e50453cdbfee79c4724 Mon Sep 17 00:00:00 2001 From: RenaudG <34276398+renaudgweb@users.noreply.github.com> Date: Thu, 30 Apr 2020 16:57:48 +0200 Subject: [PATCH 023/464] Update README.md --- apps/osmpoi/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apps/osmpoi/README.md b/apps/osmpoi/README.md index 4c59e16f6..01e77dd86 100644 --- a/apps/osmpoi/README.md +++ b/apps/osmpoi/README.md @@ -3,3 +3,7 @@ ## Description Uploads all the points of interest in an area onto your watch, same as Beer Compass with more p.o.i. + +## Requests + +If you have any bug or feature request, please contact [Renaudgweb](https://github.com/renaudgweb/) From 05425ad2c6500290178d298c9572fc97c781b795 Mon Sep 17 00:00:00 2001 From: RenaudG <34276398+renaudgweb@users.noreply.github.com> Date: Thu, 30 Apr 2020 17:10:32 +0200 Subject: [PATCH 024/464] Update osmpoi.html --- apps/osmpoi/osmpoi.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/osmpoi/osmpoi.html b/apps/osmpoi/osmpoi.html index ff44fbcf9..aa2f39c51 100644 --- a/apps/osmpoi/osmpoi.html +++ b/apps/osmpoi/osmpoi.html @@ -37,7 +37,7 @@ - + From ba96c2a46bcbb6b83c106d1f88f5a8f96870da98 Mon Sep 17 00:00:00 2001 From: Will Murray Date: Thu, 30 Apr 2020 20:33:49 +0100 Subject: [PATCH 025/464] Set theme jekyll-theme-slate --- _config.yml | 1 + 1 file changed, 1 insertion(+) create mode 100644 _config.yml diff --git a/_config.yml b/_config.yml new file mode 100644 index 000000000..c74188174 --- /dev/null +++ b/_config.yml @@ -0,0 +1 @@ +theme: jekyll-theme-slate \ No newline at end of file From 885b328e3865719027c1f9a9a02fe79c3df5d643 Mon Sep 17 00:00:00 2001 From: wmurray-es <7922184d347c9e59e1ad273d42242d100bdaf524> Date: Thu, 30 Apr 2020 21:31:17 +0100 Subject: [PATCH 026/464] Add image assets --- apps/smartswitch/light-off.js | 1 + apps/smartswitch/light-on.js | 1 + apps/smartswitch/smartswitch-icon.js | 1 + apps/smartswitch/smartswitch-off.js | 1 + 4 files changed, 4 insertions(+) create mode 100644 apps/smartswitch/light-off.js create mode 100644 apps/smartswitch/light-on.js create mode 100644 apps/smartswitch/smartswitch-icon.js create mode 100644 apps/smartswitch/smartswitch-off.js diff --git a/apps/smartswitch/light-off.js b/apps/smartswitch/light-off.js new file mode 100644 index 000000000..c6e6b7e77 --- /dev/null +++ b/apps/smartswitch/light-off.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwxH+AH4A/AH4A/AGeJAAwttGMotLGMQiD1uzAAWtGEgtE64ACF5IwbFwYtESUouGFpowaFywvXDIS7CFyIwXLwouSF6peF1ovrRqowWF4heEstlApIveDolfAAIEGF76OGFYQuMF6+zdo4uOF6+tF49lFwK9KF7AAJLxovUGBiOhF+IwLF5guWF+AwKF5YuYGBQvKFzQwJF5IucGBAvIFzwwHF44ugF+AwFF4wui/2CABQvrr1YAAIvjrwoDAAwvjFhFeR8onDX/4vcXxIvkYA73BR0gACYA4umMI4uoGAouqAH4AK")) \ No newline at end of file diff --git a/apps/smartswitch/light-on.js b/apps/smartswitch/light-on.js new file mode 100644 index 000000000..a3e7c322f --- /dev/null +++ b/apps/smartswitch/light-on.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwxH+AH4A/AH4AT5gAGFtoxlFpYxhFp4xeFyYwaFyowZF9wuXGC4vuFzIwVF9wdK53OApIwYDRHN6gAC5oFFF8QoC5wyIMRAvZ5wkERgJbCBQqPfEoKGGL4S/j5i3GFwS/jK5BnIF6owMW4S8KFygvKSIQDFF85bBF8QwKF54uUF+AwJF5wuWF+AwIF5ouYGBAvMFzQwHF5YucGAwvKFzwwFF5IugAAOCAA1erAABF0X+rwoDAAwvjFhFeMYIvkE4QAHF8a/vwS+JF8jAHe4KOkGAaQFroumAAUrAAQtpGAgusAH4A/AFI=")) \ No newline at end of file diff --git a/apps/smartswitch/smartswitch-icon.js b/apps/smartswitch/smartswitch-icon.js new file mode 100644 index 000000000..9153bd3ca --- /dev/null +++ b/apps/smartswitch/smartswitch-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwxH+AH4A/AH4A/AH4A/AH4A/AH4Ag1gAECyGFAB1bAAmAFooyQFp4uGEoWIwQAEGBgtQFwtcFpAACxAwJFyIvFEAItIMAowFF1IwFF6zqBRhIvIxBetMAYvWdgJeSAAOHFyQvEw5eRBAeIF6+IF5wIHF66+LTJIvlNBaPfRRAved4g0BAASNJd4f+F61cFQYAEFxQ/Bw4vXYAQAFLxms/wABGC2ALyaOBF7BgGLyAweFyIwTF4jyDLxKMBFw4xTGAhhEFpAuKGKQwFeg4ADFxgAZFlgA/AH4A/AH4A/AH4A/AH4AhA")) \ No newline at end of file diff --git a/apps/smartswitch/smartswitch-off.js b/apps/smartswitch/smartswitch-off.js new file mode 100644 index 000000000..58e6e94e6 --- /dev/null +++ b/apps/smartswitch/smartswitch-off.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwxH+AH4A/AH4A/AH4A/AH4A/AH4AI1gAEFlgAEz2WAAm6ABwuPxGCAAgJC0wwVGJQtIAAWIGIWXF6gxIEAItIMAgABMCowGFyKSGGCulRhQvHegovVLySRGF6QwBLyjyaF4IuQBAaQX3WmF5wIG0ovXXxaZJYDLuMF8SPHRRCPed4mIcwaNJd7YvBAA4uKH4OXF63+/wuHLxi+YF4JgHLxiOXFwJgHLxmmFwYvXGAqNQFzAwELxKMBdjQwJMAwtCRgovRFpDDIAAjqEFyItLGRQWQAH4A/AH4A/AH4A/AH4A/AH4AP")) \ No newline at end of file From ef7187dff12bf9e84222a0f6707020891818a2e4 Mon Sep 17 00:00:00 2001 From: wmurray-es <7922184d347c9e59e1ad273d42242d100bdaf524> Date: Thu, 30 Apr 2020 21:31:27 +0100 Subject: [PATCH 027/464] Add app --- apps/smartswitch/smartswitch.app.js | 79 +++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 apps/smartswitch/smartswitch.app.js diff --git a/apps/smartswitch/smartswitch.app.js b/apps/smartswitch/smartswitch.app.js new file mode 100644 index 000000000..90e0a82a8 --- /dev/null +++ b/apps/smartswitch/smartswitch.app.js @@ -0,0 +1,79 @@ + +// Learn more! +// https://www.espruino.com/Reference#l_NRF_setAdvertising +// https://www.espruino.com/Bangle.js#buttons + +// Initial graphics setup +g.clear(); +g.setFontAlign(0, 0); // center font +// g.setFont("6x8", 8); // bitmap font, 8x magnified +g.setFont("Vector", 40); // vector font, 80px + +// Let the app begin! +const storage = require("Storage"); + +let currentPage = 0; +let pages = [ + { + name: "Downstairs", + icon: "light", + state: false + }, + { + name: "Upstairs", + icon: "smartswitch", + state: false + }]; + +function loadPage(page) { + const icon = page.state ? page.icon + "-on" : page.icon + "-off"; + Bangle.beep(); + g.clear(); + g.setFont("Vector", 10); + g.drawString("prev", g.getWidth() - 25, 20); + g.drawString("next", g.getWidth() - 25, 220); + g.setFont("Vector", 15); + g.drawString(page.name, g.getWidth() / 2, 200); + g.setFont("Vector", 40); + g.drawString(page.state ? "On" : "Off", g.getWidth() / 2, g.getHeight() / 2); + g.drawImage(storage.read(`${icon}.png`), g.getWidth() / 2 - 24, g.getHeight() / 2 - 24 - 50); +} + +function prevPage() { + if (currentPage > 0) { + currentPage--; + loadPage(pages[currentPage]); + } +} + +function nextPage() { + if (currentPage < pages.length - 1) { + currentPage++; + loadPage(pages[currentPage]); + } +} + +function swipe(dir) { + + const page = pages[currentPage]; + + page.state = dir == 1; + + NRF.setAdvertising({ + 0xFFFF: [currentPage, page.state] + }); + + loadPage(page); + + // optional - this keeps the watch LCD lit up + g.flip(); + + Bangle.buzz(); +} + +Bangle.on('swipe', swipe); + +setWatch(prevPage, BTN, {edge: "rising", debounce: 50, repeat: true}); +setWatch(nextPage, BTN3, {edge: "rising", debounce: 50, repeat: true}); + +loadPage(pages[currentPage]); \ No newline at end of file From a55788ed078bd98b50a06e200a1552754683ce75 Mon Sep 17 00:00:00 2001 From: wmurray-es <7922184d347c9e59e1ad273d42242d100bdaf524> Date: Thu, 30 Apr 2020 21:31:38 +0100 Subject: [PATCH 028/464] Add docs --- apps/smartswitch/ChangeLog | 1 + apps/smartswitch/README.MD | 12 ++++++++++++ 2 files changed, 13 insertions(+) create mode 100644 apps/smartswitch/ChangeLog create mode 100644 apps/smartswitch/README.MD diff --git a/apps/smartswitch/ChangeLog b/apps/smartswitch/ChangeLog new file mode 100644 index 000000000..6d3bcf353 --- /dev/null +++ b/apps/smartswitch/ChangeLog @@ -0,0 +1 @@ +0.01: New App! See the README.MD for details on how to use it. \ No newline at end of file diff --git a/apps/smartswitch/README.MD b/apps/smartswitch/README.MD new file mode 100644 index 000000000..57ecbd65c --- /dev/null +++ b/apps/smartswitch/README.MD @@ -0,0 +1,12 @@ +# Smartswitch app for BangleJS + + +# EspruinoHub + +Install EspruinoHub following the directions at [https://github.com/espruino/EspruinoHub](https://github.com/espruino/EspruinoHub) + +# Example Node-RED flow + +``` +[{"id":"6d5e0685.62fed8","type":"switch","z":"37813ca5.3e4a04","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"0,0","vt":"str"},{"t":"eq","v":"0,1","vt":"str"},{"t":"eq","v":"1,0","vt":"str"},{"t":"eq","v":"1,1","vt":"str"},{"t":"eq","v":"2,0","vt":"str"},{"t":"eq","v":"2,1","vt":"str"},{"t":"eq","v":"3,0","vt":"str"},{"t":"eq","v":"3,1","vt":"str"},{"t":"eq","v":"4,0","vt":"str"},{"t":"eq","v":"4,1","vt":"str"}],"checkall":"true","repair":false,"outputs":10,"x":130,"y":520,"wires":[["2dd25bad.402644"],["e39ef382.eea6c"],["bb5aca6b.24e888"],["ed2bb6.25745448"],["869f116a.18c0a"],["d7661912.3d1f78"],[],[],[],[]]},{"id":"e39ef382.eea6c","type":"change","z":"37813ca5.3e4a04","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"ON","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":500,"wires":[["fc85fc8f.9622f8"]]},{"id":"2dd25bad.402644","type":"change","z":"37813ca5.3e4a04","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"OFF","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":460,"wires":[["fc85fc8f.9622f8"]]},{"id":"ed2bb6.25745448","type":"change","z":"37813ca5.3e4a04","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"ON","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":600,"wires":[["dbcd73c6.cc0bf"]]},{"id":"bb5aca6b.24e888","type":"change","z":"37813ca5.3e4a04","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"OFF","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":560,"wires":[["dbcd73c6.cc0bf"]]},{"id":"d7661912.3d1f78","type":"change","z":"37813ca5.3e4a04","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"ON","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":700,"wires":[["c8cb0b9b.1b7528"]]},{"id":"869f116a.18c0a","type":"change","z":"37813ca5.3e4a04","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"OFF","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":660,"wires":[["c8cb0b9b.1b7528"]]}] +``` \ No newline at end of file From 40d05f04e85e3a334673c981cc67457e3c6c1cd9 Mon Sep 17 00:00:00 2001 From: wmurray-es <7922184d347c9e59e1ad273d42242d100bdaf524> Date: Thu, 30 Apr 2020 21:31:46 +0100 Subject: [PATCH 029/464] Add app entry to apps.json --- apps.json | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/apps.json b/apps.json index d85739aad..ce33fce57 100644 --- a/apps.json +++ b/apps.json @@ -1158,5 +1158,22 @@ {"name":"batchart.app.js","url":"app.js"}, {"name":"batchart.img","url":"app-icon.js","evaluate":true} ] + }, + { "id": "smartswitch", + "name": "BTLE Smartswitch", + "shortName":"Smartswitch", + "icon": "app.png", + "version":"0.01", + "description": "Using EspruinoHub, control your smart devices on and off via Bluetooth Low Energy!", + "tags": "bluetooth,btle,smart,switch", + "readme": "README.md", + "storage": [ + {"name":"smartswitch.app.js","url":"app.js"}, + {"name":"smartswitch-on.img","url":"app-icon.js","evaluate":true}, + {"name":"smartswitch-on.img","url":"smartswitch-icon.js","evaluate":true}, + {"name":"smartswitch-off.img","url":"switch-off.js","evaluate":true}, + {"name":"light-on.img","url":"light-on.js","evaluate":true}, + {"name":"light-off.img","url":"light-off.js","evaluate":true} + ] } ] From 79825291dafb07c73e1e16bdc8aa923dd45e89ec Mon Sep 17 00:00:00 2001 From: wmurray-es <7922184d347c9e59e1ad273d42242d100bdaf524> Date: Thu, 30 Apr 2020 21:37:28 +0100 Subject: [PATCH 030/464] Fix missing image --- apps.json | 4 ++-- apps/smartswitch/smartswitch-on.js | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 apps/smartswitch/smartswitch-on.js diff --git a/apps.json b/apps.json index ce33fce57..bf7f31ad9 100644 --- a/apps.json +++ b/apps.json @@ -1169,8 +1169,8 @@ "readme": "README.md", "storage": [ {"name":"smartswitch.app.js","url":"app.js"}, - {"name":"smartswitch-on.img","url":"app-icon.js","evaluate":true}, - {"name":"smartswitch-on.img","url":"smartswitch-icon.js","evaluate":true}, + {"name":"smartswitch.img","url":"app-icon.js","evaluate":true}, + {"name":"smartswitch-on.img","url":"switch-on.js","evaluate":true}, {"name":"smartswitch-off.img","url":"switch-off.js","evaluate":true}, {"name":"light-on.img","url":"light-on.js","evaluate":true}, {"name":"light-off.img","url":"light-off.js","evaluate":true} diff --git a/apps/smartswitch/smartswitch-on.js b/apps/smartswitch/smartswitch-on.js new file mode 100644 index 000000000..9153bd3ca --- /dev/null +++ b/apps/smartswitch/smartswitch-on.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwxH+AH4A/AH4A/AH4A/AH4A/AH4Ag1gAECyGFAB1bAAmAFooyQFp4uGEoWIwQAEGBgtQFwtcFpAACxAwJFyIvFEAItIMAowFF1IwFF6zqBRhIvIxBetMAYvWdgJeSAAOHFyQvEw5eRBAeIF6+IF5wIHF66+LTJIvlNBaPfRRAved4g0BAASNJd4f+F61cFQYAEFxQ/Bw4vXYAQAFLxms/wABGC2ALyaOBF7BgGLyAweFyIwTF4jyDLxKMBFw4xTGAhhEFpAuKGKQwFeg4ADFxgAZFlgA/AH4A/AH4A/AH4A/AH4AhA")) \ No newline at end of file From 9cd470355389322bfd667800e138639e5d9f7b8d Mon Sep 17 00:00:00 2001 From: wmurray-es <7922184d347c9e59e1ad273d42242d100bdaf524> Date: Thu, 30 Apr 2020 21:39:24 +0100 Subject: [PATCH 031/464] Add missing app icon --- apps/smartswitch/app-icon.js | 1 + 1 file changed, 1 insertion(+) create mode 100644 apps/smartswitch/app-icon.js diff --git a/apps/smartswitch/app-icon.js b/apps/smartswitch/app-icon.js new file mode 100644 index 000000000..9153bd3ca --- /dev/null +++ b/apps/smartswitch/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwxH+AH4A/AH4A/AH4A/AH4A/AH4Ag1gAECyGFAB1bAAmAFooyQFp4uGEoWIwQAEGBgtQFwtcFpAACxAwJFyIvFEAItIMAowFF1IwFF6zqBRhIvIxBetMAYvWdgJeSAAOHFyQvEw5eRBAeIF6+IF5wIHF66+LTJIvlNBaPfRRAved4g0BAASNJd4f+F61cFQYAEFxQ/Bw4vXYAQAFLxms/wABGC2ALyaOBF7BgGLyAweFyIwTF4jyDLxKMBFw4xTGAhhEFpAuKGKQwFeg4ADFxgAZFlgA/AH4A/AH4A/AH4A/AH4AhA")) \ No newline at end of file From a71ffeeb55fd02e2939fbb1c4d857827c605250a Mon Sep 17 00:00:00 2001 From: wmurray-es <7922184d347c9e59e1ad273d42242d100bdaf524> Date: Thu, 30 Apr 2020 21:48:45 +0100 Subject: [PATCH 032/464] Add missing app icon --- apps.json | 2 +- apps/smartswitch/app-icon.js | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) delete mode 100644 apps/smartswitch/app-icon.js diff --git a/apps.json b/apps.json index bf7f31ad9..ff8f2bdc2 100644 --- a/apps.json +++ b/apps.json @@ -1169,7 +1169,7 @@ "readme": "README.md", "storage": [ {"name":"smartswitch.app.js","url":"app.js"}, - {"name":"smartswitch.img","url":"app-icon.js","evaluate":true}, + {"name":"smartswitch.img","url":"smartswitch-icon.js","evaluate":true}, {"name":"smartswitch-on.img","url":"switch-on.js","evaluate":true}, {"name":"smartswitch-off.img","url":"switch-off.js","evaluate":true}, {"name":"light-on.img","url":"light-on.js","evaluate":true}, diff --git a/apps/smartswitch/app-icon.js b/apps/smartswitch/app-icon.js deleted file mode 100644 index 9153bd3ca..000000000 --- a/apps/smartswitch/app-icon.js +++ /dev/null @@ -1 +0,0 @@ -require("heatshrink").decompress(atob("mEwxH+AH4A/AH4A/AH4A/AH4A/AH4Ag1gAECyGFAB1bAAmAFooyQFp4uGEoWIwQAEGBgtQFwtcFpAACxAwJFyIvFEAItIMAowFF1IwFF6zqBRhIvIxBetMAYvWdgJeSAAOHFyQvEw5eRBAeIF6+IF5wIHF66+LTJIvlNBaPfRRAved4g0BAASNJd4f+F61cFQYAEFxQ/Bw4vXYAQAFLxms/wABGC2ALyaOBF7BgGLyAweFyIwTF4jyDLxKMBFw4xTGAhhEFpAuKGKQwFeg4ADFxgAZFlgA/AH4A/AH4A/AH4A/AH4AhA")) \ No newline at end of file From 6c3a7aa9ab3fdd84d87e69be3de2af8a592c51e6 Mon Sep 17 00:00:00 2001 From: wmurray-es <7922184d347c9e59e1ad273d42242d100bdaf524> Date: Thu, 30 Apr 2020 21:55:40 +0100 Subject: [PATCH 033/464] Add missing app icon --- apps/smartswitch/app.png | Bin 0 -> 1344 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/smartswitch/app.png diff --git a/apps/smartswitch/app.png b/apps/smartswitch/app.png new file mode 100644 index 0000000000000000000000000000000000000000..9ed00c6b68161cf99f3c00fbc2a568848fa865fd GIT binary patch literal 1344 zcmV-G1;6@DP6lEB|fA7pYJG(pEkKGnZX(6bHA_onD0tW#FG=U%- zi5^Uh2X6+{gm?kH7>LSWpa)NKFo5VmG?J*%8k^vWn3xbqOG!z)E#2Mj$GkI-hwTSr zciZhpf{FXPz3lv&UqizBht{-pr?aFbbFkz%WrX8MIbC74# zZ=#f5Foqx^D!8JJb#l+1?%RtdaQ6ECxTn3hK~4khOA(H|SYUWKN2%yX`ZKNTIJo{C zuHBA^kS`eWQ$FQNh;KqHKx+%vwP;PnNW?WtL8wewg3@bycR%q}-2^WD^m4aR_9bA~ za>ZvDA1jg_FGl)$GF#Z+eGUtYe8Di9EmHBrIuWLyS?A#;tG|*+NJUMYd9iQnhcnl$ zf64c+hI|+Z6Awy}zD%l%7rM`*#9}mCVtAymsC?YDXXOEuvWQ9ggCBk$cs-K9+3Wk` zfwC_H8&@h1kj)keLz!(mj^<$Rc@&DV@exTfPJ|cZTwd4x1TzyFHSLg;uDL2jPuvmPU@VO7g(GRi~?UGfFw+3#MWD zL|oUE7XcH5fQ2DAtwD~i=6+VLm`J5nfJ-%eNvvox-|)6 zbRN>6wyjJ#it#1VUK6i|FO`>G{bI?GD;RS53PCUzw^XVY$x$sC4Qf3|&0xzR45Okg zx(5Jb8cU!hr5VkZ$>l5fb)NC3lZmNTXW@N(Stx23q<)dKR;0Wb+E&~jE!Dm6;Wtzx z3Kqz{WqH=YvZC`TXNCZe zu7Z0txV8v_xu5=i@g|wrGbCJ%F%?otht`%D$%KtkbIBHphGMC)1mf{(0!H##3)I!s zk_T|z=%^f?`U8N@4wucF+UV{|;w5!N9w0m3*aipSC8`@-Sw_FJd?$7pm|U6m9EqeI zX^%|)jfju7EmWP=dMVX+9GjG<5ds`#pSRxMb!iMGAFot=hGf#kddSq6fIlZbU+|f+ z?BWx5hP9bEN-1*Tt^UKi58t!^3UU1jiW|#xj$m2P+7{i2{WU?pl1TB@=XY(s^l-eor?^jleK}(S>o};R3Z4el3zAw& z67@dn9Y?dJb3f0e-@;P0&-}B6KtwPX#d1&W-LYogru#_$R_X5_>kaMT7$Qdmc??m# zRVx`nxP?;R+M)h>_wJ6NN9oz5Ns}f`nlx$hU*#X#ndJ3oQUHAb0000 Date: Thu, 30 Apr 2020 22:00:07 +0100 Subject: [PATCH 034/464] Add missing app icon --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index ff8f2bdc2..bf7f31ad9 100644 --- a/apps.json +++ b/apps.json @@ -1169,7 +1169,7 @@ "readme": "README.md", "storage": [ {"name":"smartswitch.app.js","url":"app.js"}, - {"name":"smartswitch.img","url":"smartswitch-icon.js","evaluate":true}, + {"name":"smartswitch.img","url":"app-icon.js","evaluate":true}, {"name":"smartswitch-on.img","url":"switch-on.js","evaluate":true}, {"name":"smartswitch-off.img","url":"switch-off.js","evaluate":true}, {"name":"light-on.img","url":"light-on.js","evaluate":true}, From 56e6469a60ea438c02adee2941fac9e537c06176 Mon Sep 17 00:00:00 2001 From: wmurray-es <7922184d347c9e59e1ad273d42242d100bdaf524> Date: Thu, 30 Apr 2020 22:02:16 +0100 Subject: [PATCH 035/464] Oops, wrong filenames --- apps.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps.json b/apps.json index bf7f31ad9..c18228e70 100644 --- a/apps.json +++ b/apps.json @@ -1170,8 +1170,8 @@ "storage": [ {"name":"smartswitch.app.js","url":"app.js"}, {"name":"smartswitch.img","url":"app-icon.js","evaluate":true}, - {"name":"smartswitch-on.img","url":"switch-on.js","evaluate":true}, - {"name":"smartswitch-off.img","url":"switch-off.js","evaluate":true}, + {"name":"smartswitch-on.img","url":"smartswitch-on.js","evaluate":true}, + {"name":"smartswitch-off.img","url":"smartswitch-off.js","evaluate":true}, {"name":"light-on.img","url":"light-on.js","evaluate":true}, {"name":"light-off.img","url":"light-off.js","evaluate":true} ] From ff385ba7f6e8fb9ae847d7f8b8a80afb100feb9f Mon Sep 17 00:00:00 2001 From: wmurray-es <7922184d347c9e59e1ad273d42242d100bdaf524> Date: Thu, 30 Apr 2020 22:03:55 +0100 Subject: [PATCH 036/464] Rename files again --- apps.json | 4 ++-- apps/smartswitch/smartswitch.app.js | 2 +- apps/smartswitch/{smartswitch-off.js => switch-off.js} | 0 apps/smartswitch/{smartswitch-on.js => switch-on.js} | 0 4 files changed, 3 insertions(+), 3 deletions(-) rename apps/smartswitch/{smartswitch-off.js => switch-off.js} (100%) rename apps/smartswitch/{smartswitch-on.js => switch-on.js} (100%) diff --git a/apps.json b/apps.json index c18228e70..657f93469 100644 --- a/apps.json +++ b/apps.json @@ -1170,8 +1170,8 @@ "storage": [ {"name":"smartswitch.app.js","url":"app.js"}, {"name":"smartswitch.img","url":"app-icon.js","evaluate":true}, - {"name":"smartswitch-on.img","url":"smartswitch-on.js","evaluate":true}, - {"name":"smartswitch-off.img","url":"smartswitch-off.js","evaluate":true}, + {"name":"switch-on.img","url":"switch-on.js","evaluate":true}, + {"name":"switch-off.img","url":"switch-off.js","evaluate":true}, {"name":"light-on.img","url":"light-on.js","evaluate":true}, {"name":"light-off.img","url":"light-off.js","evaluate":true} ] diff --git a/apps/smartswitch/smartswitch.app.js b/apps/smartswitch/smartswitch.app.js index 90e0a82a8..ebfa5768a 100644 --- a/apps/smartswitch/smartswitch.app.js +++ b/apps/smartswitch/smartswitch.app.js @@ -21,7 +21,7 @@ let pages = [ }, { name: "Upstairs", - icon: "smartswitch", + icon: "switch", state: false }]; diff --git a/apps/smartswitch/smartswitch-off.js b/apps/smartswitch/switch-off.js similarity index 100% rename from apps/smartswitch/smartswitch-off.js rename to apps/smartswitch/switch-off.js diff --git a/apps/smartswitch/smartswitch-on.js b/apps/smartswitch/switch-on.js similarity index 100% rename from apps/smartswitch/smartswitch-on.js rename to apps/smartswitch/switch-on.js From ebcabdb72ab2ee20ed47a5e29699558128a03ee3 Mon Sep 17 00:00:00 2001 From: wmurray-es <7922184d347c9e59e1ad273d42242d100bdaf524> Date: Thu, 30 Apr 2020 22:11:29 +0100 Subject: [PATCH 037/464] Use .img, not .png --- apps.json | 6 +++--- apps/smartswitch/smartswitch.app.js | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps.json b/apps.json index 657f93469..f536c0448 100644 --- a/apps.json +++ b/apps.json @@ -1170,10 +1170,10 @@ "storage": [ {"name":"smartswitch.app.js","url":"app.js"}, {"name":"smartswitch.img","url":"app-icon.js","evaluate":true}, - {"name":"switch-on.img","url":"switch-on.js","evaluate":true}, - {"name":"switch-off.img","url":"switch-off.js","evaluate":true}, {"name":"light-on.img","url":"light-on.js","evaluate":true}, - {"name":"light-off.img","url":"light-off.js","evaluate":true} + {"name":"light-off.img","url":"light-off.js","evaluate":true}, + {"name":"switch-on.img","url":"switch-on.js","evaluate":true}, + {"name":"switch-off.img","url":"switch-off.js","evaluate":true} ] } ] diff --git a/apps/smartswitch/smartswitch.app.js b/apps/smartswitch/smartswitch.app.js index ebfa5768a..e8491a065 100644 --- a/apps/smartswitch/smartswitch.app.js +++ b/apps/smartswitch/smartswitch.app.js @@ -36,7 +36,7 @@ function loadPage(page) { g.drawString(page.name, g.getWidth() / 2, 200); g.setFont("Vector", 40); g.drawString(page.state ? "On" : "Off", g.getWidth() / 2, g.getHeight() / 2); - g.drawImage(storage.read(`${icon}.png`), g.getWidth() / 2 - 24, g.getHeight() / 2 - 24 - 50); + g.drawImage(storage.read(`${icon}.img`), g.getWidth() / 2 - 24, g.getHeight() / 2 - 24 - 50); } function prevPage() { From 2cc6b9d62c1e8a9e33e9436066e725a1d758fce6 Mon Sep 17 00:00:00 2001 From: wmurray-es <7922184d347c9e59e1ad273d42242d100bdaf524> Date: Thu, 30 Apr 2020 22:18:11 +0100 Subject: [PATCH 038/464] Renamw to see if it works now! --- apps.json | 2 +- apps/smartswitch/{smartswitch.app.js => smartswitch.js} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename apps/smartswitch/{smartswitch.app.js => smartswitch.js} (100%) diff --git a/apps.json b/apps.json index f536c0448..d6acd37ee 100644 --- a/apps.json +++ b/apps.json @@ -1168,7 +1168,7 @@ "tags": "bluetooth,btle,smart,switch", "readme": "README.md", "storage": [ - {"name":"smartswitch.app.js","url":"app.js"}, + {"name":"smartswitch.js","url":"app.js"}, {"name":"smartswitch.img","url":"app-icon.js","evaluate":true}, {"name":"light-on.img","url":"light-on.js","evaluate":true}, {"name":"light-off.img","url":"light-off.js","evaluate":true}, diff --git a/apps/smartswitch/smartswitch.app.js b/apps/smartswitch/smartswitch.js similarity index 100% rename from apps/smartswitch/smartswitch.app.js rename to apps/smartswitch/smartswitch.js From 8c25479163e1ce158100711c825324953dadb0ea Mon Sep 17 00:00:00 2001 From: wmurray-es <7922184d347c9e59e1ad273d42242d100bdaf524> Date: Thu, 30 Apr 2020 22:22:19 +0100 Subject: [PATCH 039/464] Rename to obey char limit --- apps.json | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/apps.json b/apps.json index d6acd37ee..13aec3c04 100644 --- a/apps.json +++ b/apps.json @@ -1159,13 +1159,14 @@ {"name":"batchart.img","url":"app-icon.js","evaluate":true} ] }, - { "id": "smartswitch", - "name": "BTLE Smartswitch", - "shortName":"Smartswitch", + { "id": "smtswch", + "name": "Smartswitch", + "shortName":"SmtSwch", "icon": "app.png", "version":"0.01", "description": "Using EspruinoHub, control your smart devices on and off via Bluetooth Low Energy!", "tags": "bluetooth,btle,smart,switch", + "type": "bluetooth", "readme": "README.md", "storage": [ {"name":"smartswitch.js","url":"app.js"}, From 05471b0ab4c1fd21f19f42115b14c7832ff915a4 Mon Sep 17 00:00:00 2001 From: wmurray-es <7922184d347c9e59e1ad273d42242d100bdaf524> Date: Thu, 30 Apr 2020 22:23:34 +0100 Subject: [PATCH 040/464] Rename to obey char limit --- apps/{smartswitch => smtswch}/ChangeLog | 0 apps/{smartswitch => smtswch}/README.MD | 0 apps/{smartswitch => smtswch}/app.png | Bin apps/{smartswitch => smtswch}/light-off.js | 0 apps/{smartswitch => smtswch}/light-on.js | 0 apps/{smartswitch => smtswch}/smartswitch-icon.js | 0 apps/{smartswitch => smtswch}/smartswitch.js | 0 apps/{smartswitch => smtswch}/switch-off.js | 0 apps/{smartswitch => smtswch}/switch-on.js | 0 9 files changed, 0 insertions(+), 0 deletions(-) rename apps/{smartswitch => smtswch}/ChangeLog (100%) rename apps/{smartswitch => smtswch}/README.MD (100%) rename apps/{smartswitch => smtswch}/app.png (100%) rename apps/{smartswitch => smtswch}/light-off.js (100%) rename apps/{smartswitch => smtswch}/light-on.js (100%) rename apps/{smartswitch => smtswch}/smartswitch-icon.js (100%) rename apps/{smartswitch => smtswch}/smartswitch.js (100%) rename apps/{smartswitch => smtswch}/switch-off.js (100%) rename apps/{smartswitch => smtswch}/switch-on.js (100%) diff --git a/apps/smartswitch/ChangeLog b/apps/smtswch/ChangeLog similarity index 100% rename from apps/smartswitch/ChangeLog rename to apps/smtswch/ChangeLog diff --git a/apps/smartswitch/README.MD b/apps/smtswch/README.MD similarity index 100% rename from apps/smartswitch/README.MD rename to apps/smtswch/README.MD diff --git a/apps/smartswitch/app.png b/apps/smtswch/app.png similarity index 100% rename from apps/smartswitch/app.png rename to apps/smtswch/app.png diff --git a/apps/smartswitch/light-off.js b/apps/smtswch/light-off.js similarity index 100% rename from apps/smartswitch/light-off.js rename to apps/smtswch/light-off.js diff --git a/apps/smartswitch/light-on.js b/apps/smtswch/light-on.js similarity index 100% rename from apps/smartswitch/light-on.js rename to apps/smtswch/light-on.js diff --git a/apps/smartswitch/smartswitch-icon.js b/apps/smtswch/smartswitch-icon.js similarity index 100% rename from apps/smartswitch/smartswitch-icon.js rename to apps/smtswch/smartswitch-icon.js diff --git a/apps/smartswitch/smartswitch.js b/apps/smtswch/smartswitch.js similarity index 100% rename from apps/smartswitch/smartswitch.js rename to apps/smtswch/smartswitch.js diff --git a/apps/smartswitch/switch-off.js b/apps/smtswch/switch-off.js similarity index 100% rename from apps/smartswitch/switch-off.js rename to apps/smtswch/switch-off.js diff --git a/apps/smartswitch/switch-on.js b/apps/smtswch/switch-on.js similarity index 100% rename from apps/smartswitch/switch-on.js rename to apps/smtswch/switch-on.js From 5108dc1c9dea25020447fd34ba916a36bcc87d6f Mon Sep 17 00:00:00 2001 From: wmurray-es <7922184d347c9e59e1ad273d42242d100bdaf524> Date: Thu, 30 Apr 2020 22:24:40 +0100 Subject: [PATCH 041/464] Rename to obey char limit --- apps.json | 4 ++-- apps/smtswch/{smartswitch-icon.js => smtswch-icon.js} | 0 apps/smtswch/{smartswitch.js => smtswch.js} | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename apps/smtswch/{smartswitch-icon.js => smtswch-icon.js} (100%) rename apps/smtswch/{smartswitch.js => smtswch.js} (100%) diff --git a/apps.json b/apps.json index 13aec3c04..be2fb8561 100644 --- a/apps.json +++ b/apps.json @@ -1169,8 +1169,8 @@ "type": "bluetooth", "readme": "README.md", "storage": [ - {"name":"smartswitch.js","url":"app.js"}, - {"name":"smartswitch.img","url":"app-icon.js","evaluate":true}, + {"name":"smtswch.js","url":"app.js"}, + {"name":"smtswch.img","url":"app-icon.js","evaluate":true}, {"name":"light-on.img","url":"light-on.js","evaluate":true}, {"name":"light-off.img","url":"light-off.js","evaluate":true}, {"name":"switch-on.img","url":"switch-on.js","evaluate":true}, diff --git a/apps/smtswch/smartswitch-icon.js b/apps/smtswch/smtswch-icon.js similarity index 100% rename from apps/smtswch/smartswitch-icon.js rename to apps/smtswch/smtswch-icon.js diff --git a/apps/smtswch/smartswitch.js b/apps/smtswch/smtswch.js similarity index 100% rename from apps/smtswch/smartswitch.js rename to apps/smtswch/smtswch.js From 04ac077892b0a7d75f00d232f39c47da38fda598 Mon Sep 17 00:00:00 2001 From: wmurray-es <7922184d347c9e59e1ad273d42242d100bdaf524> Date: Thu, 30 Apr 2020 22:26:20 +0100 Subject: [PATCH 042/464] Renaming until it works! --- apps.json | 4 ++-- apps/smtswch/{smtswch.js => app.js} | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename apps/smtswch/{smtswch.js => app.js} (100%) diff --git a/apps.json b/apps.json index be2fb8561..5172e3355 100644 --- a/apps.json +++ b/apps.json @@ -1169,8 +1169,8 @@ "type": "bluetooth", "readme": "README.md", "storage": [ - {"name":"smtswch.js","url":"app.js"}, - {"name":"smtswch.img","url":"app-icon.js","evaluate":true}, + {"name":"app.js","url":"app.js"}, + {"name":"smtswch.img","url":"smtswch.js","evaluate":true}, {"name":"light-on.img","url":"light-on.js","evaluate":true}, {"name":"light-off.img","url":"light-off.js","evaluate":true}, {"name":"switch-on.img","url":"switch-on.js","evaluate":true}, diff --git a/apps/smtswch/smtswch.js b/apps/smtswch/app.js similarity index 100% rename from apps/smtswch/smtswch.js rename to apps/smtswch/app.js From 1f502b41e54c9ec729e0342df744c8ded76b752d Mon Sep 17 00:00:00 2001 From: wmurray-es <7922184d347c9e59e1ad273d42242d100bdaf524> Date: Thu, 30 Apr 2020 22:28:26 +0100 Subject: [PATCH 043/464] Renaming until it works! --- apps.json | 2 +- apps/smtswch/{smtswch-icon.js => app-icon.js} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename apps/smtswch/{smtswch-icon.js => app-icon.js} (100%) diff --git a/apps.json b/apps.json index 5172e3355..f921822b3 100644 --- a/apps.json +++ b/apps.json @@ -1170,7 +1170,7 @@ "readme": "README.md", "storage": [ {"name":"app.js","url":"app.js"}, - {"name":"smtswch.img","url":"smtswch.js","evaluate":true}, + {"name":"smtswch.img","url":"app-icon.js","evaluate":true}, {"name":"light-on.img","url":"light-on.js","evaluate":true}, {"name":"light-off.img","url":"light-off.js","evaluate":true}, {"name":"switch-on.img","url":"switch-on.js","evaluate":true}, diff --git a/apps/smtswch/smtswch-icon.js b/apps/smtswch/app-icon.js similarity index 100% rename from apps/smtswch/smtswch-icon.js rename to apps/smtswch/app-icon.js From ed84146c5a959e07bf33dabddf766838830f2fbf Mon Sep 17 00:00:00 2001 From: wmurray-es <7922184d347c9e59e1ad273d42242d100bdaf524> Date: Thu, 30 Apr 2020 22:39:16 +0100 Subject: [PATCH 044/464] Renaming until it works! --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index f921822b3..aed21d89f 100644 --- a/apps.json +++ b/apps.json @@ -1169,7 +1169,7 @@ "type": "bluetooth", "readme": "README.md", "storage": [ - {"name":"app.js","url":"app.js"}, + {"name":"smtswch.app.js","url":"app.js"}, {"name":"smtswch.img","url":"app-icon.js","evaluate":true}, {"name":"light-on.img","url":"light-on.js","evaluate":true}, {"name":"light-off.img","url":"light-off.js","evaluate":true}, From 5dde9dc0a51ac208ad7bed76e4514e5fb889c138 Mon Sep 17 00:00:00 2001 From: wmurray-es <7922184d347c9e59e1ad273d42242d100bdaf524> Date: Thu, 30 Apr 2020 22:45:38 +0100 Subject: [PATCH 045/464] Update app name --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index aed21d89f..0054f67a0 100644 --- a/apps.json +++ b/apps.json @@ -1160,7 +1160,7 @@ ] }, { "id": "smtswch", - "name": "Smartswitch", + "name": "Smart Switch", "shortName":"SmtSwch", "icon": "app.png", "version":"0.01", From f165dcef2e386af687c828b3e66c3ca325e9bdca Mon Sep 17 00:00:00 2001 From: wmurray-es <7922184d347c9e59e1ad273d42242d100bdaf524> Date: Thu, 30 Apr 2020 22:51:11 +0100 Subject: [PATCH 046/464] Update README name --- apps/smtswch/{README.MD => README.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename apps/smtswch/{README.MD => README.md} (100%) diff --git a/apps/smtswch/README.MD b/apps/smtswch/README.md similarity index 100% rename from apps/smtswch/README.MD rename to apps/smtswch/README.md From 6bc47dd4311a4fe7631ea5619f0868291dc65ee5 Mon Sep 17 00:00:00 2001 From: wmurray-es <7922184d347c9e59e1ad273d42242d100bdaf524> Date: Thu, 30 Apr 2020 22:59:43 +0100 Subject: [PATCH 047/464] Try another image --- apps/smtswch/app-icon.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/smtswch/app-icon.js b/apps/smtswch/app-icon.js index 9153bd3ca..f61914be8 100644 --- a/apps/smtswch/app-icon.js +++ b/apps/smtswch/app-icon.js @@ -1 +1 @@ -require("heatshrink").decompress(atob("mEwxH+AH4A/AH4A/AH4A/AH4A/AH4Ag1gAECyGFAB1bAAmAFooyQFp4uGEoWIwQAEGBgtQFwtcFpAACxAwJFyIvFEAItIMAowFF1IwFF6zqBRhIvIxBetMAYvWdgJeSAAOHFyQvEw5eRBAeIF6+IF5wIHF66+LTJIvlNBaPfRRAved4g0BAASNJd4f+F61cFQYAEFxQ/Bw4vXYAQAFLxms/wABGC2ALyaOBF7BgGLyAweFyIwTF4jyDLxKMBFw4xTGAhhEFpAuKGKQwFeg4ADFxgAZFlgA/AH4A/AH4A/AH4A/AH4AhA")) \ No newline at end of file +require("heatshrink").decompress(atob("mEwxH+AH4A/AH4AS64AIF/4pZABYuuGDIv/F/4v/F9+Gw0rAQIASF7YxTF7cxwAvtrdVF9qQTF/4vMYCQvcYCQvcSCQvdqpgQF7oEBYJ4veAoNbF9uGmMrrgvsw2AGILFKF8IACrYxJF8gxDSowvmBwWAF9oPGF9NbmIvtCAovqMAgvqCIgvrrdVF9oSDF9iPuF7crACxf/F++wFqmG2AvXGCouZAH4A/AGY")) From addc7a7f99172a310133c35e3f43685b7633416e Mon Sep 17 00:00:00 2001 From: wmurray-es <7922184d347c9e59e1ad273d42242d100bdaf524> Date: Thu, 30 Apr 2020 23:08:17 +0100 Subject: [PATCH 048/464] Revert image --- apps/smtswch/app-icon.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/smtswch/app-icon.js b/apps/smtswch/app-icon.js index f61914be8..9153bd3ca 100644 --- a/apps/smtswch/app-icon.js +++ b/apps/smtswch/app-icon.js @@ -1 +1 @@ -require("heatshrink").decompress(atob("mEwxH+AH4A/AH4AS64AIF/4pZABYuuGDIv/F/4v/F9+Gw0rAQIASF7YxTF7cxwAvtrdVF9qQTF/4vMYCQvcYCQvcSCQvdqpgQF7oEBYJ4veAoNbF9uGmMrrgvsw2AGILFKF8IACrYxJF8gxDSowvmBwWAF9oPGF9NbmIvtCAovqMAgvqCIgvrrdVF9oSDF9iPuF7crACxf/F++wFqmG2AvXGCouZAH4A/AGY")) +require("heatshrink").decompress(atob("mEwxH+AH4A/AH4A/AH4A/AH4A/AH4Ag1gAECyGFAB1bAAmAFooyQFp4uGEoWIwQAEGBgtQFwtcFpAACxAwJFyIvFEAItIMAowFF1IwFF6zqBRhIvIxBetMAYvWdgJeSAAOHFyQvEw5eRBAeIF6+IF5wIHF66+LTJIvlNBaPfRRAved4g0BAASNJd4f+F61cFQYAEFxQ/Bw4vXYAQAFLxms/wABGC2ALyaOBF7BgGLyAweFyIwTF4jyDLxKMBFw4xTGAhhEFpAuKGKQwFeg4ADFxgAZFlgA/AH4A/AH4A/AH4A/AH4AhA")) \ No newline at end of file From 016e86a2f8d7e77b643617ad1012799b160cf886 Mon Sep 17 00:00:00 2001 From: wmurray-es <7922184d347c9e59e1ad273d42242d100bdaf524> Date: Fri, 1 May 2020 10:10:41 +0100 Subject: [PATCH 049/464] Change to correct app type so the app will show up in the watch loaders --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 0054f67a0..b56a49a4c 100644 --- a/apps.json +++ b/apps.json @@ -1166,7 +1166,7 @@ "version":"0.01", "description": "Using EspruinoHub, control your smart devices on and off via Bluetooth Low Energy!", "tags": "bluetooth,btle,smart,switch", - "type": "bluetooth", + "type": "app", "readme": "README.md", "storage": [ {"name":"smtswch.app.js","url":"app.js"}, From f0261c515395f09659472666fbcfc32006bbe30a Mon Sep 17 00:00:00 2001 From: wmurray-es <7922184d347c9e59e1ad273d42242d100bdaf524> Date: Fri, 1 May 2020 10:16:41 +0100 Subject: [PATCH 050/464] Use proper short name --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index b56a49a4c..0ffad9b82 100644 --- a/apps.json +++ b/apps.json @@ -1161,7 +1161,7 @@ }, { "id": "smtswch", "name": "Smart Switch", - "shortName":"SmtSwch", + "shortName":"Smart Switch", "icon": "app.png", "version":"0.01", "description": "Using EspruinoHub, control your smart devices on and off via Bluetooth Low Energy!", From 446b7a0574a6e73c76f9bbae570c9826046c0475 Mon Sep 17 00:00:00 2001 From: wmurray-es <7922184d347c9e59e1ad273d42242d100bdaf524> Date: Fri, 1 May 2020 18:36:48 +0100 Subject: [PATCH 051/464] Add more docs --- apps/smtswch/README.md | 37 ++++++++++++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/apps/smtswch/README.md b/apps/smtswch/README.md index 57ecbd65c..3e8da2189 100644 --- a/apps/smtswch/README.md +++ b/apps/smtswch/README.md @@ -1,12 +1,43 @@ -# Smartswitch app for BangleJS +# Smart Switch app for BangleJS +![Demo of Smart Switch app in action](https://raw.githubusercontent.com/wdmtech/BangleApps/add-video/apps/smtswch/demo.gif) + +Swipe right to turn a device ON +Swipe left to turn a device OFF + +BTN1 (top-right) - Previous device (page) +BTN3 (bottom-right) - Next device (page) # EspruinoHub Install EspruinoHub following the directions at [https://github.com/espruino/EspruinoHub](https://github.com/espruino/EspruinoHub) +Here's the part that does the actual BTLE advertising on the watch itself: + +```JS +NRF.setAdvertising({ + 0xFFFF: [currentPage, page.state] +}); +``` + +You should see data like the following: + +``` +ec:5a:c1:a7:fc:91 - Bangle.js fc91 (RSSI -83) + ffff => {"data":"1,1"} +``` + # Example Node-RED flow -``` +Import the following JSON into Node-RED + +```JSON [{"id":"6d5e0685.62fed8","type":"switch","z":"37813ca5.3e4a04","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"0,0","vt":"str"},{"t":"eq","v":"0,1","vt":"str"},{"t":"eq","v":"1,0","vt":"str"},{"t":"eq","v":"1,1","vt":"str"},{"t":"eq","v":"2,0","vt":"str"},{"t":"eq","v":"2,1","vt":"str"},{"t":"eq","v":"3,0","vt":"str"},{"t":"eq","v":"3,1","vt":"str"},{"t":"eq","v":"4,0","vt":"str"},{"t":"eq","v":"4,1","vt":"str"}],"checkall":"true","repair":false,"outputs":10,"x":130,"y":520,"wires":[["2dd25bad.402644"],["e39ef382.eea6c"],["bb5aca6b.24e888"],["ed2bb6.25745448"],["869f116a.18c0a"],["d7661912.3d1f78"],[],[],[],[]]},{"id":"e39ef382.eea6c","type":"change","z":"37813ca5.3e4a04","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"ON","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":500,"wires":[["fc85fc8f.9622f8"]]},{"id":"2dd25bad.402644","type":"change","z":"37813ca5.3e4a04","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"OFF","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":460,"wires":[["fc85fc8f.9622f8"]]},{"id":"ed2bb6.25745448","type":"change","z":"37813ca5.3e4a04","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"ON","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":600,"wires":[["dbcd73c6.cc0bf"]]},{"id":"bb5aca6b.24e888","type":"change","z":"37813ca5.3e4a04","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"OFF","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":560,"wires":[["dbcd73c6.cc0bf"]]},{"id":"d7661912.3d1f78","type":"change","z":"37813ca5.3e4a04","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"ON","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":700,"wires":[["c8cb0b9b.1b7528"]]},{"id":"869f116a.18c0a","type":"change","z":"37813ca5.3e4a04","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"OFF","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":660,"wires":[["c8cb0b9b.1b7528"]]}] -``` \ No newline at end of file +``` + +# Future + +PRs welcome! + +[ ] Add an HTML GUI for configuring devices inside the Bangle.js App Loader +[ ] Allow enable/disable of buzz/beep on change of device state From 39723a2ccd4775ca1521ad27d30513c2473d1285 Mon Sep 17 00:00:00 2001 From: wmurray-es <7922184d347c9e59e1ad273d42242d100bdaf524> Date: Fri, 1 May 2020 19:00:50 +0100 Subject: [PATCH 052/464] Add more docs --- apps/smtswch/README.md | 55 ++++++++++++++++++++++++++++++------------ 1 file changed, 40 insertions(+), 15 deletions(-) diff --git a/apps/smtswch/README.md b/apps/smtswch/README.md index 3e8da2189..209adba80 100644 --- a/apps/smtswch/README.md +++ b/apps/smtswch/README.md @@ -1,18 +1,47 @@ # Smart Switch app for BangleJS +This app allows you to remotely control devices (or anything else you like!) with: + +* [Bangle.js](https://www.espruino.com/Bangle.js) (Hackable JavaScript Smartwatch) +* [EspruinoHub](https://github.com/espruino/EspruinoHub) (Bluetooth Low Energy -> MQTT bridge) +* [Node-RED](https://nodered.org) (Flow-based programming tool) + ![Demo of Smart Switch app in action](https://raw.githubusercontent.com/wdmtech/BangleApps/add-video/apps/smtswch/demo.gif) -Swipe right to turn a device ON -Swipe left to turn a device OFF +* Swipe right to turn a device ON +* Swipe left to turn a device OFF +* BTN1 (top-right) - Previous device (page) +* BTN3 (bottom-right) - Next device (page) -BTN1 (top-right) - Previous device (page) -BTN3 (bottom-right) - Next device (page) +> Currently, devices can only be added/removed/changed by editing them in the app's source code. -# EspruinoHub +# How to use + +First, you'll need a device that supports BLE. Install EspruinoHub following the directions at [https://github.com/espruino/EspruinoHub](https://github.com/espruino/EspruinoHub) +Install [Node-RED](https://nodered.org/docs/getting-started) -Here's the part that does the actual BTLE advertising on the watch itself: +## Example Node-RED flow + +Import the following JSON into Node-RED and configure the MQTT IN node to use your EspruinoHub's MQTT instance (default port is 1883): + +```JSON +[{"id":"87c6f73e.f22038","type":"mqtt in","z":"a256522.ca0b0b","name":"⌚️BangleJS data","topic":"/ble/advertise/ec:5a:c1:a7:fc:91/data","qos":"2","datatype":"auto","broker":"b961407a.91beb","x":860,"y":100,"wires":[["c37809de.3fc538"]]},{"id":"c37809de.3fc538","type":"function","z":"a256522.ca0b0b","name":"Set topic, remove quotes","func":"msg.topic = \"any_topic_here\";\nmsg.payload = msg.payload.replace(/['\"]+/g, \"\")\n\nreturn msg;","outputs":1,"noerr":0,"x":1070,"y":100,"wires":[["9019be89.5b6d5"]]},{"id":"9019be89.5b6d5","type":"debug","z":"a256522.ca0b0b","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":1250,"y":100,"wires":[]},{"id":"b961407a.91beb","type":"mqtt-broker","z":"","name":"","broker":"192.168.1.22","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"hello_there","birthQos":"0","birthPayload":"","closeTopic":"bye_now","closeQos":"0","closePayload":"true","willTopic":"bye_now","willQos":"0","willPayload":"true"}] +``` + +Replace the topic of the MQTT IN node to use the ID of your Bangle.js device, e.g: + +`/ble/advertise/ec:5a:c1:a7:fc:91/data` + +Once you see the MQTT IN node is configured correctly (it says `connected` below the node itself), try swiping in the Smart Switch app, and +you should see some data in the Debug node. + +The possibilities for switching things on and off via Bangle.js are now endless. Have fun! + +# How it works + +This is the code that does the actual [BLE advertising](https://www.espruino.com/BLE%20Advertising) on the watch itself: ```JS NRF.setAdvertising({ @@ -20,21 +49,17 @@ NRF.setAdvertising({ }); ``` -You should see data like the following: +# Not working? + +If you can't see any data in Node-RED after swiping, check to see if your device is advertising by visiting port 1888 of your EspruinoHub instance: + +You should see something like the following: ``` ec:5a:c1:a7:fc:91 - Bangle.js fc91 (RSSI -83) ffff => {"data":"1,1"} ``` -# Example Node-RED flow - -Import the following JSON into Node-RED - -```JSON -[{"id":"6d5e0685.62fed8","type":"switch","z":"37813ca5.3e4a04","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"0,0","vt":"str"},{"t":"eq","v":"0,1","vt":"str"},{"t":"eq","v":"1,0","vt":"str"},{"t":"eq","v":"1,1","vt":"str"},{"t":"eq","v":"2,0","vt":"str"},{"t":"eq","v":"2,1","vt":"str"},{"t":"eq","v":"3,0","vt":"str"},{"t":"eq","v":"3,1","vt":"str"},{"t":"eq","v":"4,0","vt":"str"},{"t":"eq","v":"4,1","vt":"str"}],"checkall":"true","repair":false,"outputs":10,"x":130,"y":520,"wires":[["2dd25bad.402644"],["e39ef382.eea6c"],["bb5aca6b.24e888"],["ed2bb6.25745448"],["869f116a.18c0a"],["d7661912.3d1f78"],[],[],[],[]]},{"id":"e39ef382.eea6c","type":"change","z":"37813ca5.3e4a04","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"ON","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":500,"wires":[["fc85fc8f.9622f8"]]},{"id":"2dd25bad.402644","type":"change","z":"37813ca5.3e4a04","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"OFF","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":460,"wires":[["fc85fc8f.9622f8"]]},{"id":"ed2bb6.25745448","type":"change","z":"37813ca5.3e4a04","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"ON","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":600,"wires":[["dbcd73c6.cc0bf"]]},{"id":"bb5aca6b.24e888","type":"change","z":"37813ca5.3e4a04","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"OFF","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":560,"wires":[["dbcd73c6.cc0bf"]]},{"id":"d7661912.3d1f78","type":"change","z":"37813ca5.3e4a04","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"ON","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":700,"wires":[["c8cb0b9b.1b7528"]]},{"id":"869f116a.18c0a","type":"change","z":"37813ca5.3e4a04","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"OFF","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":660,"wires":[["c8cb0b9b.1b7528"]]}] -``` - # Future PRs welcome! From 836bf7f21c70522aa57303c53af3f9fffd61618c Mon Sep 17 00:00:00 2001 From: wmurray-es <7922184d347c9e59e1ad273d42242d100bdaf524> Date: Fri, 1 May 2020 19:02:53 +0100 Subject: [PATCH 053/464] Add contact details --- apps/smtswch/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apps/smtswch/README.md b/apps/smtswch/README.md index 209adba80..3ac6658c9 100644 --- a/apps/smtswch/README.md +++ b/apps/smtswch/README.md @@ -60,6 +60,10 @@ ec:5a:c1:a7:fc:91 - Bangle.js fc91 (RSSI -83) ffff => {"data":"1,1"} ``` +# Any comments? + +[Tweet me!](https://twitter.com/BillyWhizzkid) + # Future PRs welcome! From b043d24e0d094b316cd7f2f605c8f88b78c3ccdc Mon Sep 17 00:00:00 2001 From: wmurray-es <7922184d347c9e59e1ad273d42242d100bdaf524> Date: Fri, 1 May 2020 19:13:46 +0100 Subject: [PATCH 054/464] Remove before pulling from upstream --- apps.json | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/apps.json b/apps.json index 0ffad9b82..d85739aad 100644 --- a/apps.json +++ b/apps.json @@ -1158,23 +1158,5 @@ {"name":"batchart.app.js","url":"app.js"}, {"name":"batchart.img","url":"app-icon.js","evaluate":true} ] - }, - { "id": "smtswch", - "name": "Smart Switch", - "shortName":"Smart Switch", - "icon": "app.png", - "version":"0.01", - "description": "Using EspruinoHub, control your smart devices on and off via Bluetooth Low Energy!", - "tags": "bluetooth,btle,smart,switch", - "type": "app", - "readme": "README.md", - "storage": [ - {"name":"smtswch.app.js","url":"app.js"}, - {"name":"smtswch.img","url":"app-icon.js","evaluate":true}, - {"name":"light-on.img","url":"light-on.js","evaluate":true}, - {"name":"light-off.img","url":"light-off.js","evaluate":true}, - {"name":"switch-on.img","url":"switch-on.js","evaluate":true}, - {"name":"switch-off.img","url":"switch-off.js","evaluate":true} - ] } ] From ddf0f5c304ae8ea06db8fcb13c3228ee78b3338a Mon Sep 17 00:00:00 2001 From: wmurray-es <7922184d347c9e59e1ad273d42242d100bdaf524> Date: Fri, 1 May 2020 19:14:47 +0100 Subject: [PATCH 055/464] Add entry at end of file --- apps.json | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/apps.json b/apps.json index e9e38a1a1..899390497 100644 --- a/apps.json +++ b/apps.json @@ -1550,5 +1550,23 @@ {"name":"hidjoystick.app.js","url":"app.js"}, {"name":"hidjoystick.img","url":"app-icon.js","evaluate":true} ] + }, + { "id": "smtswch", + "name": "Smart Switch", + "shortName":"Smart Switch", + "icon": "app.png", + "version":"0.01", + "description": "Using EspruinoHub, control your smart devices on and off via Bluetooth Low Energy!", + "tags": "bluetooth,btle,smart,switch", + "type": "app", + "readme": "README.md", + "storage": [ + {"name":"smtswch.app.js","url":"app.js"}, + {"name":"smtswch.img","url":"app-icon.js","evaluate":true}, + {"name":"light-on.img","url":"light-on.js","evaluate":true}, + {"name":"light-off.img","url":"light-off.js","evaluate":true}, + {"name":"switch-on.img","url":"switch-on.js","evaluate":true}, + {"name":"switch-off.img","url":"switch-off.js","evaluate":true} + ] } ] From 418ce714f947cae8c4497df43a84c3741da803b8 Mon Sep 17 00:00:00 2001 From: Francesco Bedussi Date: Sat, 2 May 2020 13:45:22 +0200 Subject: [PATCH 056/464] feat: add timer app --- apps.json | 21 ++++++ apps/timer/ChangeLog | 1 + apps/timer/README.md | 16 +++++ apps/timer/app-icon.js | 5 ++ apps/timer/app.js | 151 +++++++++++++++++++++++++++++++++++++++++ apps/timer/app.png | Bin 0 -> 2107 bytes 6 files changed, 194 insertions(+) create mode 100644 apps/timer/ChangeLog create mode 100644 apps/timer/README.md create mode 100644 apps/timer/app-icon.js create mode 100644 apps/timer/app.js create mode 100644 apps/timer/app.png diff --git a/apps.json b/apps.json index e9e38a1a1..c57d94958 100644 --- a/apps.json +++ b/apps.json @@ -1550,5 +1550,26 @@ {"name":"hidjoystick.app.js","url":"app.js"}, {"name":"hidjoystick.img","url":"app-icon.js","evaluate":true} ] + }, + { + "id": "timer", + "name": "Timer", + "icon": "app.png", + "version": "0.01", + "description": "Simple timer, useful when playing board games or cooking", + "tags": "timer", + "readme": "README.md", + "allow_emulator": true, + "storage": [ + { + "name": "timer.app.js", + "url": "app.js" + }, + { + "name": "timer.img", + "url": "app-icon.js", + "evaluate": true + } + ] } ] diff --git a/apps/timer/ChangeLog b/apps/timer/ChangeLog new file mode 100644 index 000000000..ec66c5568 --- /dev/null +++ b/apps/timer/ChangeLog @@ -0,0 +1 @@ +0.01: Initial version diff --git a/apps/timer/README.md b/apps/timer/README.md new file mode 100644 index 000000000..9326e510d --- /dev/null +++ b/apps/timer/README.md @@ -0,0 +1,16 @@ +# Timer + +Simple timer, useful when playing board games or cooking + +## Features + +- When the time is up the timer can be reset to starting time, this is useful e.g. for playing board games +- When the countdown is running the timer cannot be adjusted, this prevents accidental time variations +- When the time is up the starting time is shown, as a reminder of the time elapsed + +## How to use it + +- Tap on minutes to increase them one by one +- Tap on seconds to increase them one by one +- Press BTN3 to reset time to 0 +- Press BTN1 to start the timer or reset to the original time diff --git a/apps/timer/app-icon.js b/apps/timer/app-icon.js new file mode 100644 index 000000000..b55486dd1 --- /dev/null +++ b/apps/timer/app-icon.js @@ -0,0 +1,5 @@ +require("heatshrink").decompress( + atob( + "mEwxH+AH4A/AEsxAAQso1eyrgvDrmrw4skAAQuDAAIHBrYABFsQvMGLYtGAAOAFweA2WrF4gwYFxAwEFwIvBwowFsIub64AB6wJF6wJB1mGMTFbrmsEYoADHAwAC1dhGCoTCmJhBEYoAM2RiFF6VbleBF6QABGAguSw2sgAwnCAdhXYIwBqwvT2WFDwYvP1YZCwMAlYwT1ZgORogZEqwwB1iRhBoYmGlcAYiZgOBgWFDIzCBAALESYIYvMw4ZHGCuHF5aOKeYgABYiCQMBYeyDZLzBAAQwO2QvPDhbzCeqAvbGAQQBlYvqeYIvteYMreJ7vaACbvQJxwAP1YvLGAeHF7uHFxYvDwovdwovPSDusRxgvEwwvbwwvNGAmrds4vGsOyFy+ysIvPSLqNPGDwuT/xyEwySS2QuEF6BgEYYL0Q1ZIEFyIwGMQIxM1ZcFFyYwHreFw+rSwmy1eHwoSGFygxJABwtXeo4upMSQtdGZorjAH4A/AF4A==" + ) +) diff --git a/apps/timer/app.js b/apps/timer/app.js new file mode 100644 index 000000000..dadbdb825 --- /dev/null +++ b/apps/timer/app.js @@ -0,0 +1,151 @@ +let counter = 0; +let setValue = 0; +let counterInterval; +let state; + +const DEBOUNCE = 50; + +function buzzAndBeep() { + return Bangle.buzz(1000, 1) + .then(() => Bangle.beep(200, 3000)) + .then(() => setTimeout(buzzAndBeep, 5000)); +} + +function outOfTime() { + g.clearRect(0, 0, 220, 70); + g.setFontAlign(0, 0); + g.setFont("6x8", 3); + g.drawString("Time UP!", 120, 50); + counter = setValue; + buzzAndBeep(); + setInterval(() => { + g.clearRect(0, 70, 220, 160); + setTimeout(draw, 200); + }, 400); + state = "stopped"; +} + +function draw() { + const minutes = Math.floor(counter / 60); + const seconds = Math.floor(counter % 60); + const seconds2Digits = seconds < 10 ? `0${seconds}` : seconds.toString(); + g.clearRect(0, 70, 220, 160); + g.setFontAlign(0, 0); + g.setFont("6x8", 7); + g.drawString( + `${minutes < 10 ? "0" : ""}${minutes}:${seconds2Digits}`, + 120, + 120 + ); +} + +function countDown() { + if (counter <= 0) { + if (counterInterval) { + clearInterval(counterInterval); + counterInterval = undefined; + } + outOfTime(); + return; + } + + counter--; + draw(); +} + +function clearIntervals() { + clearInterval(); + counterInterval = undefined; +} + +function set(delta) { + if (state === "started") return; + counter += delta; + if (state === "unset") { + state = "set"; + } + draw(); + g.flip(); +} + +function startTimer() { + setValue = counter; + countDown(); + counterInterval = setInterval(countDown, 1000); +} + +// unset -> set -> started -> -> stopped -> set +const stateMap = { + set: () => { + state = "started"; + startTimer(); + }, + started: () => { + reset(setValue); + }, + stopped: () => { + reset(setValue); + } +}; + +function changeState() { + if (stateMap[state]) stateMap[state](); +} + +function drawLabels() { + g.clear(); + g.setFontAlign(-1, 0); + g.setFont("6x8", 7); + g.drawString(`+ +`, 35, 180); + g.setFontAlign(0, 0, 3); + g.setFont("6x8", 1); + g.drawString(`reset (re)start`, 230, 120); +} + +function reset(value) { + clearIntervals(); + counter = value; + setValue = value; + drawLabels(); + draw(); + state = value === 0 ? "unset" : "set"; +} + +function addWatch() { + clearWatch(); + setWatch(changeState, BTN1, { + debounce: DEBOUNCE, + repeat: true, + edge: "falling" + }); + setWatch( + () => { + reset(0); + }, + BTN3, + { + debounce: DEBOUNCE, + repeat: true, + edge: "falling" + } + ); + setWatch( + () => { + set(60); + }, + BTN4, + { + debounce: DEBOUNCE, + repeat: true, + edge: "falling" + } + ); + setWatch(() => set(1), BTN5, { + debounce: DEBOUNCE, + repeat: true, + edge: "falling" + }); +} + +reset(0); +addWatch(); diff --git a/apps/timer/app.png b/apps/timer/app.png new file mode 100644 index 0000000000000000000000000000000000000000..f593a3a8bd3f5f87032a6b575bf2432085468a11 GIT binary patch literal 2107 zcmV-B2*me^P)XJ=kQ@6U^OIn&x`%j5jwTW9>b`e1rGrF7ItUzE*SLCs3wMr0e5!fh5fC1)p z@97`NcxUDgGXt}K)$gCl?>pyr&-dMP=bU?f7kG)6m>0+oana>Fm#fq<XQAXA?d%MlQ}^7}kFR0ES_n|GI`urodsR z$o%q%IsXg~=|iEQc_>&dOt1-G+^symJZjaylcUpoirCp8#QDZrv~;z&#J`=t3mnIx=SdfC zJh}p#bJB+*dg@8S*n6k5I~*Z1aO}$>eeU9Iy$O-2@t$owt3i~;h%i+Q2x0JSst+Sm z1B%y)(k3BVn+%6&!>#^Cv_7c8@I=2-*UvfVcM1h&A1+_O?*sf!dlt`*+Alu1J+Lx0 zaTzokH2{DR1~Ix6#D^_{n$v@j>3gB&BcS2JAW{b;>I5MSG<-PX^b4^-J?)=mI2a?A zAZK9#)SM3gd3GBT73IS&kzik)|7K2YbKPALv%s%`HwrRN5nvbe7Mwfz6&5c{gTasp zV|WJiswfbJN#t1#!qstz(i#z^H6mOc2cFe<^B$5*aT10P)662q|cG63BS7ax&=4}M;Wx8B?ZQ52DvmlrAzP;+{u8**{0 zztL?b2#}w@_eW=%YaS{7AAByO42M4eh@FW!Mupv3A7R;&*HB$ujiX18V*mdAu-ilT zcCbJbhoV*G;90etj&=~X%vX-$3<#fZN~V;2EN|bMu^-D4rti4PWP(noLq$aenwpxh zefxIk_4<&Q2-n0wq7ohsf9K)|@ZvqaWSr4yN2xSY;<;ZhQt5>tTVlZFm<$?Qi+h>RqE?yKoA551pDON`o+7!5bw!4 zapDAWa&pku*N2T8H=?1TVV=^TtL3!VytK%Tqd?Kl^E8=6>3f=r;?UxhqL?|kO(%*<21t>&p(wL zj7B5s>gu3UsX!@3Sy>tO?Ae3KNxz%utWdEUERA2~NqgN%F9Qsv+49&Flj(P`wQJYn z+1_tuOdvb?qd_c{|r!IsXR_tuqdFxii?X;Qc~iIySlotX3ZM3 zwY3E(*Bgd#lP8ttNhqyCiSi&ymk{uPm6erlo7=#^0M@Nr2ea8cOO|g$>x{E%1C$Mf z$pbYP`1-C=sZd{EkCc=Y0Kmb&nLtUX&6$E;RJl?Me+CBSt|A{5BQ6AoZ@-6J5HN?{V!!BCU{nULAArfiy z?B`{G@7&Y|P}de}cTVAUf71^layH!RzY4oke#FFo+0OMHp8b^GMkNCBiJWVFPy>-V zL$A^YM9GPko*EC9e4oRV8nZkUJU^Gxj1fbhnb&j=y!$vKPd8LDsm24mLHn;4yX zinG^$jWMfxeU}ovJ6q9r*1Ay3rw{+NVc)_;fVj>G7TXAJKK>fXQ5lHT8s;q=n0{KWjewXx2BufQq|+)_o^4_3Xl!0ugq6u#p;9Ox zD#0#VajXApwDg=)xa$Cb%N+E(0x9kWTwZ^tJ&TVUjHo2Q0i|{or$t))YNWNtHXkksX+{m_Mmt8J9Iy}?zu_HK&!Yg`o6HaIiQUv=ub>X%v*L5(BqI* z?Lvg7l;9WT+Z*eGNecQvQ(kbjR&Z6%WkwBi|8oei8#5 zq@eo%k`i1t?E{!<3R>lBlL`bO`OGQ^0^`VP$p(=By!4R<_#dq_lLC3A1;_vZ002ovPDHLkV1jSd^+o^y literal 0 HcmV?d00001 From a15a049b941507261401534b077b3e015a7a6c6d Mon Sep 17 00:00:00 2001 From: Francesco Bedussi Date: Sun, 3 May 2020 21:12:28 +0200 Subject: [PATCH 057/464] feat: add large clock --- apps.json | 31 +++++ apps/largeclock/ChangeLog | 1 + apps/largeclock/README.md | 19 +++ apps/largeclock/largeclock-icon.js | 1 + apps/largeclock/largeclock.js | 198 +++++++++++++++++++++++++++++ apps/largeclock/largeclock.json | 4 + apps/largeclock/largeclock.png | Bin 0 -> 513 bytes apps/largeclock/settings.js | 72 +++++++++++ 8 files changed, 326 insertions(+) create mode 100644 apps/largeclock/ChangeLog create mode 100644 apps/largeclock/README.md create mode 100644 apps/largeclock/largeclock-icon.js create mode 100644 apps/largeclock/largeclock.js create mode 100644 apps/largeclock/largeclock.json create mode 100644 apps/largeclock/largeclock.png create mode 100644 apps/largeclock/settings.js diff --git a/apps.json b/apps.json index e9e38a1a1..643d68a8e 100644 --- a/apps.json +++ b/apps.json @@ -1550,5 +1550,36 @@ {"name":"hidjoystick.app.js","url":"app.js"}, {"name":"hidjoystick.img","url":"app-icon.js","evaluate":true} ] + }, + { + "id": "largeclock", + "name": "Large Clock", + "icon": "largeclock.png", + "version": "0.01", + "description": "A readable and informational digital watch, with date, seconds and moon phase", + "readme": "README.md", + "tags": "clock", + "type": "clock", + "allow_emulator": true, + "storage": [ + { + "name": "largeclock.app.js", + "url": "largeclock.js" + }, + { + "name": "largeclock.img", + "url": "largeclock-icon.js", + "evaluate": true + }, + { + "name": "largeclock.settings.js", + "url": "settings.js" + }, + { + "name": "largeclock.json", + "url": "largeclock.json", + "evaluate": true + } + ] } ] diff --git a/apps/largeclock/ChangeLog b/apps/largeclock/ChangeLog new file mode 100644 index 000000000..665c0df6e --- /dev/null +++ b/apps/largeclock/ChangeLog @@ -0,0 +1 @@ +0.01: Init diff --git a/apps/largeclock/README.md b/apps/largeclock/README.md new file mode 100644 index 000000000..c9a325823 --- /dev/null +++ b/apps/largeclock/README.md @@ -0,0 +1,19 @@ +# Large clock + +A readable and informational digital watch, with date, seconds and moon phase and with programmable BTN1 & BTN3 + +## Features + +- Readable +- Informative: hours, minutes, secondsa, date, year and moon phase +- Pairs nicely with any other apps: in setting > large clock any installed app can be assigned to BTN1 and BTN3 in order to open it easily directly from the watch, without the hassle of passing trough the launcher. For example BTN1 can be assigned to alarm and BTN3 to chronometer. + +## How to use it + +- The clock can be used as any other one, if you like it just set it as the default clock app in settings > select clock +- In setting > large clock you can select which app is to be open by BTN1 and BTN3 + +## Credits + +- The clock face is heavily inspired by Big Clock byJeffmer https://jeffmer.github.io/JeffsBangleAppsDev/ +- The moon phase is basically the one from the widget https://github.com/espruino/BangleApps/tree/master/apps/widmp diff --git a/apps/largeclock/largeclock-icon.js b/apps/largeclock/largeclock-icon.js new file mode 100644 index 000000000..22aadc576 --- /dev/null +++ b/apps/largeclock/largeclock-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwwhC/AH4ArmYAQCwkDC6MwFyowFC/4XKnGIAAIQFBAWDC5INCBwggEEIYXdxAODnAYCAYIgDDAQXECoIrDE4YrEBwYX/C/4X/C/4X8BwIKBAAM4DgQDBBAQDBBAIXFE4QOCA4QrCAAQHCC7wODCwYhEEAYXGACAX/C5cDCyMwC4YwSCwgA/AH4AlA=")) diff --git a/apps/largeclock/largeclock.js b/apps/largeclock/largeclock.js new file mode 100644 index 000000000..da98c6647 --- /dev/null +++ b/apps/largeclock/largeclock.js @@ -0,0 +1,198 @@ +const REFRESH_RATE = 1000; + +let interval; +let lastMoonPhase; +let lastMinutes; + +const moonR = 12; +const moonX = 215; +const moonY = 50; + +const settings = require("Storage").readJSON("largeclock.json", 1); +const BTN1app = settings.BTN1; +const BTN3app = settings.BTN3; +console.log("BTN1app", BTN1app); +console.log("BTN3app", BTN3app); + +function drawMoon(d) { + const BLACK = 0, + MOON = 0x41f, + MC = 29.5305882, + NM = 694039.09; + + var moon = { + // reset + 0: () => { + g.setColor(BLACK).fillRect( + moonX - moonR, + moonY - moonR, + moonX + moonR, + moonY + moonR + ); + }, + // new moon + 1: () => { + moon[0](); + g.setColor(MOON).drawCircle(moonX, moonY, moonR); + }, + // 1/4 ascending + 2: () => { + moon[3](); + g.setColor(BLACK).fillEllipse( + moonX - moonR / 2, + moonY - moonR, + moonX + moonR / 2, + moonY + moonR + ); + }, + // 1/2 ascending + 3: () => { + moon[0](); + g.setColor(MOON) + .fillCircle(moonX, moonY, moonR) + .setColor(BLACK) + .fillRect(moonX, moonY - moonR, moonX + moonR + moonR, moonY + moonR); + }, + // 3/4 ascending + 4: () => { + moon[7](); + g.setColor(MOON).fillEllipse( + moonX - moonR / 2, + moonY - moonR, + moonX + moonR / 2, + moonY + moonR + ); + }, + // Full moon + 5: () => { + moon[0](); + g.setColor(MOON).fillCircle(moonX, moonY, moonR); + }, + // 3/4 descending + 6: () => { + moon[3](); + g.setColor(MOON).fillEllipse( + moonX - moonR / 2, + moonY - moonR, + moonX + moonR / 2, + moonY + moonR + ); + }, + // 1/2 descending + 7: () => { + moon[0](); + g.setColor(MOON) + .fillCircle(moonX, moonY, moonR) + .setColor(BLACK) + .fillRect(moonX - moonR, moonY - moonR, moonX, moonY + moonR); + }, + // 1/4 descending + 8: () => { + moon[7](); + g.setColor(BLACK).fillEllipse( + moonX - moonR / 2, + moonY - moonR, + moonX + moonR / 2, + moonY + moonR + ); + } + }; + + function moonPhase(d) { + var tmp, + month = d.getMonth(), + year = d.getFullYear(), + day = d.getDate(); + if (month < 3) { + year--; + month += 12; + } + tmp = (365.25 * year + 30.6 * ++month + day - NM) / MC; + return Math.round((tmp - (tmp | 0)) * 7 + 1); + } + + const currentMoonPhase = moonPhase(d); + if (currentMoonPhase != lastMoonPhase) { + moon[currentMoonPhase](); + lastMoonPhase = currentMoonPhase; + } +} + +function drawTime(d) { + const da = d.toString().split(" "); + const time = da[4].substr(0, 5).split(":"); + const dow = da[0]; + const month = da[1]; + const day = da[2]; + const year = da[3]; + const hours = time[0]; + const minutes = time[1]; + const seconds = d.getSeconds(); + if (minutes != lastMinutes) { + g.clearRect(0, 24, moonX - moonR - 10, 239); + g.setColor(1, 1, 1); + g.setFontAlign(-1, -1); + g.setFont("Vector", 100); + g.drawString(hours, 50, 24, true); + g.setColor(1, 50, 1); + g.drawString(minutes, 50, 135, true); + g.setFont("Vector", 20); + g.setRotation(3); + g.drawString(`${dow} ${day} ${month}`, 50, 15, true); + g.drawString(year, 75, 205, true); + lastMinutes = minutes; + } + g.setRotation(0); + g.setFont("Vector", 20); + g.setColor(1, 1, 1); + g.setFontAlign(0, -1); + g.clearRect(200, 210, 240, 240); + g.drawString(seconds, 215, 215); +} + +function drawClockFace() { + const d = new Date(); + drawTime(d); + drawMoon(d); +} + +Bangle.on("lcdPower", function(on) { + if (on) { + g.clear(); + Bangle.drawWidgets(); + drawClockFace(); + interval = setInterval(drawClockFace, REFRESH_RATE); + } else { + clearInterval(interval); + lastMinutes = undefined; + lastMoonPhase = undefined; + } +}); + +Bangle.setLCDMode(); + +// Show launcher when middle button pressed +clearWatch(); +setWatch(Bangle.showLauncher, BTN2, { repeat: false, edge: "falling" }); +setWatch( + function() { + load(BTN1app); + }, + BTN1, + { repeat: false, edge: "rising" } +); +setWatch( + function() { + load(BTN3app); + }, + BTN3, + { repeat: false, edge: "rising" } +); + +g.clear(); +clearInterval(); +drawClockFace(); +interval = setInterval(drawClockFace, REFRESH_RATE); + +Bangle.loadWidgets(); +Bangle.drawWidgets(); diff --git a/apps/largeclock/largeclock.json b/apps/largeclock/largeclock.json new file mode 100644 index 000000000..7c38d59de --- /dev/null +++ b/apps/largeclock/largeclock.json @@ -0,0 +1,4 @@ +{ + "BTN1": "timer.app.js", + "BTN3": "calendar.app.js" +} diff --git a/apps/largeclock/largeclock.png b/apps/largeclock/largeclock.png new file mode 100644 index 0000000000000000000000000000000000000000..32e87e76810c1dc23ef3135bb2a7725eff0fa299 GIT binary patch literal 513 zcmV+c0{;DpP)~Kz}4g%!===mgrd z4d4pELAsU%zQEAYJY3(DibMXP5WqL@J^`$djz3vuV?C?YTBk?v!D>e6)28k1GY)FZ=6~| zB2S~`x&zN;ze3K^i%8XQP%-R<-Xyi81NZ{|8;H6^^{kxK**#9JIXizNlMWDd*`D8` zRA`C67T-SP<14^CD=v86%g^W}br { + var a = s.readJSON(app, 1); + return ( + a && { + n: a.name, + t: a.type, + src: a.src + } + ); + }) + .filter(app => app && (app.t == "app" || app.t == "clock" || !app.t)) + .map(a => { + return { n: a.n, src: a.src }; + }); + apps.sort((a, b) => { + if (a.n < b.n) return -1; + if (a.n > b.n) return 1; + return 0; + }); + + const settings = s.readJSON("largeclock.json", 1) || { + BTN1: "", + BTN3: "" + }; + + function showApps(btn) { + function format(v) { + return v === settings[btn] ? "*" : ""; + } + + function onchange(v) { + settings[btn] = v; + s.write("largeclock.json", settings); + } + + const btnMenu = { + "": { + title: `Apps for ${btn}` + }, + "< Back": () => E.showMenu(mainMenu) + }; + + if (apps.length > 0) { + for (let i = 0; i < apps.length; i++) { + btnMenu[apps[i].n] = { + value: apps[i].src, + format: format, + onchange: onchange + }; + } + } else { + btnMenu["...No Apps..."] = { + value: undefined, + format: () => "", + onchange: () => {} + }; + } + return E.showMenu(btnMenu); + } + + const mainMenu = { + "": { title: "Large Clock Settings" }, + "< Back": back, + "BTN1 app": () => showApps("BTN1"), + "BTN3 app": () => showApps("BTN3") + }; + E.showMenu(mainMenu); +}); From 3dad58f289bb74166ae45e24aae8db8bffafa7f5 Mon Sep 17 00:00:00 2001 From: ps-igel <60899838+ps-igel@users.noreply.github.com> Date: Mon, 4 May 2020 00:32:29 +0200 Subject: [PATCH 058/464] numerals clock: fixed settings issue --- apps.json | 2 +- apps/numerals/ChangeLog | 1 + apps/numerals/numerals.settings.js | 5 +++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/apps.json b/apps.json index e9e38a1a1..62ea389f6 100644 --- a/apps.json +++ b/apps.json @@ -1283,7 +1283,7 @@ "name": "Numerals Clock", "shortName": "Numerals Clock", "icon": "numerals.png", - "version":"0.04", + "version":"0.05", "description": "A simple big numerals clock", "tags": "numerals,clock", "type":"clock", diff --git a/apps/numerals/ChangeLog b/apps/numerals/ChangeLog index 927c4ff5f..855442377 100644 --- a/apps/numerals/ChangeLog +++ b/apps/numerals/ChangeLog @@ -2,3 +2,4 @@ 0.02: Use BTN2 for settings menu like other clocks 0.03: maximize numerals, make menu button configurable, change icon to mac palette, add default settings file, respect 12hour setting 0.04: Don't overwrite existing settings on app update +0.05: Fix settings issue diff --git a/apps/numerals/numerals.settings.js b/apps/numerals/numerals.settings.js index 2d388525c..1e97271b6 100644 --- a/apps/numerals/numerals.settings.js +++ b/apps/numerals/numerals.settings.js @@ -11,7 +11,8 @@ updateSettings(); } let numeralsSettings = storage.readJSON('numerals.json',1); - if (!numeralsSettings) resetSettings(); + if (!numeralsSettings) resetSettings(); + if (numeralsSettings.menuButton===undefined) numeralsSettings.menuButton=22; let dm = ["fill","frame"]; let col = ["rnd","r/g","y/w","o/c","b/y"]; let btn = [[24,"BTN1"],[22,"BTN2"],[23,"BTN3"],[11,"BTN4"],[16,"BTN5"]]; @@ -30,7 +31,7 @@ onchange: v=> { numeralsSettings.drawMode=dm[v]; updateSettings();} }, "Menu button": { - value: 1|btn[numeralsSettings.menuButton], + value: btn.findIndex(e=>e[0]==numeralsSettings.menuButton), min:0,max:4, format: v=>btn[v][1], onchange: v=> { numeralsSettings.menuButton=btn[v][0]; updateSettings();} From 90ba48644c76929aa2a1158e561c3a9bb146c78c Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Mon, 4 May 2020 08:22:51 +0100 Subject: [PATCH 059/464] remove config file --- _config.yml | 1 - 1 file changed, 1 deletion(-) delete mode 100644 _config.yml diff --git a/_config.yml b/_config.yml deleted file mode 100644 index c74188174..000000000 --- a/_config.yml +++ /dev/null @@ -1 +0,0 @@ -theme: jekyll-theme-slate \ No newline at end of file From f9ec4ebe68d0c5292bc7e18346b95f2f4f7219c4 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Mon, 4 May 2020 08:29:12 +0100 Subject: [PATCH 060/464] Rename timer -> simpletimer --- apps.json | 6 +++--- apps/{timer => simpletimer}/ChangeLog | 0 apps/{timer => simpletimer}/README.md | 0 apps/{timer => simpletimer}/app-icon.js | 0 apps/{timer => simpletimer}/app.js | 0 apps/{timer => simpletimer}/app.png | Bin 6 files changed, 3 insertions(+), 3 deletions(-) rename apps/{timer => simpletimer}/ChangeLog (100%) rename apps/{timer => simpletimer}/README.md (100%) rename apps/{timer => simpletimer}/app-icon.js (100%) rename apps/{timer => simpletimer}/app.js (100%) rename apps/{timer => simpletimer}/app.png (100%) diff --git a/apps.json b/apps.json index bcf097d9d..c3fbb1ace 100644 --- a/apps.json +++ b/apps.json @@ -1570,7 +1570,7 @@ ] }, { - "id": "timer", + "id": "simpletimer", "name": "Timer", "icon": "app.png", "version": "0.01", @@ -1580,11 +1580,11 @@ "allow_emulator": true, "storage": [ { - "name": "timer.app.js", + "name": "simpletimer.app.js", "url": "app.js" }, { - "name": "timer.img", + "name": "simpletimer.img", "url": "app-icon.js", "evaluate": true } diff --git a/apps/timer/ChangeLog b/apps/simpletimer/ChangeLog similarity index 100% rename from apps/timer/ChangeLog rename to apps/simpletimer/ChangeLog diff --git a/apps/timer/README.md b/apps/simpletimer/README.md similarity index 100% rename from apps/timer/README.md rename to apps/simpletimer/README.md diff --git a/apps/timer/app-icon.js b/apps/simpletimer/app-icon.js similarity index 100% rename from apps/timer/app-icon.js rename to apps/simpletimer/app-icon.js diff --git a/apps/timer/app.js b/apps/simpletimer/app.js similarity index 100% rename from apps/timer/app.js rename to apps/simpletimer/app.js diff --git a/apps/timer/app.png b/apps/simpletimer/app.png similarity index 100% rename from apps/timer/app.png rename to apps/simpletimer/app.png From 4432155a082ac4c3ff0f1bdb6f9e2058e8522312 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Mon, 4 May 2020 08:39:27 +0100 Subject: [PATCH 061/464] fix merge error --- apps.json | 1 + 1 file changed, 1 insertion(+) diff --git a/apps.json b/apps.json index 58f77e2a4..8d9358d69 100644 --- a/apps.json +++ b/apps.json @@ -1578,6 +1578,7 @@ { "name": "largeclock.json", "url": "largeclock.json", + "evaluate": true } ] }, From d206ff07c74521e7cd685c22d929e279e628a4cb Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Mon, 4 May 2020 09:28:27 +0100 Subject: [PATCH 062/464] more info on bad JSON --- bin/sanitycheck.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/bin/sanitycheck.js b/bin/sanitycheck.js index 51230f6fa..7515f93b4 100755 --- a/bin/sanitycheck.js +++ b/bin/sanitycheck.js @@ -27,14 +27,26 @@ function WARN(s) { var appsFile, apps; try { - appsFile = fs.readFileSync(BASEDIR+"apps.json"); + appsFile = fs.readFileSync(BASEDIR+"apps.json").toString(); } catch (e) { ERROR("apps.json not found"); } try{ apps = JSON.parse(appsFile); } catch (e) { + console.log(e); + var m = e.toString().match(/in JSON at position (\d+)/); + if (m) { + var char = parseInt(m[1]); + console.log("==============================================="); + console.log("LINE "+appsFile.substr(0,char).split("\n").length); + console.log("==============================================="); + console.log(appsFile.substr(char-10, 20)); + console.log("==============================================="); + } + console.log(m); ERROR("apps.json not valid JSON"); + } const APP_KEYS = [ From 7c870a304fa109d7a640c97b18fd4118d9ed0941 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Mon, 4 May 2020 09:32:50 +0100 Subject: [PATCH 063/464] Don't produce errors for duplicate files if they are for tensorflow --- bin/sanitycheck.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bin/sanitycheck.js b/bin/sanitycheck.js index 7515f93b4..bf1972303 100755 --- a/bin/sanitycheck.js +++ b/bin/sanitycheck.js @@ -56,6 +56,7 @@ const APP_KEYS = [ const STORAGE_KEYS = ['name', 'url', 'content', 'evaluate']; const DATA_KEYS = ['name', 'wildcard', 'storageFile']; const FORBIDDEN_FILE_NAME_CHARS = /[,;]/; // used as separators in appid.info +const VALID_DUPLICATES = [ '.tfmodel', '.tfnames' ]; function globToRegex(pattern) { const ESCAPE = '.*+-?^${}()|[]\\'; @@ -206,6 +207,8 @@ apps.forEach((app,appIdx) => { // Do not allow files from different apps to collide let fileA while(fileA=allFiles.pop()) { + if (VALID_DUPLICATES.includes(fileA.file)) + return; const nameA = (fileA.file||fileA.data), globA = globToRegex(nameA), typeA = fileA.file?'storage':'data' From 0d9eeab6134555bcf01adf288fdd227e8c920fb4 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Mon, 4 May 2020 10:23:25 +0100 Subject: [PATCH 064/464] aclock: Fix broken date padding (fix #376) --- apps.json | 2 +- apps/aclock/ChangeLog | 1 + apps/aclock/clock-analog.js | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/apps.json b/apps.json index 8d9358d69..f66b9e638 100644 --- a/apps.json +++ b/apps.json @@ -180,7 +180,7 @@ { "id": "aclock", "name": "Analog Clock", "icon": "clock-analog.png", - "version": "0.12", + "version": "0.13", "description": "An Analog Clock", "tags": "clock", "type":"clock", diff --git a/apps/aclock/ChangeLog b/apps/aclock/ChangeLog index a289fba1f..9687bc58f 100644 --- a/apps/aclock/ChangeLog +++ b/apps/aclock/ChangeLog @@ -7,3 +7,4 @@ 0.10: remove debug, refactor seconds to show elapsed secs each time app is displayed 0.11: shift face down for widget area, maximize face size, 0 pad single digit date, use locale for date 0.12: Fix regression after 0.11 +0.13: Fix broken date padding (fix #376) diff --git a/apps/aclock/clock-analog.js b/apps/aclock/clock-analog.js index 8cd0af915..951145c4e 100644 --- a/apps/aclock/clock-analog.js +++ b/apps/aclock/clock-analog.js @@ -84,7 +84,7 @@ const drawDate = () => { const dayString = locale.dow(currentDate, true); // pad left date - const dateString = (currentDate.getDate() < 10) ? '0' : '' + currentDate.getDate().toString(); + const dateString = ("0"+currentDate.getDate().toString()).substr(-2); const dateDisplay = `${dayString}-${dateString}`; // console.log(`${dayString}|${dateString}`); // center date From 11b906941627938259725ef5c510c6cdefe9897c Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Mon, 4 May 2020 13:21:16 +0100 Subject: [PATCH 065/464] keywords --- apps.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps.json b/apps.json index f66b9e638..64f3378b2 100644 --- a/apps.json +++ b/apps.json @@ -974,8 +974,8 @@ "name": "Grocery", "icon": "grocery.png", "version":"0.01", - "description": "Simple grocery list - Display a list of product and track if you already put them in your cart.", - "tags": "tool,outdoors", + "description": "Simple grocery (shopping) list - Display a list of product and track if you already put them in your cart.", + "tags": "tool,outdoors,shopping,list", "type": "app", "custom":"grocery.html", "storage": [ From 8c9233d27fbe5735f05c7fa917987e6b78506eff Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Mon, 4 May 2020 14:07:17 +0100 Subject: [PATCH 066/464] Fix firmwaremaker.js regression under Node.js --- bin/firmwaremaker.js | 10 ++++- js/appinfo.js | 15 +++++-- js/comms.js | 5 ++- js/espruinotools.js | 105 ++++++++++++++++++++++--------------------- 4 files changed, 78 insertions(+), 57 deletions(-) diff --git a/bin/firmwaremaker.js b/bin/firmwaremaker.js index e5db392dd..41290cf7e 100755 --- a/bin/firmwaremaker.js +++ b/bin/firmwaremaker.js @@ -3,6 +3,9 @@ Mashes together a bunch of different apps to make a single firmware JS file which can be uploaded. */ +var SETTINGS = { + pretokenise : true +}; var path = require('path'); var ROOTDIR = path.join(__dirname, '..'); @@ -16,7 +19,7 @@ var APPS = [ // IDs of apps to install var MINIFY = true; var fs = require("fs"); -var AppInfo = require(ROOTDIR+"/appinfo.js"); +var AppInfo = require(ROOTDIR+"/js/appinfo.js"); var appjson = JSON.parse(fs.readFileSync(APPJSON).toString()); var appfiles = []; @@ -49,7 +52,10 @@ function fileGetter(url) { Promise.all(APPS.map(appid => { var app = appjson.find(app=>app.id==appid); if (app===undefined) throw new Error(`App ${appid} not found`); - return AppInfo.getFiles(app, fileGetter).then(files => { + return AppInfo.getFiles(app, { + fileGetter : fileGetter, + settings : SETTINGS + }).then(files => { appfiles = appfiles.concat(files); }); })).then(() => { diff --git a/js/appinfo.js b/js/appinfo.js index 45ed3d8a2..ae48ed199 100644 --- a/js/appinfo.js +++ b/js/appinfo.js @@ -2,19 +2,28 @@ function toJS(txt) { return JSON.stringify(txt); } +if ("undefined"!=typeof module) + Espruino = require("./espruinotools.js"); + var AppInfo = { - getFiles : (app,fileGetter) => { + /* Get files needed for app. + options = { + fileGetter : callback for getting URL, + settings : global settings object + } + */ + getFiles : (app,options) => { return new Promise((resolve,reject) => { // Load all files Promise.all(app.storage.map(storageFile => { if (storageFile.content) return Promise.resolve(storageFile); else if (storageFile.url) - return fileGetter(`apps/${app.id}/${storageFile.url}`).then(content => { + return options.fileGetter(`apps/${app.id}/${storageFile.url}`).then(content => { if (storageFile.url.endsWith(".js") && !storageFile.url.endsWith(".min.js")) { // if original file ends in '.js'... return Espruino.transform(content, { SET_TIME_ON_WRITE : false, - PRETOKENISE : SETTINGS.pretokenise, + PRETOKENISE : options.settings.pretokenise, //MINIFICATION_LEVEL : "ESPRIMA", // disable due to https://github.com/espruino/BangleApps/pull/355#issuecomment-620124162 builtinModules : "Flash,Storage,heatshrink,tensorflow,locale" }); diff --git a/js/comms.js b/js/comms.js index b825a06ad..8bae65b84 100644 --- a/js/comms.js +++ b/js/comms.js @@ -10,7 +10,10 @@ reset : (opt) => new Promise((resolve,reject) => { }), uploadApp : (app,skipReset) => { // expects an apps.json structure (i.e. with `storage`) Progress.show({title:`Uploading ${app.name}`,sticky:true}); - return AppInfo.getFiles(app, httpGet).then(fileContents => { + return AppInfo.getFiles(app, { + fileGetter : httpGet, + settings : SETTINGS + }).then(fileContents => { return new Promise((resolve,reject) => { console.log("uploadApp",fileContents.map(f=>f.name).join(", ")); var maxBytes = fileContents.reduce((b,f)=>b+f.content.length, 0)||1; diff --git a/js/espruinotools.js b/js/espruinotools.js index c81a69c08..df766fc7d 100644 --- a/js/espruinotools.js +++ b/js/espruinotools.js @@ -66,7 +66,8 @@ var Espruino; } // Automatically start up when all is loaded - document.addEventListener("DOMContentLoaded", init); + if (typeof document!=="undefined") + document.addEventListener("DOMContentLoaded", init); /** Add a processor function of type function(data,callback) */ function addProcessor(eventType, processor) { @@ -4122,7 +4123,7 @@ Object.defineProperty(exports, '__esModule', { value: true }); } else if (isIn(chNum,ch)) { // NUMBER type = "NUMBER"; var chRange = chNum; - if (ch=="0") { // Handle + if (ch=="0") { // Handle s+=ch; nextCh(); if ("xXoObB".indexOf(ch)>=0) { @@ -4131,12 +4132,12 @@ Object.defineProperty(exports, '__esModule', { value: true }); if (ch=="x" || ch=="X") chRange="0123456789ABCDEFabcdef"; s+=ch; nextCh(); - } + } } while (isIn(chRange,ch) || ch==".") { s+=ch; nextCh(); - } + } } else if (isIn(chQuotes,ch)) { // STRING type = "STRING"; var q = ch; @@ -4727,39 +4728,39 @@ Object.defineProperty(exports, '__esModule', { value: true }); This Source Code is subject to the terms of the Mozilla Public License, v2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. - + ------------------------------------------------------------------ Central place to store and retrieve Options - + To use this, on your plugin's `init` function, do something like the following: - + Espruino.Core.Config.add("MAX_FOOBARS", { section : "Communications", // Heading this will come under in the config screen - name : "Foobars", // Nice name + name : "Foobars", // Nice name description : "How many foobars?", // More detail about this type : "int"/"boolean"/"string"/{ value1:niceName, value2:niceName }, - defaultValue : 20, + defaultValue : 20, onChange : function(newValue) { ... } }); - + * onChange will be called whenever the value changes from the default (including when it is loaded) - - Then use: - + + Then use: + Espruino.Config.MAX_FOOBARS in your code ------------------------------------------------------------------ **/ "use strict"; (function() { - + /** See addSection and getSections */ var builtinSections = {}; function _get(callback) { if (typeof chrome !== 'undefined' && chrome.storage) { - chrome.storage.sync.get( "CONFIGS", function (data) { + chrome.storage.sync.get( "CONFIGS", function (data) { var value = data["CONFIGS"]; console.log("GET chrome.storage.sync = "+JSON.stringify(value)); callback(value); @@ -4770,55 +4771,55 @@ Object.defineProperty(exports, '__esModule', { value: true }); if (cookie!==undefined && cookie.indexOf("CONFIG=")>=0) { cookie = cookie.substring(cookie.indexOf("CONFIG=")+7); cookie = cookie.substring(0,cookie.indexOf(";")); - try { + try { var json = atob(cookie); - data = JSON.parse(json); - } catch (e) { + data = JSON.parse(json); + } catch (e) { console.log("Got ", e, " while reading info"); } } callback(data); } else { callback({}); - } + } } function _set(data) { if (typeof chrome !== 'undefined' && chrome.storage) { console.log("SET chrome.storage.sync = "+JSON.stringify(data)); - chrome.storage.sync.set({ CONFIGS : data }); + chrome.storage.sync.set({ CONFIGS : data }); } else if (typeof document != "undefined") { document.cookie = "CONFIG="+btoa(JSON.stringify(data)); } } - + function loadConfiguration(callback) { _get(function (value) { - for (var key in value) { + for (var key in value) { if (key=="set") continue; Espruino.Config[key] = value[key]; if (Espruino.Core.Config.data[key] !== undefined && Espruino.Core.Config.data[key].onChange !== undefined) Espruino.Core.Config.data[key].onChange(value[key]); - } + } if (callback!==undefined) callback(); }); } - + function init() { addSection("General", { sortOrder:100, description: "General Web IDE Settings" }); addSection("Communications", { sortOrder:200, description: "Settings for communicating with the Espruino Board" }); addSection("Board", { sortOrder:300, description: "Settings for the Espruino Board itself" }); - + } - + function add(name, options) { Espruino.Core.Config.data[name] = options; if (Espruino.Config[name] === undefined) Espruino.Config[name] = options.defaultValue; } - + /** Add a section (or information on the page). * options = { * sortOrder : int, // a number used for sorting @@ -4830,7 +4831,7 @@ Object.defineProperty(exports, '__esModule', { value: true }); options.name = name; builtinSections[name] = options; } - + /** Get an object containing the information on a section used in configs */ function getSection(name) { if (builtinSections[name]!==undefined) @@ -4840,7 +4841,7 @@ Object.defineProperty(exports, '__esModule', { value: true }); name : name }; } - + /** Get an object containing information on all 'sections' used in all the configs */ function getSections() { var sections = []; @@ -4850,26 +4851,26 @@ Object.defineProperty(exports, '__esModule', { value: true }); // add other sections for (var i in Espruino.Core.Config.data) { var c = Espruino.Core.Config.data[i]; - + var found = false; for (var s in sections) if (sections[s].name == c.section) found = true; - + if (!found) { console.warn("Section named "+c.section+" was not added with Config.addSection"); sections[c.section] = { name : c.section, sortOrder : 0 - }; + }; } } // Now sort by sortOrder sections.sort(function (a,b) { return a.sortOrder - b.sortOrder; }); - + return sections; } - + Espruino.Config = {}; Espruino.Config.set = function (key, value) { if (Espruino.Config[key] != value) { @@ -4882,11 +4883,11 @@ Object.defineProperty(exports, '__esModule', { value: true }); var data = {}; for (var key in Espruino.Config) if (key != "set") - data[key] = Espruino.Config[key]; - _set(data); + data[key] = Espruino.Config[key]; + _set(data); } }; - + function clearAll() { // clear all settings _set({}); for (var name in Espruino.Core.Config.data) { @@ -4894,22 +4895,22 @@ Object.defineProperty(exports, '__esModule', { value: true }); Espruino.Config[name] = options.defaultValue; } } - + Espruino.Core.Config = { - loadConfiguration : loadConfiguration, // special - called before init - + loadConfiguration : loadConfiguration, // special - called before init + init : init, add : add, data : {}, - - + + addSection : addSection, getSection : getSection, getSections : getSections, - + clearAll : clearAll, // clear all settings }; - + })(); /* Gordon Williams (gw@pur3.co.uk) @@ -5076,7 +5077,7 @@ To add a new serial device, you must add an object to } connectionInfo = undefined; - flowControlXOFF = false; + flowControlXOFF = false; currentDevice = portToDevice[serialPort]; currentDevice.open(serialPort, function(cInfo) { // CONNECT if (!cInfo) { @@ -5117,7 +5118,7 @@ To add a new serial device, you must add an object to // Just call connectCallback(undefined), don't bother sending disconnect connectCallback(undefined); return; - } + } connectionInfo = undefined; if (writeTimeout!==undefined) clearTimeout(writeTimeout); @@ -6435,18 +6436,18 @@ To add a new serial device, you must add an object to This Source Code is subject to the terms of the Mozilla Public License, v2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. - + ------------------------------------------------------------------ Try and get any URLS that are from GitHub ------------------------------------------------------------------ **/ "use strict"; (function(){ - + function init() { - Espruino.addProcessor("getURL", getGitHub); + Espruino.addProcessor("getURL", getGitHub); } - + function getGitHub(data, callback) { var match = data.url.match(/^https?:\/\/github.com\/([^\/]+)\/([^\/]+)\/blob\/([^\/]+)\/(.*)$/); if (match) { @@ -6456,7 +6457,7 @@ To add a new serial device, you must add an object to branch : match[3], path : match[4] }; - + var url = "https://raw.githubusercontent.com/"+git.owner+"/"+git.repo+"/"+git.branch+"/"+git.path; console.log("Found GitHub", JSON.stringify(git)); callback({url: url}); @@ -6801,3 +6802,5 @@ Espruino.transform = function(code, options) { }); }; +if ("undefined"!=typeof module) + module.exports = Espruino; From 25d824fa6cbc83d5f26ffd22a7398d37d6334ed4 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Mon, 4 May 2020 14:09:38 +0100 Subject: [PATCH 067/464] Add very rough CLI apploader --- bin/apploader.js | 219 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 219 insertions(+) create mode 100644 bin/apploader.js diff --git a/bin/apploader.js b/bin/apploader.js new file mode 100644 index 000000000..fb86540b8 --- /dev/null +++ b/bin/apploader.js @@ -0,0 +1,219 @@ +#!/bin/node +/* Simple Command-line app loader for Node.js +=============================================== + +NOTE: This needs the '@abandonware/noble' library to be installed. +However we don't want this in package.json (at least +as a normal dependency) because we want `sanitycheck.js` +to be able to run *quickly* in travis for every commit, +and we don't want NPM pulling in (and compiling native modules) +for Noble. +*/ + +var SETTINGS = { + pretokenise : true +}; +var Utils = require("../js/utils.js"); +var AppInfo = require("../js/appinfo.js"); +var apps; + +function ERROR(msg) { + console.error(msg); + process.exit(1); +} + +try { + apps = JSON.parse(require("fs").readFileSync(__dirname+"/../apps.json")); +} catch(e) { + ERROR("'apps.json' could not be loaded"); +} + +var args = process.argv; + +if (args.length==3 && args[2]=="list") cmdListApps(); +else if (args.length==4 && args[2]=="install") cmdInstallApp(args[3]); +else { + console.log(`apploader.js +------------- + +USAGE: + +apploader.js list +apploader.js install appname +`); +process.exit(0); +} + +function cmdListApps() { + console.log(apps.map(a=>a.id).join("\n")); +} +function cmdInstallApp(appId) { + var app = apps.find(a=>a.id==appId); + if (!app) ERROR(`App ${JSON.stringify(appId)} not found`); + if (app.custom) ERROR(`App ${JSON.stringify(appId)} requires HTML customisation`); + return AppInfo.getFiles(app, { + fileGetter:function(url) { + return Promise.resolve(require("fs").readFileSync(url).toString()); + }, settings : SETTINGS}).then(files => { + //console.log(files); + var command = files.map(f=>f.cmd).join("\n")+"\n"; + bangleSend(command).then(() => process.exit(0)); + }); +} + +function bangleSend(command) { + var noble = require('noble'); + var log = function() { + var args = [].slice.call(arguments); + console.log("UART: "+args.join(" ")); + } + + var RESET = true; + var DEVICEADDRESS = ""; + + var complete = false; + var foundDevices = []; + var flowControlPaused = false; + var btDevice; + var txCharacteristic; + var rxCharacteristic; + + return new Promise((resolve,reject) => { + function foundDevice(dev) { + if (btDevice!==undefined) return; + log("Connecting to "+dev.address); + noble.stopScanning(); + connect(dev, function() { + // Connected! + function writeCode() { + log("Writing code..."); + write(command, function() { + complete = true; + btDevice.disconnect(); + }); + } + if (RESET) { + setTimeout(function() { + log("Resetting..."); + write("\x03\x10reset()\n", function() { + setTimeout(writeCode, 1000); + }); + }, 500); + } else + setTimeout(writeCode, 1000); + }); + } + + function connect(dev, callback) { + btDevice = dev; + log("BT> Connecting"); + btDevice.on('disconnect', function() { + log("Disconnected"); + setTimeout(function() { + if (complete) resolve(); + else reject("Disconnected but not complete"); + }, 500); + }); + btDevice.connect(function (error) { + if (error) { + log("BT> ERROR Connecting",error); + btDevice = undefined; + return; + } + log("BT> Connected"); + btDevice.discoverAllServicesAndCharacteristics(function(error, services, characteristics) { + function findByUUID(list, uuid) { + for (var i=0;i ERROR getting services/characteristics"); + log("Service "+btUARTService); + log("TX "+txCharacteristic); + log("RX "+rxCharacteristic); + btDevice.disconnect(); + txCharacteristic = undefined; + rxCharacteristic = undefined; + btDevice = undefined; + return openCallback(); + } + + rxCharacteristic.on('data', function (data) { + var s = ""; + for (var i=0;i=10) { + log("Writing "+amt+"/"+total); + progress=0; + } + //log("Writing ",JSON.stringify(d)); + amt += d.length; + for (var i = 0; i < buf.length; i++) + buf.writeUInt8(d.charCodeAt(i), i); + txCharacteristic.write(buf, false, writeAgain); + } + writeAgain(); + } + + function disconnect() { + btDevice.disconnect(); + } + + log("Discovering..."); + noble.on('discover', function(dev) { + if (!dev.advertisement) return; + if (!dev.advertisement.localName) return; + var a = dev.address.toString(); + if (foundDevices.indexOf(a)>=0) return; + foundDevices.push(a); + log("Found device: ",a,dev.advertisement.localName); + if (a == DEVICEADDRESS) + return foundDevice(dev); + else if (DEVICEADDRESS=="" && dev.advertisement.localName.indexOf("Bangle.js")==0) { + return foundDevice(dev); + } + }); + noble.startScanning([], true); + }); +} From 0dbbce213499f12297a1cf9d74cc6505ea1abcb1 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Mon, 4 May 2020 15:06:36 +0100 Subject: [PATCH 068/464] Detect out of memory errors and draw them onto the bottom of the screen in red --- apps.json | 2 +- apps/boot/ChangeLog | 1 + apps/boot/boot0.js | 5 +++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 64f3378b2..b7eb41042 100644 --- a/apps.json +++ b/apps.json @@ -2,7 +2,7 @@ { "id": "boot", "name": "Bootloader", "icon": "bootloader.png", - "version":"0.15", + "version":"0.16", "description": "This is needed by Bangle.js to automatically load the clock, menu, widgets and settings", "tags": "tool,system", "type":"bootloader", diff --git a/apps/boot/ChangeLog b/apps/boot/ChangeLog index cf5c243f8..c12654e97 100644 --- a/apps/boot/ChangeLog +++ b/apps/boot/ChangeLog @@ -14,3 +14,4 @@ Move alarm code into alarm.boot.js 0.14: Move welcome loaders to *.boot.js 0.15: Added BLE HID option for Joystick and bare Keyboard +0.16: Detect out of memory errors and draw them onto the bottom of the screen in red diff --git a/apps/boot/boot0.js b/apps/boot/boot0.js index 84b3460e1..9463df27c 100644 --- a/apps/boot/boot0.js +++ b/apps/boot/boot0.js @@ -39,6 +39,11 @@ Bangle.setLCDTimeout(s.timeout); if (!s.timeout) Bangle.setLCDPower(1); E.setTimeZone(s.timezone); delete s; +// Draw out of memory errors onto the screen +E.on('errorFlag', function(errorFlags) { g.reset(1).setColor("#ff0000").setFont("6x8").setFontAlign(0,1).drawString(errorFlags,g.getWidth()/2,g.getHeight()-1).flip(); + print("Interpreter error:",errorFlags); + E.getErrorFlags(); // clear flags so we get called next time +}); // stop users doing bad things! global.save = function() { throw new Error("You can't use save() on Bangle.js without overwriting the bootloader!"); } // Load *.boot.js files From ce2220def5fcaecc9894573d60c67d4134c8f7f6 Mon Sep 17 00:00:00 2001 From: Fredrik Lautrup Date: Mon, 4 May 2020 19:28:53 +0200 Subject: [PATCH 069/464] Fixed color and styling on HR monitor --- apps/rclock/rclock.app.js | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/apps/rclock/rclock.app.js b/apps/rclock/rclock.app.js index bbb74205d..cab5b148a 100644 --- a/apps/rclock/rclock.app.js +++ b/apps/rclock/rclock.app.js @@ -45,6 +45,12 @@ middle: screen.middle, center: screen.center, height: screen.height + }, + hr: { + color: '#333333', + size: 10, + x: screen.center, + y: screen.middle-45 } }; @@ -177,7 +183,7 @@ //visualize HR with circles pulsating const drawHR = function (hr) { - if (grow && size < 12) { + if (grow && size < settings.hr.size) { size++; } @@ -185,18 +191,18 @@ size--; } - if (size == 12 || size == 3) { + if (size == settings.hr.size || size == 3) { grow = !grow; } if (grow) { - color = "#f0af00"; + color = settings.hr.color; g.setColor(color); - g.fillCircle(settings.circle.center, settings.circle.middle, size); + g.fillCircle(settings.hr.x, settings.hr.y, size); } else { color = "#000000"; g.setColor(color); - g.drawCircle(settings.circle.center, settings.circle.middle, size); + g.drawCircle(settings.hr.x, settings.hr.y, size); } print(size); }; From 19f68b6ec61fbe5d0734f516500e4ed348535ecd Mon Sep 17 00:00:00 2001 From: Fredrik Lautrup Date: Mon, 4 May 2020 21:11:03 +0200 Subject: [PATCH 070/464] Fixed possitioning --- apps/rclock/rclock.app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/rclock/rclock.app.js b/apps/rclock/rclock.app.js index cab5b148a..b6026ac37 100644 --- a/apps/rclock/rclock.app.js +++ b/apps/rclock/rclock.app.js @@ -50,7 +50,7 @@ color: '#333333', size: 10, x: screen.center, - y: screen.middle-45 + y: screen.middle+45 } }; From ab321e5e86130519e10189a2bcf0d18bde1a0ca0 Mon Sep 17 00:00:00 2001 From: Bzly Date: Mon, 4 May 2020 20:31:12 +0100 Subject: [PATCH 071/464] Remove display flash every interval Add variable to remember previous value of hidx, and check to see if it has changed before we redraw the watchface --- apps/impwclock/clock-impword.js | 51 ++++++++++++++++++--------------- 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/apps/impwclock/clock-impword.js b/apps/impwclock/clock-impword.js index c54fa7976..ff4e24e2c 100644 --- a/apps/impwclock/clock-impword.js +++ b/apps/impwclock/clock-impword.js @@ -46,6 +46,8 @@ const passivColor = 0x3186 /*grey*/ ; const activeColorNight = 0xF800 /*red*/ ; const activeColorDay = 0xFFFF /* white */; +var hidxPrev; + function drawWordClock() { @@ -65,19 +67,6 @@ function drawWordClock() { g.setColor(passivColor); g.setFontAlign(0, -1, 0); - // draw allWords - var c; - var y = ys; - var x = xs; - allWords.forEach((line) => { - x = xs; - for (c in line) { - g.drawString(line[c], x, y); - x += dx; - } - y += dy; - }); - // Switch case isn't good for this in Js apparently so... if(h < 3){ @@ -125,24 +114,40 @@ function drawWordClock() { hidx = 10; } - // write hour in active color - g.setColor(activeColor); - timeOfDay[hidx][0].split('').forEach((c, pos) => { - x = xs + (timeOfDay[hidx][pos + 1] / 10 | 0) * dx; - y = ys + (timeOfDay[hidx][pos + 1] % 10) * dy; - g.drawString(c, x, y); - }); + // check whether we need to redraw the watchface + if (hidx !== hidxPrev) { + // draw allWords + var c; + var y = ys; + var x = xs; + allWords.forEach((line) => { + x = xs; + for (c in line) { + g.drawString(line[c], x, y); + x += dx; + } + y += dy; + }); + // write hour in active color + g.setColor(activeColor); + timeOfDay[hidx][0].split('').forEach((c, pos) => { + x = xs + (timeOfDay[hidx][pos + 1] / 10 | 0) * dx; + y = ys + (timeOfDay[hidx][pos + 1] % 10) * dy; + g.drawString(c, x, y); + }); + hidxPrev = hidx; + } // Display digital time while button 1 is pressed + g.clearRect(0, 215, 240, 240); if (BTN1.read()){ g.setColor(activeColor); - g.clearRect(0, 215, 240, 240); g.drawString(time, 120, 215); - } else { g.clearRect(0, 215, 240, 240); } - + } } + Bangle.on('lcdPower', function(on) { if (on) drawWordClock(); }); From 91655769aef384222c80491109903d3c4968d21e Mon Sep 17 00:00:00 2001 From: Fredrik Lautrup Date: Mon, 4 May 2020 21:31:19 +0200 Subject: [PATCH 072/464] Fix to use less resources when not needed. --- apps/rclock/rclock.app.js | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/apps/rclock/rclock.app.js b/apps/rclock/rclock.app.js index b6026ac37..20c2e8681 100644 --- a/apps/rclock/rclock.app.js +++ b/apps/rclock/rclock.app.js @@ -8,10 +8,10 @@ var _12hour = (require("Storage").readJSON("setting.json", 1) || {})["12hour"] || false; //HR variables - var color="#FF0000"; - var id=0; - var size=10; - var grow=true; + var color = "#FF0000"; + var id = 0; + var size = 10; + var grow = true; const screen = { width: g.getWidth(), @@ -50,7 +50,7 @@ color: '#333333', size: 10, x: screen.center, - y: screen.middle+45 + y: screen.middle + 45 } }; @@ -167,12 +167,7 @@ g.drawString(date, settings.date.center, settings.date.middle); }; - Bangle.on('lcdPower', function (on) { - if (on) drawClock(); - }); - - -//setInterval for HR visualisation + //setInterval for HR visualisation const newBeats = function (hr) { if (id != 0) { changeInterval(id, 6e3 / hr.bpm); @@ -181,7 +176,7 @@ } }; -//visualize HR with circles pulsating + //visualize HR with circles pulsating const drawHR = function (hr) { if (grow && size < settings.hr.size) { size++; @@ -204,7 +199,6 @@ g.setColor(color); g.drawCircle(settings.hr.x, settings.hr.y, size); } - print(size); }; // clean app screen @@ -213,10 +207,24 @@ Bangle.loadWidgets(); Bangle.drawWidgets(); - // refesh every 30 sec +//manage when things should be enabled and not + Bangle.on('lcdPower', function (on) { + if (on) { + setInterval(drawClock, 1E3); + Bangle.setHRMPower(1); + Bangle.on('HRM', function (d) { + newBeats(d); + }); + } else { + clearInterval(); + Bangle.setHRMPower(0); + } + }); + + // refesh every second setInterval(drawClock, 1E3); - //start HR monitor and draw heart rate + //start HR monitor and update frequency of update Bangle.setHRMPower(1); Bangle.on('HRM', function (d) { newBeats(d); From c72bb4eb7477a10f0e86e65711de0274f3a203af Mon Sep 17 00:00:00 2001 From: Bzly Date: Mon, 4 May 2020 20:38:13 +0100 Subject: [PATCH 073/464] Create ChangeLog --- apps/impwclock/ChangeLog | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 apps/impwclock/ChangeLog diff --git a/apps/impwclock/ChangeLog b/apps/impwclock/ChangeLog new file mode 100644 index 000000000..7e099cad5 --- /dev/null +++ b/apps/impwclock/ChangeLog @@ -0,0 +1,2 @@ +0.01: New App! +0.02: Fixed watchface refresh every interval, even when no change From 7c7e995e5c3e5147a3e9d5ce251094244043b6f8 Mon Sep 17 00:00:00 2001 From: Bzly Date: Mon, 4 May 2020 20:42:20 +0100 Subject: [PATCH 074/464] Increment impwclock version number --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index b7eb41042..e36341b69 100644 --- a/apps.json +++ b/apps.json @@ -167,7 +167,7 @@ { "id": "impwclock", "name": "Imprecise Word Clock", "icon": "clock-impword.png", - "version":"0.01", + "version":"0.02", "description": "Imprecise word clock for vacations, weekends, and those who never need accurate time.", "tags": "clock", "type":"clock", From 3e29d6c5d9fcce4bb912c2fcf6b42642b7c7d086 Mon Sep 17 00:00:00 2001 From: Bzly Date: Mon, 4 May 2020 20:46:24 +0100 Subject: [PATCH 075/464] Clearer changelog message --- apps/impwclock/ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/impwclock/ChangeLog b/apps/impwclock/ChangeLog index 7e099cad5..c6974d37c 100644 --- a/apps/impwclock/ChangeLog +++ b/apps/impwclock/ChangeLog @@ -1,2 +1,2 @@ 0.01: New App! -0.02: Fixed watchface refresh every interval, even when no change +0.02: Stopped watchface from flashing every interval From 87cf91d80e8835e3bb9bd396cbf66fc60b775d30 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Tue, 5 May 2020 11:39:21 +0100 Subject: [PATCH 076/464] Allow scrolling to wrap around (fix #382) --- apps.json | 2 +- apps/launch/ChangeLog | 1 + apps/launch/app.js | 14 ++++++-------- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/apps.json b/apps.json index b7eb41042..852b88b9d 100644 --- a/apps.json +++ b/apps.json @@ -41,7 +41,7 @@ "name": "Default Launcher", "shortName":"Launcher", "icon": "app.png", - "version":"0.02", + "version":"0.03", "description": "This is needed by Bangle.js to display a menu allowing you to choose your own applications. You can replace this with a customised launcher.", "tags": "tool,system,launcher", "type":"launch", diff --git a/apps/launch/ChangeLog b/apps/launch/ChangeLog index 9e4a1eaf3..fe5aa9d0e 100644 --- a/apps/launch/ChangeLog +++ b/apps/launch/ChangeLog @@ -1,2 +1,3 @@ 0.01: New App! 0.02: Only store relevant app data (saves RAM when many apps) +0.03: Allow scrolling to wrap around (fix #382) diff --git a/apps/launch/app.js b/apps/launch/app.js index a256b6909..b20c808a1 100644 --- a/apps/launch/app.js +++ b/apps/launch/app.js @@ -40,16 +40,14 @@ function drawMenu() { } drawMenu(); setWatch(function() { - if (selected>0) { - selected--; - drawMenu(); - } + selected--; + if (selected<0) selected = apps.length-1; + drawMenu(); }, BTN1, {repeat:true}); setWatch(function() { - if (selected+1=apps.length) selected = 0; + drawMenu(); }, BTN3, {repeat:true}); setWatch(function() { // run if (!apps[selected].src) return; From 7d8d1a8f6f34d135ab9d13fa5438cdac5f8fce10 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Tue, 5 May 2020 13:41:30 +0100 Subject: [PATCH 077/464] Add "ram" keyword to allow 2v06 Espruino builds to cache function that needs to be fast Fix issue where first digit could get stuck going from "2x:xx" to " x:xx" (fix #365) also remove accidental commit --- .gitignore | 1 + apps.json | 2 +- apps/mclock/ChangeLog | 2 + apps/mclock/clock-morphing-faster.js | 206 --------------------------- apps/mclock/clock-morphing.js | 7 +- 5 files changed, 8 insertions(+), 210 deletions(-) delete mode 100644 apps/mclock/clock-morphing-faster.js diff --git a/.gitignore b/.gitignore index f1811806d..abc3e9bd1 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ node_modules package-lock.json .DS_Store +*.js.bak diff --git a/apps.json b/apps.json index 0d5d96d13..a1a8ad675 100644 --- a/apps.json +++ b/apps.json @@ -108,7 +108,7 @@ { "id": "mclock", "name": "Morphing Clock", "icon": "clock-morphing.png", - "version":"0.04", + "version":"0.05", "description": "7 segment clock that morphs between minutes and hours", "tags": "clock", "type":"clock", diff --git a/apps/mclock/ChangeLog b/apps/mclock/ChangeLog index 4bc1ea352..98566f277 100644 --- a/apps/mclock/ChangeLog +++ b/apps/mclock/ChangeLog @@ -1,3 +1,5 @@ 0.02: Modified for use with new bootloader and firmware 0.03: Added Locale based date 0.04: Improve performance, attempt to remove occasional glitch when LCD on (fix #279) +0.05: Add "ram" keyword to allow 2v06 Espruino builds to cache function that needs to be fast + Fix issue where first digit could get stuck going from "2x:xx" to " x:xx" (fix #365) diff --git a/apps/mclock/clock-morphing-faster.js b/apps/mclock/clock-morphing-faster.js deleted file mode 100644 index 69cd72707..000000000 --- a/apps/mclock/clock-morphing-faster.js +++ /dev/null @@ -1,206 +0,0 @@ -var locale = require("locale"); -var CHARW = 34; -var CHARP = 2; -var Y = 50; -// Offscreen buffer -var buf = Graphics.createArrayBuffer(CHARW+CHARP*2,CHARW*2 + CHARP*2,1,{msb:true}); -var bufimg = {width:buf.getWidth(),height:buf.getHeight(),buffer:buf.buffer}; -// The last time that we displayed -var lastTime = " "; -// If animating, this is the interval's id -var animInterval; -var timeInterval; - -/* Get array of lines from digit d to d+1. - n is the amount (0..1) - maxFive is true is this digit only counts 0..5 */ -const DIGITS = { -" ":(g,s,p,n)=>{}, -"0":(g,s,p,n)=>{ -g.fillRect(1+s*n,1-p, 1+s,1+p); -g.fillRect(1+s-p,1, 1+s+p,1+s); -g.fillRect(1+s-p,1+s, 1+s+p,1+2*s); -g.fillRect(1+s*n,1+2*s-p, 1+s,1+2*s+p); -g.fillRect(1+s*n,1+s-p, 1+s*n,1+2*s+p); -g.fillRect(1+s*n-p,1, 1+s*n+p,1+s)}, -"1":(g,s,p,n)=>{ -g.fillRect(1+(1-n)*s,1-p, 1+s,1+p); -g.fillRect(1+s-p,1, 1+s+p,1+s); -g.fillRect(1+(1-n)*s,1+s-p, 1+s,1+s+p); -g.fillRect(1-p+(1-n)*s,1+s, 1+p+(1-n)*s,1+2*s); -g.fillRect(1+(1-n)*s,1-p+2*s, 1+s,1+p+2*s)}, -"2":(g,s,p,n)=>{ -g.fillRect(1,1-p, 1+s,1+p); -g.fillRect(1+s-p,1, 1+s+p,1+s); -g.fillRect(1,1+s-p, 1+s,1+s+p); -g.fillRect(1-p,1+(1+n)*s, 1+p,1+2*s); -g.fillRect(1+s-p,1+(2-n)*s, 1+s+p,1+2*s); -g.fillRect(1,1+2*s-p, 1+s,1+2*s+p)}, -"3":(g,s,p,n)=>{ -g.fillRect(1,1-p, 1+(1-n)*s,1+p); -g.fillRect(1-p,1, 1+p,n); -g.fillRect(1+s-p,1, 1+s+p,1+s); -g.fillRect(1,1+s-p, 1+s,1+s+p); -g.fillRect(1+s-p,1+s, 1+s+p,1+2*s); -g.fillRect(1+s*n,1+2*s-p, 1+s,1+2*s+p)}, -"4":(g,s,p,n)=>{ -g.fillRect(1-p,1, 1+p,1+s); -g.fillRect(1+s,1-p, 1+(1-n)*s,1+p); -g.fillRect(1+s-p,1, 1+s+p,1+(1-n)*s); -g.fillRect(1,1+s-p, 1+s,1+s+p); -g.fillRect(1+s-p,1+s, 1+s+p,1+2*s); -g.fillRect(1+(1-n)*s,1+2*s-p, 1+s,1+2*s+p)}, -"5to0": (g,s,p,n)=>{ // 5 -> 0 -g.fillRect(1-p,1, 1+p,1+s); -g.fillRect(1,1-p, 1+s,1+p); -g.fillRect(1+s*n,1+s-p, 1+s,1+s+p); -g.fillRect(1+s-p,1+s, 1+s+p,1+2*s); -g.fillRect(1,1+2*s*p, 1+s,1+2*s+p); -g.fillRect(1,1+2*s-p, 1,1+2*s+p); -g.fillRect(1+s-p,1+(1-n)*s, 1+s+p,1+s); -g.fillRect(1-p,1+s, 1+p,1+(1+n)*s)}, -"5to6": (g,s,p,n)=>{ // 5 -> 6 -g.fillRect(1-p,1, 1+p,1+s); -g.fillRect(1,1-p, 1+s,1+p); -g.fillRect(1,1+s-p, 1+s,1+s+p); -g.fillRect(1+s-p,1+s, 1+s+p,1+2*s); -g.fillRect(1,1+2*s-p, 1+s,1+2*s+p); -g.fillRect(1-p,2-n, 1+p,1+2*s)}, -"6":(g,s,p,n)=>{ -g.fillRect(1-p,1, 1+p,1+(1-n)*s); -g.fillRect(1,1-p, 1+s,1+p); -g.fillRect(1+s*n,1+s-p, 1+s,1+s+p); -g.fillRect(1+s-p,1+(1-n)*s, 1+s+p,1+s); -g.fillRect(1+s-p,1+s, 1+s+p,1+2*s); -g.fillRect(1+s*n,1+2*s-p, 1+s,1+2*s+p); -g.fillRect(1-p,1+(1-n)*s, 1+p,1+s*(2-2*n))}, -"7":(g,s,p,n)=>{ -g.fillRect(1-p,1, 1+p,n); -g.fillRect(1,1-p, 1+s,1+p); -g.fillRect(1+s-p,1, 1+s+p,1+s); -g.fillRect(1+(1-n)*s,1+s-p, 1+s,1+s+p); -g.fillRect(1+s-p,1+s, 1+s+p,1+2*s); -g.fillRect(1+(1-n)*s,1+2*s-p, 1+s,1+2*s+p); -g.fillRect(1+(1-n)*s-p,1+s, 1+(1-n)*s+p,1+2*s)}, -"8":(g,s,p,n)=>{ -g.fillRect(1-p,1, 1+p,1+s); -g.fillRect(1,1-p, 1+s,1+p); -g.fillRect(1+s-p,1, 1+s+p,1+s); -g.fillRect(1,1+s-p, 1+s,1+s+p); -g.fillRect(1+s-p,1+s, 1+s+p,1+2*s); -g.fillRect(1,1+2*s-p, 1+s,1+2*s+p); -g.fillRect(1-p,1+s, 1+p,1+s*(2-n))}, -"9":(g,s,p,n)=>{ -g.fillRect(1-p,1, 1+p,1+s); -g.fillRect(1,1-p, 1+s,1+p); -g.fillRect(1+s-p,1, 1+s+p,1+s); -g.fillRect(1,1+s-p, 1+(1-n)*s,1+s+p); -g.fillRect(1-p,1+s, 1+p,1+(1+n)*s); -g.fillRect(1+s-p,1+s, 1+s+p,1+2*s); -g.fillRect(1,1+2*s-p, 1+s,1+2*s+p)}, -":":(g,s,p,n)=>{ -g.fillRect(1+s*0.4,1+s*0.4-p, 1+s*0.6,1+s*0.4+p); -g.fillRect(1+s*0.6-p,1+s*0.4, 1+s*0.6+p,1+s*0.6); -g.fillRect(1+s*0.6,1+s*0.6-p, 1+s*0.4,1+s*0.6+p); -g.fillRect(1+s*0.4-p,1+s*0.4, 1+s*0.4+p,1+s*0.6); -g.fillRect(1+s*0.4,1+s*1.4-p, 1+s*0.6,1+s*1.4+p); -g.fillRect(1+s*0.6-p,1+s*1.4, 1+s*0.6+p,1+s*1.6); -g.fillRect(1+s*0.6,1+s*1.6-p, 1+s*0.4,1+s*1.6+p); -g.fillRect(1+s*0.4-p,1+s*1.4, 1+s*0.4+p,1+s*1.6) -}}; - -/* Draw a transition between lastText and thisText. - 'n' is the amount - 0..1 */ -function drawDigits(lastText,thisText,n) { - const p = CHARP; // padding around digits - const s = CHARW; // character size - var x = p; // x offset - var y = Y+p; // y offset - g.reset(); - for (var i=0;i=1) { - n=1; - clearInterval(animInterval); - animInterval = undefined; - } - drawDigits(l,t,n); - }, 20); - lastTime = t; -} - -Bangle.on('lcdPower',function(on) { - if (animInterval) { - clearInterval(animInterval); - animInterval = undefined; - } - if (timeInterval) { - clearInterval(timeInterval); - timeInterval = undefined; - } - if (on) { - showTime(); - timeInterval = setInterval(showTime, 1000); - } -}); - -g.clear(); -Bangle.loadWidgets(); -Bangle.drawWidgets(); -// Update time once a second -timeInterval = setInterval(showTime, 1000); -showTime(); - -// Show launcher when middle button pressed -setWatch(Bangle.showLauncher, BTN2, {repeat:false,edge:"falling"}); diff --git a/apps/mclock/clock-morphing.js b/apps/mclock/clock-morphing.js index e9365db52..8a2c62e28 100644 --- a/apps/mclock/clock-morphing.js +++ b/apps/mclock/clock-morphing.js @@ -6,7 +6,7 @@ var Y = 50; // start height var buf = Graphics.createArrayBuffer(CHARW+CHARP*2,CHARW*2 + CHARP*2,1,{msb:true}); var bufimg = {width:buf.getWidth(),height:buf.getHeight(),buffer:buf.buffer}; // The last time that we displayed -var lastTime = " "; +var lastTime = "-----"; // If animating, this is the interval's id var animInterval; var timeInterval; @@ -112,6 +112,7 @@ const DIGITS = { /* Draw a transition between lastText and thisText. 'n' is the amount - 0..1 */ function drawDigits(lastText,thisText,n) { + "ram" const p = CHARP; // padding around digits const s = CHARW; // character size var x = 0; // x offset @@ -167,7 +168,7 @@ function showTime() { ("0"+d.getMinutes()).substr(-2); var l = lastTime; // same - don't animate - if (t==l || l==" ") { + if (t==l || l=="-----") { drawDigits(l,t,0); drawSeconds(); lastTime = t; @@ -199,7 +200,7 @@ Bangle.on('lcdPower',function(on) { showTime(); timeInterval = setInterval(showTime, 1000); } else { - lastTime = " "; + lastTime = "-----"; } }); From 3b14b2d5badb15bb2dbd4d58c72cfb1459b38cd2 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Tue, 5 May 2020 13:42:27 +0100 Subject: [PATCH 078/464] Speed updates --- apps.json | 6 +++--- apps/astroid/ChangeLog | 1 + apps/astroid/asteroids.js | 1 + apps/flappy/ChangeLog | 1 + apps/flappy/app.js | 15 ++++++++------- apps/trex/ChangeLog | 1 + apps/trex/trex.js | 1 + 7 files changed, 16 insertions(+), 10 deletions(-) create mode 100644 apps/astroid/ChangeLog create mode 100644 apps/trex/ChangeLog diff --git a/apps.json b/apps.json index a1a8ad675..93003c429 100644 --- a/apps.json +++ b/apps.json @@ -206,7 +206,7 @@ { "id": "trex", "name": "T-Rex", "icon": "trex.png", - "version":"0.01", + "version":"0.02", "description": "T-Rex game in the style of Chrome's offline game", "tags": "game", "allow_emulator":true, @@ -218,7 +218,7 @@ { "id": "astroid", "name": "Asteroids!", "icon": "asteroids.png", - "version":"0.01", + "version":"0.02", "description": "Retro asteroids game", "tags": "game", "allow_emulator":true, @@ -780,7 +780,7 @@ { "id": "flappy", "name": "Flappy Bird", "icon": "app.png", - "version":"0.03", + "version":"0.04", "description": "A Flappy Bird game clone", "tags": "game", "allow_emulator":true, diff --git a/apps/astroid/ChangeLog b/apps/astroid/ChangeLog new file mode 100644 index 000000000..42c1df403 --- /dev/null +++ b/apps/astroid/ChangeLog @@ -0,0 +1 @@ +0.02: Add "ram" keyword to allow 2v06 Espruino builds to cache function that needs to be fast diff --git a/apps/astroid/asteroids.js b/apps/astroid/asteroids.js index cb44db904..da4dc017e 100644 --- a/apps/astroid/asteroids.js +++ b/apps/astroid/asteroids.js @@ -59,6 +59,7 @@ function gameStart() { function onFrame() { + "ram" var t = getTime(); var d = (lastFrame===undefined)?0:(t-lastFrame)*20; lastFrame = t; diff --git a/apps/flappy/ChangeLog b/apps/flappy/ChangeLog index 25c3827bd..62f107d11 100644 --- a/apps/flappy/ChangeLog +++ b/apps/flappy/ChangeLog @@ -1,2 +1,3 @@ 0.02: Tweaks to make flappy bird run with less RAM available 0.03: A few tweaks to improve rendering speed +0.04: Add "ram" keyword to allow 2v06 Espruino builds to cache function that needs to be fast diff --git a/apps/flappy/app.js b/apps/flappy/app.js index 4895b8530..9276010c0 100644 --- a/apps/flappy/app.js +++ b/apps/flappy/app.js @@ -32,10 +32,11 @@ function gameStop() { } function draw() { + "ram" var H = g.getHeight()-24; g.setColor("#71c6cf"); g.fillRect(0,0,g.getWidth(),H-1); - floorpos++; + floorpos++; for (var x=-(floorpos&15);xbbot)) gameStop(); }); diff --git a/apps/trex/ChangeLog b/apps/trex/ChangeLog new file mode 100644 index 000000000..42c1df403 --- /dev/null +++ b/apps/trex/ChangeLog @@ -0,0 +1 @@ +0.02: Add "ram" keyword to allow 2v06 Espruino builds to cache function that needs to be fast diff --git a/apps/trex/trex.js b/apps/trex/trex.js index 92c5d049c..fe84cb31a 100644 --- a/apps/trex/trex.js +++ b/apps/trex/trex.js @@ -165,6 +165,7 @@ function gameStop() { } function onFrame() { + "ram" g.clear(); if (rex.alive) { frame++; From a8953f40ea88f5b71dddb885c2495c96c57282cd Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Tue, 5 May 2020 13:43:59 +0100 Subject: [PATCH 079/464] remove some sanity check warnings --- apps.json | 2 +- apps/hidmsic/ChangeLog | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/apps.json b/apps.json index 93003c429..cc316841b 100644 --- a/apps.json +++ b/apps.json @@ -1452,7 +1452,7 @@ "name": "Round clock with seconds, minutes and date", "shortName":"Round Clock", "icon": "app.png", - "version":"0.01", + "version":"0.02", "description": "Designed round clock with ticks for minutes and seconds", "tags": "clock", "type": "clock", diff --git a/apps/hidmsic/ChangeLog b/apps/hidmsic/ChangeLog index 73b3268b7..9e7c84e5d 100644 --- a/apps/hidmsic/ChangeLog +++ b/apps/hidmsic/ChangeLog @@ -1 +1,2 @@ 0.01: Core functionnality +0.02: Added BLE HID option for Joystick and bare Keyboard From 06149002d74e2941a69151f6e9a47298314e0b53 Mon Sep 17 00:00:00 2001 From: Tom Gidden Date: Tue, 5 May 2020 14:15:13 +0100 Subject: [PATCH 080/464] Beebclock --- apps.json | 14 ++ apps/beebclock/ChangeLog | 2 + apps/beebclock/beebclock-icon.js | 1 + apps/beebclock/beebclock.js | 397 +++++++++++++++++++++++++++++++ apps/beebclock/beebclock.png | Bin 0 -> 3318 bytes 5 files changed, 414 insertions(+) create mode 100644 apps/beebclock/ChangeLog create mode 100644 apps/beebclock/beebclock-icon.js create mode 100644 apps/beebclock/beebclock.js create mode 100644 apps/beebclock/beebclock.png diff --git a/apps.json b/apps.json index cc316841b..83b671ada 100644 --- a/apps.json +++ b/apps.json @@ -1620,5 +1620,19 @@ "evaluate": true } ] + }, + { + "id": "beebclock", + "name": "Beeb Clock", + "icon": "beebclock.png", + "version":"0.02", + "description": "Clock face that may be coincidentally familiar to BBC viewers", + "tags": "clock", + "type": "clock", + "allow_emulator": true, + "storage": [ + {"name":"beebclock.app.js","url":"beebclock.js"}, + {"name":"beebclock.img","url":"beebclock-icon.js","evaluate":true} + ] } ] diff --git a/apps/beebclock/ChangeLog b/apps/beebclock/ChangeLog new file mode 100644 index 000000000..14dd12220 --- /dev/null +++ b/apps/beebclock/ChangeLog @@ -0,0 +1,2 @@ +0.01: Initial commit. Not very efficient, and widgets not working for some reason. +0.02: Fixes; widget support diff --git a/apps/beebclock/beebclock-icon.js b/apps/beebclock/beebclock-icon.js new file mode 100644 index 000000000..b4d173068 --- /dev/null +++ b/apps/beebclock/beebclock-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwwkHA4dQAgcFgPyl8QDxgNE0EAggXGAgcFDQ0TBgQXBkcgBQURCw8GBYUj+AEBI430AgI7BBAVgCIU/if0DoMC+UfiwLBgUyEQRyGgEzmPzCIQvCBwMPj4rCAwJECAAUD+MvkEQgMhkRABgEvkaKIJAXzj49BBYMBBIOm+IIBgMVPQxiBn8xkAIDAYMBj6TBSIYyFhUPBoJRCF4RlBAoJRBBggSBIIgAI0qhCFgUB/4WFTIYDDFwJMCCAUSifzDoYsGBQJIBfoM0kIEBn81168CfAwACKwMS+UT+ovC/8gmRRCGQqQBRgUjocyB4YYBI4QrEDwRdCfAQ4EsD5DAA5dCDYbMDCoTPCBAsQaYprHRosR0ICBB4ZtDEYJZHM4X/kMKFAwSGAocBn8hkX/NBMFEAJXDAQMD+IcBkcwBIZ1EHgP/BgIzD17QBDYPwI4kCn8/mcjkUyCAQlCVocB+IqDC4IVBmYWBkVAVAkvaIboDqAGBCwMyIwM/I4IVBoYHBI4qzDI4egLYURiaiCO4UAl4bCMIJLEEAUj//zlVQgynBmNC/5LBcQsA0BXBCoNCeQkDKQX1X5Ef+clTQIkCT4URiJYBXwYlEirHGOAkAJYIvHEAUTNoadBegn/EYUCB4IjDiRtCCoWgEwj8BCQMCCAQkBAoMhkZJDC4kFh/yNAMyifzE4U/kMf+RRGM4beCp/xibLBqERj6EDboQjCT4beDmMhQwRNEQIoACiISCIYILCgKNCXgQXFGYoTBC4a/DgcmBoRLCEAMDCQQPBbwxVBmLDDGwUCj/wHY4ADn8TBwbYD+3xCY8AhQlB+M/JwS3BGIXzj5RENAS1Cj86YQUB+U/KIdvmB6FIw8Qg3yl5KCgcyMAgZFiNPOwYXDAoURL45LCiSLD+YXBAoTXDAAbTIL4oJCCIRdEDA1gI4ooFgAA==")) diff --git a/apps/beebclock/beebclock.js b/apps/beebclock/beebclock.js new file mode 100644 index 000000000..7b071c22d --- /dev/null +++ b/apps/beebclock/beebclock.js @@ -0,0 +1,397 @@ +/* jshint esversion: 6 */ +// Beebclock +// © 2020, Tom Gidden +// https://github.com/tomgidden + +const storage = require("Storage"); +const filename = 'beebjson'; + +require('FontTeletext10x18Ascii').add(Graphics); + +// Double height text +Graphics.prototype.drawStringDH = function (txt, px, py, align, gw) { + let g2 = Graphics.createArrayBuffer(gw,18,1,{msb:true}); + g2.setFontTeletext10x18Ascii(); + let w = g2.stringWidth(txt); + let c = (w+3)>>2; + g2.drawString(txt); + let img = {width:w,height:1,transparent:0,buffer:new ArrayBuffer(c)}; + let a = new Uint8Array(img.buffer); + + let x; + switch (align) { + case 'C': x = px + (gw - w)/2; break; + case 'R': x = gw - w + px; break; + default: x = px; + } + + for (var y=0;y<18;y++) { + a.set(new Uint8Array(g2.buffer,gw*y/8,c)); + this.drawImage(img,x,py+y*2); + this.drawImage(img,x,py+1+y*2); + } +}; + +// Fill rectangle rotated around the centre +Graphics.prototype.fillRotRect = function (sina, cosa, cx, cy, x0, x1, y0, y1) { + let fn = Math.ceil; + return this.fillPoly([ + fn(cx - x0*cosa + y0*sina), fn(cy - x0*sina - y0*cosa), + fn(cx - x1*cosa + y0*sina), fn(cy - x1*sina - y0*cosa), + fn(cx - x1*cosa + y1*sina), fn(cy - x1*sina - y1*cosa), + fn(cx - x0*cosa + y1*sina), fn(cy - x0*sina - y1*cosa) + ]); +}; + +// Draw a line from r1,a to r2,a relative to cx+cy +Graphics.prototype.drawRotLine = function (sina, cosa, cx, cy, r1, r2) { + return this.drawLine( + cx + r1*sina, cy - r1*cosa, + cx + r2*sina, cy - r2*cosa + ); +}; + + +(function(g) { + // Display modes + // + // 0: full-screen + // 1: with widgets + // 2: centred on Bangle (v.1), no widgets or time/date + // 3: centred with time above + // 4: centred with date above + // 5: centred with time and date above + let mode; + + // R1, R2: Outer and inner radii of hour marks + // RC1, RC2: Outer and inner radii of hub + // CX, CY: Centre location, relative to buffer (not screen, necessarily) + // HW2, MW2: Half-width of hour and minute hand + // HR, MR: Length of hour and minute hand, relative to CX,CY + // M: Half-width of gap in hour marks + // HSCALE: Half-width of hour mark as function(0 { + const fw = R1 * 2; + const fh = R1 * 2; + const fw2 = R1; + const fh2 = R1; + let hs = []; + + // Wipe the image and start with white + G.clear(); + G.setColor(1,1,1); + + // Draw the hour marks. + for (let h=1; h<=12; h++) { + hs[h] = HSCALE(h); + G.fillRotRect(ss[h], cs[h], CX, CY, -hs[h], hs[h], R2, R1); + + } + + // Draw the hub + G.fillCircle(CX, CY, RC1); + + // Black + G.setColor(0,0,0); + + // Clear the centre of the hub + G.fillCircle(CX, CY, RC2); + + // Draw the gap in the hour marks + for (let h=1; h<=12; h++) { + G.fillRotRect(ss[h], cs[h], CX, CY, -M, M, R2-1, R1+1); + } + + // Back to white for future draw operations + G.setColor(1,1,1); + + // While the buffer remains full-screen, we may trim out the + // bottom of the image so we can shift the whole thing down for + // widgets. + const img = {width:GW,height:GH-TM,buffer:G.buffer}; + return img; + }; + + let hours, minutes, seconds, date; + + // Schedule event for calling at the start of the next second + const inOneSecond = (cb) => { + let now = new Date(); + clearTimeout(); + setTimeout(cb, 1000 - now.getMilliseconds()); + }; + + // Schedule event for calling at the start of the next minute + const inOneMinute = (cb) => { + let now = new Date(); + clearTimeout(); + setTimeout(cb, 60000 - (now.getSeconds() * 1000 + now.getMilliseconds())); + }; + + // Draw a fat hour/minute hand + const drawHand = (G, a, w2, r1, r2) => + G.fillRotRect(Math.sin(a), Math.cos(a), CX, CY, -w2, w2, r1, r2); + + // Redraw function + const drawAll = (force) => { + let now = new Date(); + + if (!faceImg) force = true; + + let face_changed = force; + let date_changed = false; + + tmp = hours; + hours = now.getHours(); + if (tmp !== hours) + face_changed = true; + + tmp = minutes; + minutes = now.getMinutes(); + if (tmp !== minutes) + face_changed = true; + + // If the face has been updated and/or needs a redraw, + // face_changed is true. + + let time_changed = face_changed; + + // If the screen needs an update, regardless of whether the face + // needs a redraw, time_changed is true. + + if (with_seconds) { + // If we're going by second, we always need an update. + seconds = now.getSeconds(); + time_changed = true; + } + + if (with_digital_date) { + // See if the date has changed. If it has, then we need a + // full-blown redraw of the screen and the face, plus text. + tmp = date; + date = now.getDate(); + if (tmp !== date) { + date_changed = true; + face_changed = true; // Should have changed anyway with hour/minute rollover + } + } + + if (face_changed) { + // Redraw the face and hands onto the buffer G1. + faceImg = drawFace(G1); + drawHand(G1, Math.PI*hours/6, HW2, RC1, HR); + drawHand(G1, Math.PI*minutes/30, MW2, RC1, MR); + } + + // Has the time updated? If so, we'll need to draw something. + if (time_changed) { + + // Are we adding text? + if (with_digital_date || with_digital_time) { + + // Construct the date/time text to add above the face + let d = now.toString(); + let da = d.toString().split(" "); + let txt; + + if (with_digital_time) { + txt = da[4].substr(0, 5); + if (with_digital_date) + G1.drawStringDH(txt+',', 24, 0, 'L', GW); + else + G1.drawStringDH(txt, 0, 0, 'C', GW); + } + + if (with_digital_date) { + let txt = [da[0], da[1], da[2]].join(" "); + if (with_digital_time) + G1.drawStringDH(txt, -24, 0, 'R', GW); + else + G1.drawStringDH(txt, 0, 0, 'C', GW); + } + } + + // If the time has updated, we need to _at least_ draw the + // image to the screen. + g.setColor(1,1,1); + g.drawImage({width:GW, + height:GH-TM, + buffer:G1.buffer}, 0, TM); + + // and possibly add the second hand + if (with_seconds) { + let a = 2.0 * Math.PI * seconds / 60.0; + g.drawRotLine(Math.sin(a), Math.cos(a), CX, CY+TM, RC1, R1); + } + + // Clock chime on the hour. + if (hours >= 0 && minutes === 0) + try { + Bangle.buzz(); + } catch (e) { } + + // And draw widgets if we're in that mode + if (with_widgets) + Bangle.drawWidgets(); + } + + // Schedule to repeat this. A `setTimeout(1000)` isn't good + // enough, as all the above might've taken some milliseconds and + // we don't want to drift. + if (with_seconds) + inOneSecond(drawAll); + else + inOneMinute(drawAll); + }; + + const setButtons = () => { + const opts = { repeat: true, edge:'rising', debounce:30}; + + // BTN1: enable/disable second hand + setWatch(changeSeconds, BTN1, opts); + + // BTN2: return to launcher + setWatch(Bangle.showLauncher, BTN2, { repeat:false, edge:'falling' }); + + // BTN3: change display mode + setWatch(function () { ++mode; setMode(); drawAll(true); }, BTN3, opts); + }; + + // Load display parameters based on `mode` + const setMode = () => { + // Normalize mode to 0 <= mode <= 5 + mode = (6+mode) % 6; + + // [R1, R2, RC1, RC2, HW2, MW3, HR, MR, M, HSCALE] = + const scales = [ + [120, 84, 17, 12.4, 4.6, 2.2, 8, 2, 1, h => (3.0 + Math.ceil(h/1.5)) ], + [102, 70, 14.6, 10.7, 3.88, 1.8, 8, 2, 1, h => (2.4 + Math.ceil(h/1.6)) ], + ]; + + if (mode < 3) { + // Face without time/date text. Might have widgets though. + with_digital_time = with_digital_date = false; + with_widgets = (mode == 1); + } + else { + // Face with time/date text, but no widgets + with_digital_time = (mode-2)&1; + with_digital_date = (mode-2)&2; + with_widgets = false; + } + + // Destructure the array to the global display parameters + let arr = scales[mode > 0 ? 1 : 0]; + R1 = arr[0]; + R2 = arr[1]; + RC1 = arr[2]; + RC2 = arr[3]; + HW2 = arr[4]; + MW2 = arr[5]; + HR = R2 - arr[6]; + MR = R1 - arr[7]; + M = arr[8]; + HSCALE = arr[9]; + TM = with_widgets ? 36 : 0; + + CX = GW/2; + CY = R1; + + // If we're in the small-face + text regime, we're going to buffer + // the full screen but draw the clock face further down to give + // space for the text. + // + // Compare with modes 0 (full-screen) and 1 (with_widgets==true) + // where the face is drawn at the top of the buffer, but drawn + // lower down the screen (so CY doesn't move) + if (mode > 1) { + CY += 36; + } + + // We only don't bother redrawing the face from modes 2 to 5, as + // they're the same. + if (!faceImg || mode<3) { + faceImg = undefined; + } + + // Store the settings for next time + try { + storage.writeJSON(filename, [mode,with_seconds]); + } catch (e) { + console.log(e); + } + + // Clear the screen: we need to make sure all parts are cleaned off. + g.clear(); + }; + + const changeSeconds = () => { + with_seconds = !with_seconds; + drawAll(true); + }; + + Bangle.loadWidgets(); + + // Restore mode + try { + conf = storage.readJSON(filename); + mode = conf[0]; + with_seconds = conf[1]; + } catch (e) { + console.log(e); + mode = 1; + } + + setButtons(); + setMode(); + drawAll(); + + Bangle.on('lcdPower', (on) => { + if (on) { + Bangle.loadWidgets(); + Bangle.drawWidgets(); + drawAll(); + } else { + clearTimeout(); + } + }); + +})(g); diff --git a/apps/beebclock/beebclock.png b/apps/beebclock/beebclock.png new file mode 100644 index 0000000000000000000000000000000000000000..447ec9a41a99e765323f2d62403904f3ce73f1c6 GIT binary patch literal 3318 zcmbVP2~-p379JE4Tq&D0Scy?_DM=>#QXwKiKo$d{A^|j+Ody!eBuJnNiijdnih!0y zkh;}^BB1h6sYQwivREOCO^c0IC?bfUD1!1PfIRz-?dy4S&SWMt-~Zk3-uwMGCrKP% z_nFgB(*OXN>FL4tN3NjZG@XQewr-Z*MlNP@kBv$Im~Lq}jex8iTL75yN)!;N3iR=2 zLNW=CCy?=BoLVAB&;YQUrIz!cEwBpBhr>itC(N@e*Dz?2zzMT~;sg4~UEy$%M~nhq z8{-=Q#cY8X0u0L;y!BKL;Jcno?JqT1qwaWMo$2l{Z( zt}+FTrs6;>1cF2~je#Rj$s`KV5lsY%ARZ*(Ng$R$VNyUQiH;sWFi13oK*;oGuNseq zd~?Ett5k9(9v>AIg^MELWQs66fx%$lK_Z?=#3Bf+GFqzQsj*V!g7*w;SP3aaa+OFX zMH?7-d|9N*34um2PPDXovsM2wGWkw_*&C{=FTkTk{%@=>%hAX*ON{b8jn zQUSqk+Yp%x4B5z;t_ql^k|_dYGV%LHao$Tt6Ol~NOMG~cNNPx8=?6<-HctgRVGMo4 zf)p%B3Lp}g1O}5x{v0GQL2wM}BNK>((I0~%Xd>ZHP{cF>o{INB!2*aWlqn=UBxR9= z7Y5_y(l88qqL55inOLSk0wd~3A3pbVb>%2zLXjAGq4alOiS~4Jr4kraDwc>NjLP-# zVR}lHDxMUAJ=sneq&zs0NWdgANMs&J1+jcOpMoVbXml(OBonYSJ{b}~AQhqrDDT&^ zWl*HS1cvov`#~Us5RU)Iqca3NAxTKal4yKBmP#b^u?&d8N7#sTGMzvY!eqgFwlxY7 zvL$)q4_OVW1PCLYz!Q)m5`-l(_(Ck1Muf0*8i9rtf)pMN1VJ8ONH-XN)JseckrL^0 z^!Qd<3vV626N}KJ_F?iM!?tk3Kn6d+h=Q@lqL0+$A4MKt9~BNGq<`a*u`o)RP!+{f zz%F4(?f!ue@qZ;>$=mk#;{RDQ$5eex{GWXL|A`+j4HV9khQY|3#bXTV;0+ULtTFii z?%C+O52n|9I5H9qw-d7%`7$xhVJSkbKxXw}=Ue#zU~nesRDu>y(=5 z_HX(-X2+wQ^O`#Pr(8=+UUfX<$dMZ2hIH$?+S;Ydmhp=N7yIUzn;Mf**uy9ED0_Pv z>cB#aT7I#5d9G=0>iY2h_6C#Pl>*|9H!o_#$^K_rE?v4r4@aR;hYlSQ3WX|W$Xxv` zmHzq^0L*UicCZB6+uP4~TLf^qc0f28bzs$GK>s86k~lLjZ%%Tx@9EO~{P|BbwW)g> zgrzIczbVQc(mHEW?5(Y>t){sZ-JAN^J~lrh;z`=#HK$IWej7V-^X9%=kEb;p<18^X zzFxHH+D(DN-Q9i3l2ni2;9$-EeH%PI&4Bv)dMhg{<4Hz9Ycb@mDIR+DY~<}wR7l9L z4=m?_7vlM$JZQC(7r%?tAP7sD}n5F#I_2PWs`) z2Q`|j>gV5-miE7S*@YC~)})?a$|nO3X-QT3xlENQ_q(aH=b4)(g>KW65w&Hq2k#Kz zS#H@ZduK5~z%$bW8yGQ$-%`kEK%IgU3(-|hI z9%Lqy>E!flOUs1_d2H& zC#{H!V_jPL_U&8SyLGZQ+l<`YgSa_K?EQ<(vqLed38+ODX26S=FRN$&{#?DeT(b&l z`L?jo5x5<3QSTab)&?jkDfz~sv!~}>Sa~ih&i9Y5uBwn6r1J-}3eKN5clk=M*Z0mp z>U*!XHE``(5}j_#NYZt0V;;@7$!nUk_TH|wetv#me)&Z_I`$gtVDC-LTvqH{x1Ttc zyDK>bS~|-nx%$!bg%)OetISY?+uyae+BWw8@zZhBc-t9?-zvkx!br9n&aL6$;RilP zb93hv=7T3so?N$XUF~B2nQm`lVpdib$EqUgSzAQ*o4Sn8{Y3nA8#mq` z?C+3Jx$+cU_W-ikIWO<pj+5#j9-8AR=CXLB%qapdz)?)fDl%1Us+T1kI(WX4Okzb5)P54|LxtVo27+3T4 zYA>%xMtovsFpidcQ%eECosqs<%i3;Tz&)ON<99{*dT~@xP!O`KUO0AfkL?)jn*xMZ z#8^A4p0q5TaipoEXztZd7C9dEjVccYke@m8hz$kW6nj>?oL*H`1@u0>Um71jX?w4U z^&lD5(9zE;YdhtW4Ibw#2@VYWAvU3}ua72c1AeI7J@ts2G}vyT)wJT8=@J!U1>C0Z zX8`uBSgYjfj>e<9D^Yl7#UqqkruQlTGbN>^TL*G-a@9etI=-#JO?)f(4U-7cmu~MN@ZbG&6E0r_@Z| z`S2mX=-$wa&Sv(mp0*=CfJuAt9dubLnz) zpT;lZNl#BtUEOM% zm2KTO4%ltIjW#9HXdAfPuKqy>2ZwK%HLB3U^#$69kgcXy^5aLoGsZjS@Xrk11FT%U ryu3n-ULiBjG+tfNhPc((^4;{>*gWqb9p@9nKNC+kU-r3`o8$it8sA7G literal 0 HcmV?d00001 From 511831fc4688a9764f834267977ea0d141f40637 Mon Sep 17 00:00:00 2001 From: Francesco Bedussi Date: Tue, 5 May 2020 23:24:23 +0200 Subject: [PATCH 081/464] feat: reset with gesture --- apps.json | 12 +++++++++++- apps/simpletimer/ChangeLog | 1 + apps/simpletimer/README.md | 2 ++ apps/simpletimer/app.js | 3 +++ apps/simpletimer/gesture-tfmodel.js | 1 + apps/simpletimer/gesture-tfnames.js | 1 + 6 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 apps/simpletimer/gesture-tfmodel.js create mode 100644 apps/simpletimer/gesture-tfnames.js diff --git a/apps.json b/apps.json index 83b671ada..7cc0fc9a5 100644 --- a/apps.json +++ b/apps.json @@ -1604,7 +1604,7 @@ "id": "simpletimer", "name": "Timer", "icon": "app.png", - "version": "0.01", + "version": "0.02", "description": "Simple timer, useful when playing board games or cooking", "tags": "timer", "readme": "README.md", @@ -1614,6 +1614,16 @@ "name": "simpletimer.app.js", "url": "app.js" }, + { + "name": ".tfnames", + "url": "gesture-tfnames.js", + "evaluate": true + }, + { + "name": ".tfmodel", + "url": "gesture-tfmodel.js", + "evaluate": true + }, { "name": "simpletimer.img", "url": "app-icon.js", diff --git a/apps/simpletimer/ChangeLog b/apps/simpletimer/ChangeLog index ec66c5568..f9f79cd47 100644 --- a/apps/simpletimer/ChangeLog +++ b/apps/simpletimer/ChangeLog @@ -1 +1,2 @@ 0.01: Initial version +0.02: Reset with gesture diff --git a/apps/simpletimer/README.md b/apps/simpletimer/README.md index 9326e510d..ebe54dbe5 100644 --- a/apps/simpletimer/README.md +++ b/apps/simpletimer/README.md @@ -7,6 +7,7 @@ Simple timer, useful when playing board games or cooking - When the time is up the timer can be reset to starting time, this is useful e.g. for playing board games - When the countdown is running the timer cannot be adjusted, this prevents accidental time variations - When the time is up the starting time is shown, as a reminder of the time elapsed +- When the time is up the timer can be reset with a gesture, no need to use any button ## How to use it @@ -14,3 +15,4 @@ Simple timer, useful when playing board games or cooking - Tap on seconds to increase them one by one - Press BTN3 to reset time to 0 - Press BTN1 to start the timer or reset to the original time +- When the time is up use the [swipeleft](https://github.com/espruino/BangleApps/tree/master/apps/gesture) gesture to reset the timer diff --git a/apps/simpletimer/app.js b/apps/simpletimer/app.js index dadbdb825..b8e07d107 100644 --- a/apps/simpletimer/app.js +++ b/apps/simpletimer/app.js @@ -146,6 +146,9 @@ function addWatch() { edge: "falling" }); } +Bangle.on("aiGesture", gesture => { + if (gesture === "swipeleft" && state === "stopped") reset(0); +}); reset(0); addWatch(); diff --git a/apps/simpletimer/gesture-tfmodel.js b/apps/simpletimer/gesture-tfmodel.js new file mode 100644 index 000000000..a29901ef5 --- /dev/null +++ b/apps/simpletimer/gesture-tfmodel.js @@ -0,0 +1 @@ +atob("HAAAAFRGTDMAABIAHAAEAAgADAAQABQAAAAYABIAAAADAAAAjA0AABAEAAD4AwAAPAAAAAQAAAABAAAADAAAAAgADAAEAAgACAAAAAgAAAAMAAAAEwAAAG1pbl9ydW50aW1lX3ZlcnNpb24ADQAAALADAACIAwAAWAMAAKQBAABcAQAAVAEAAEwBAABEAQAAEAEAAAgBAAAAAQAAHAAAAAQAAACu/P//BAAAAAUAAAAxLjUuMAAAAML8//8EAAAA0gAAAMJbJV3AgRwc/Nn1I0Qd5WDwPa0nY6nMbPyvfyOWOlqqf+64Juoa5kjpQVjoHTubf/NpJEH1Sqe0/PfJ5/o08zInA5f6fyg/vRaJEX9VQE5BPlRI0EP1Imq8NkNBLz3Q1hW5k9frf1Lfuc/rEwfGJqbG/txEf35Ey0jgICJ/B+vyu1FF8M+HA2ZcLhAX+QGB26MS3iLLDxnLNlvp9jbo8gM/5YEc0RoWA+W+Ih9T3AyBSNRX4Ew+739Y9R3p+cnS/dj283/BrQDWUu/y4Q8JAwj+5QAA4Pz//+T8//+q/f//BAAAACQAAABejWTlyU3qNn6j53/W2AR0lmjJ9d87YN1cNbBDobHjz5gdMFIY/f//HP3//yD9///m/f//BAAAADgAAADB////e////zwAAACt////5P////3///8yAAAAmP///53///9K////SP///2H///+J////c////yr+//8EAAAApAEAAA4mHQIO1TUu59UbG4FFDeDwNN3sEtUHD18IISYb5aXfCQ0g6/wWDMADFirm8M7t9f4H1eMQluL9Btze72b+5wXX08vbHvLxET4L+xHtFeHZ5NfHV/zUByIHzTf/rxUS28LqwaXnhn8izicXm7z7t+Ja6dHaVL8zE6oR6TwY3LUxFktGE/DcDQz71rkc9SrmL+zs6+3/yTse/xvcHcsIgenD5OHuJeT199TsxRCi6bVGzgb579Xj2vTt2g/RqTAbAsroB9oAtgbn7AkS8fEJ0O8x/nML+1Xf/cAqK8Yo9yvVIjztKSQT+NH09AdCIb/6Af/VD9+EI+vvKuvEEk9h5k8PtNrNIucw/xGBFVzOCQ3q/wH+BBtoCOf74smpLzb37xcvFlcQEPAMmP4o9+L5JU8QMgHG5wrINjRx8/UnPBc57cvo79oGAUzs5jTzFWznEvzP6s8Wf+gQHOn2QAYD/hE8Fuw45P8B0y0GCgr4AyrsAgjRH0XpGRM0+gD9YPoB++3wM/TcDn+fDf1lAAoaCtP4M/3kbQvrATrd6g/y7/rv6Kwj3Nr///8EAAAAGAAAAAYBAADiAQAA2P///5f+//+6////Mf///wAABgAIAAQABgAAAAQAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaP///w8AAABUT0NPIENvbnZlcnRlZC4AAQAAAAQAAAD09v//3AEAANABAADEAQAABAAAAAYAAACYAQAAQAEAANgAAACEAAAAOAAAAAQAAACK/v//BAAAABAAAAAEAAAAAQAAAAwAAAABAAAAAAAAAAAADgAYAAgADAAQAAcAFAAOAAAAAAAACAEAAAAcAAAAEAAAAAgAAAAEAAQABAAAAAEAAAAAAAAAAwAAAAoAAAAJAAAAAQAAAAAADgAaAAgADAAQAAcAFAAOAAAAAAAABQIAAAA8AAAAMAAAABQAAAAAAA4AGAAHAAgADAAQABQADgAAAAAAAAEBAAAALgAAAAEAAAAuAAAAAQAAAAoAAAABAAAACAAAAKr///8AAAABPAAAADAAAAAUAAAAEAAYAAAACAAMAAcAEAAUABAAAAAAAAABAQAAAAEAAAACAAAAAgAAAAEAAAAIAAAAAwAAAAUAAAAGAAAABwAAAAAADgAUAAAACAAMAAcAEAAOAAAAAAAAATAAAAAkAAAAEAAAAAwAEAAGAAgADAAHAAwAAAAAAAEBAQAAAAEAAAABAAAABQAAAAMAAAACAAAAAwAAAAQAAAAAAAoAEAAEAAgADAAKAAAAAwAAABAAAAAEAAAAAQAAAAIAAAABAAAACwAAAAEAAAAMAAAAAQAAAAsAAAANAAAAEAcAAJwGAAAcBgAAAAUAAPwDAAB4AwAAvAIAABgCAACMAQAACAEAAHQAAAA8AAAABAAAANj///8YAAAABAAAAAgAAABJZGVudGl0eQAAAAACAAAAAQAAAAYAAAAMAAwABAAAAAAACAAMAAAAHAAAAAQAAAAMAAAAYWNjZWxlcmF0aW9uAAAAAAQAAAABAAAAMgAAAAEAAAADAAAAmvn//wAAAAl0AAAABgAAAEQAAAAEAAAAjPn//zAAAAAkAAAAGAAAAAQAAAABAAAAgP////////8AAAAAAQAAAN6l9z4BAAAAOK72QgEAAAAAAAAAIAAAAHNlcXVlbnRpYWwvbWF4X3Bvb2xpbmcyZC9NYXhQb29sAAAAAAQAAAABAAAAAQAAAAEAAAAGAAAAKvr//wAAAAlsAAAACAAAACwAAAAEAAAAjPr//xgAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAEAAABVoaw7MAAAAHNlcXVlbnRpYWwvZGVuc2UvTWF0TXVsL1JlYWRWYXJpYWJsZU9wL3RyYW5zcG9zZQAAAAACAAAABgAAAAYAAACq+v//AAAACWwAAAAJAAAARAAAAAQAAACc+v//MAAAACQAAAAYAAAABAAAAAEAAACA/////////wAAAAABAAAA3qX3PgEAAAA4rvZCAQAAAAAAAAAYAAAAc2VxdWVudGlhbC9jb252MmRfMS9SZWx1AAAAAAQAAAABAAAALgAAAAEAAAAGAAAAMvv//wAAAAKQAAAAAgAAAGQAAAAEAAAAlPv//zwAAAAEAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAABUbvA6FaemOke74Do4TZA6gTLYOpTt+zofAAAAc2VxdWVudGlhbC9jb252MmRfMS9Db252MkRfYmlhcwABAAAABgAAANL7//8AAAAJnAAAAAMAAABkAAAABAAAADT8//88AAAABAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAQ3uTO3hzTDv12Yk71QcxO86dhDuqiJo7KQAAAHNlcXVlbnRpYWwvY29udjJkXzEvQ29udjJEL1JlYWRWYXJpYWJsZU9wAAAABAAAAAYAAAAFAAAAAQAAAA4AAACK/P//AAAACWQAAAAHAAAAQAAAAAQAAAB8/P//LAAAACAAAAAUAAAABAAAAAEAAACA/////////wEAAADfq9A+AQAAADPbz0IBAAAAAAAAABYAAABzZXF1ZW50aWFsL2NvbnYyZC9SZWx1AAAEAAAAAQAAAC4AAAABAAAADgAAAAr9//8AAAAC8AAAAAQAAADEAAAABAAAAGz9//98AAAABAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAIieCjtEoPM6zIP5OgV3xjosFgQ7+qsTOwl55zpbKvM6YZ8XO+0qyjoJ/CM7Eq0SO2aMIDuFGvM6HQAAAHNlcXVlbnRpYWwvY29udjJkL0NvbnYyRF9iaWFzAAAAAQAAAA4AAAAK/v//AAAACfwAAAALAAAAyAAAAAQAAABs/v//gAAAAAQAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAqzQ2O3QdIDs6/CM7Nm8CO3aeLTvLGkI7syAYO/bPHzs3TEc7Md4EO/GLVzu9y0A7uAdTO43FHzsnAAAAc2VxdWVudGlhbC9jb252MmQvQ29udjJEL1JlYWRWYXJpYWJsZU9wAAQAAAAOAAAABQAAAAEAAAADAAAAIv///wAAAAlgAAAACgAAAEAAAAAEAAAAFP///ywAAAAgAAAAFAAAAAQAAAABAAAABwAAAAAAAAABAAAAw8JCPwEAAAAAALZCAQAAAAAAzsIRAAAAYWNjZWxlcmF0aW9uX2ludDgAAAAEAAAAAQAAADIAAAABAAAAAwAAAJ7///8AAAACUAAAAAEAAAA0AAAAEAAAAAwADAAAAAAABAAIAAwAAAAUAAAABAAAAAEAAAAAAAAAAAAAAAEAAACD/yY7DQAAAElkZW50aXR5X2JpYXMAAAABAAAABgAAAAAADgAYAAgABwAMABAAFAAOAAAAAAAACWgAAAAFAAAATAAAABAAAAAMABQABAAIAAwAEAAMAAAALAAAACAAAAAUAAAABAAAAAEAAAAJAAAAAAAAAAEAAACacSU/AQAAALcXmUIBAAAAmoCwwg0AAABJZGVudGl0eV9pbnQ4AAAAAgAAAAEAAAAGAAAABQAAAGAAAABEAAAAKAAAABwAAAAEAAAA1v///wAAAAYCAAAAAAAGAAgABwAGAAAAAAAAcvL///8AAAARAgAAAAAACgAOAAcAAAAIAAoAAAAAAAAJBAAAAAAACgAMAAcAAAAIAAoAAAAAAAADAwAAAA==") diff --git a/apps/simpletimer/gesture-tfnames.js b/apps/simpletimer/gesture-tfnames.js new file mode 100644 index 000000000..ba0d58546 --- /dev/null +++ b/apps/simpletimer/gesture-tfnames.js @@ -0,0 +1 @@ +"swipeleft,swiperight,upup,waggle,clap2" From 0040ae9b8b352551eaf04bc7157d671e0af78364 Mon Sep 17 00:00:00 2001 From: Francesco Bedussi Date: Tue, 5 May 2020 23:34:59 +0200 Subject: [PATCH 082/464] fix: 3/4 moon orientation --- apps.json | 2 +- apps/largeclock/ChangeLog | 1 + apps/largeclock/largeclock.js | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/apps.json b/apps.json index 83b671ada..93a4989d9 100644 --- a/apps.json +++ b/apps.json @@ -1555,7 +1555,7 @@ "id": "largeclock", "name": "Large Clock", "icon": "largeclock.png", - "version": "0.01", + "version": "0.01.1", "description": "A readable and informational digital watch, with date, seconds and moon phase", "readme": "README.md", "tags": "clock", diff --git a/apps/largeclock/ChangeLog b/apps/largeclock/ChangeLog index 665c0df6e..2946d8264 100644 --- a/apps/largeclock/ChangeLog +++ b/apps/largeclock/ChangeLog @@ -1 +1,2 @@ 0.01: Init +0.01.1: fix 3/4 moon orientation diff --git a/apps/largeclock/largeclock.js b/apps/largeclock/largeclock.js index da98c6647..e118793cb 100644 --- a/apps/largeclock/largeclock.js +++ b/apps/largeclock/largeclock.js @@ -55,7 +55,7 @@ function drawMoon(d) { }, // 3/4 ascending 4: () => { - moon[7](); + moon[3](); g.setColor(MOON).fillEllipse( moonX - moonR / 2, moonY - moonR, @@ -70,7 +70,7 @@ function drawMoon(d) { }, // 3/4 descending 6: () => { - moon[3](); + moon[7](); g.setColor(MOON).fillEllipse( moonX - moonR / 2, moonY - moonR, From f5480bfa0fd7360669d2058aaaf96b7211356f6f Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Wed, 6 May 2020 09:50:47 +0100 Subject: [PATCH 083/464] Tidy up QR code customiser. No change to app, but now we don't have to store icon in HTML --- apps.json | 8 ++++---- apps/qrcode/app-icon.js | 1 + apps/qrcode/{qrcode.png => app.png} | Bin apps/qrcode/{qrcode.html => custom.html} | 2 -- 4 files changed, 5 insertions(+), 6 deletions(-) create mode 100644 apps/qrcode/app-icon.js rename apps/qrcode/{qrcode.png => app.png} (100%) rename apps/qrcode/{qrcode.html => custom.html} (89%) diff --git a/apps.json b/apps.json index 83b671ada..a18795788 100644 --- a/apps.json +++ b/apps.json @@ -534,14 +534,14 @@ }, { "id": "qrcode", "name": "Custom QR Code", - "icon": "qrcode.png", + "icon": "app.png", "version":"0.01", "description": "Use this to upload a customised QR code to Bangle.js", - "tags": "", - "custom": "qrcode.html", + "tags": "qrcode", + "custom": "custom.html", "storage": [ {"name":"qrcode.app.js"}, - {"name":"qrcode.img"} + {"name":"qrcode.img","url":"app-icon.js","evaluate":true} ] }, { "id": "beer", diff --git a/apps/qrcode/app-icon.js b/apps/qrcode/app-icon.js new file mode 100644 index 000000000..5905fa7e9 --- /dev/null +++ b/apps/qrcode/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwgP/AEX8gE8nkAn4FSngCWF6xfYDgIABHAQFPDQXD4YgDApxNDMooFOAQIdDAqIvWfcYA=")) diff --git a/apps/qrcode/qrcode.png b/apps/qrcode/app.png similarity index 100% rename from apps/qrcode/qrcode.png rename to apps/qrcode/app.png diff --git a/apps/qrcode/qrcode.html b/apps/qrcode/custom.html similarity index 89% rename from apps/qrcode/qrcode.html rename to apps/qrcode/custom.html index 5d372aa59..092b9ad18 100644 --- a/apps/qrcode/qrcode.html +++ b/apps/qrcode/custom.html @@ -41,11 +41,9 @@ g.setColor(0,0,0); g.drawString(url,120,230); g.setColor(1,1,1); `; - var icon = `require("heatshrink").decompress(atob("mEwgP/AEX8gE8nkAn4FSngCWF6xfYDgIABHAQFPDQXD4YgDApxNDMooFOAQIdDAqIvWfcYA="))`; sendCustomizedApp({ storage:[ {name:"qrcode.app.js", content:app}, - {name:"qrcode.img", content:icon, evaluate:true}, ] }); From 620cdc1de12047c7df0dc5af45604afce2bf19bd Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Wed, 6 May 2020 09:55:14 +0100 Subject: [PATCH 084/464] tidying up beer & poi compass like in last qr code commit --- apps.json | 10 +++++----- apps/beer/app-icon.js | 1 + apps/beer/{beercompass.png => app.png} | Bin apps/beer/{beercompass.html => custom.html} | 4 +--- apps/osmpoi/app-icon.js | 1 + apps/osmpoi/{osmpoi.html => custom.html} | 4 +--- js/index.js | 12 +++++++++--- 7 files changed, 18 insertions(+), 14 deletions(-) create mode 100644 apps/beer/app-icon.js rename apps/beer/{beercompass.png => app.png} (100%) rename apps/beer/{beercompass.html => custom.html} (94%) create mode 100644 apps/osmpoi/app-icon.js rename apps/osmpoi/{osmpoi.html => custom.html} (93%) diff --git a/apps.json b/apps.json index a18795788..fd834bbf9 100644 --- a/apps.json +++ b/apps.json @@ -546,14 +546,14 @@ }, { "id": "beer", "name": "Beer Compass", - "icon": "beercompass.png", + "icon": "app.png", "version":"0.01", "description": "Uploads all the pubs in an area onto your watch, so it can always point you at the nearest one", "tags": "", - "custom": "beercompass.html", + "custom": "custom.html", "storage": [ {"name":"beer.app.js"}, - {"name":"beer.img"} + {"name":"beer.img","url":"app-icon.js","evaluate":true} ] }, { "id": "route", @@ -1481,10 +1481,10 @@ "description": "Uploads all the points of interest in an area onto your watch, same as Beer Compass with more p.o.i.", "tags": "tool,outdoors,gps", "readme": "README.md", - "custom": "osmpoi.html", + "custom": "custom.html", "storage": [ {"name":"osmpoi.app.js"}, - {"name":"osmpoi.img"} + {"name":"osmpoi.img","url":"app-icon.js","evaluate":true} ] }, { "id": "pong", diff --git a/apps/beer/app-icon.js b/apps/beer/app-icon.js new file mode 100644 index 000000000..c700b3bd2 --- /dev/null +++ b/apps/beer/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwghC/AB0O/4AG8AXNgYXHmAXl94XH+AXNn4XH/wXW+YX/C6oWHAAIXN7sz9vdAAoXN9sznvuAAXf/vuC53jC4Xd7wXQ93jn3u9vv9vt7wXT/4tBAgIXQ7wvCC4PgC5sO6czIQJfBC6PumaPDC6wwCC50NYAJcBVgIDBCxrAFbgYXP7yoDF6TADL4YXPVAIXCRyAXC7wXW9zwBC6cNC9zABC4gWQC653CR4fQC6x3TF6gXXI4M9d6wAEC9EN73dAAZfQgczAAkwC/4XXAH4")) diff --git a/apps/beer/beercompass.png b/apps/beer/app.png similarity index 100% rename from apps/beer/beercompass.png rename to apps/beer/app.png diff --git a/apps/beer/beercompass.html b/apps/beer/custom.html similarity index 94% rename from apps/beer/beercompass.html rename to apps/beer/custom.html index 434f0f6a9..ab3f80b50 100644 --- a/apps/beer/beercompass.html +++ b/apps/beer/custom.html @@ -196,12 +196,10 @@ Bangle.on('mag', function(m) { Bangle.setCompassPower(1); Bangle.setGPSPower(1); g.clear();`; -var icon = `require("heatshrink").decompress(atob("mEwghC/AB0O/4AG8AXNgYXHmAXl94XH+AXNn4XH/wXW+YX/C6oWHAAIXN7sz9vdAAoXN9sznvuAAXf/vuC53jC4Xd7wXQ93jn3u9vv9vt7wXT/4tBAgIXQ7wvCC4PgC5sO6czIQJfBC6PumaPDC6wwCC50NYAJcBVgIDBCxrAFbgYXP7yoDF6TADL4YXPVAIXCRyAXC7wXW9zwBC6cNC9zABC4gWQC653CR4fQC6x3TF6gXXI4M9d6wAEC9EN73dAAZfQgczAAkwC/4XXAH4"))`; sendCustomizedApp({ storage:[ - {name:"beer.app.js", content:app}, - {name:"beer.img", content:icon, evaluate:true}, + {name:"beer.app.js", content:app} ] }); }); diff --git a/apps/osmpoi/app-icon.js b/apps/osmpoi/app-icon.js new file mode 100644 index 000000000..a2baf9e9e --- /dev/null +++ b/apps/osmpoi/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwxH+AH4A0PgYurg9kr0rGM4nBg9dsgADmUHGUYtHAAddGIJcgFpIxEMTsAlYtMAAZiaLh4AFmQwXLiSTaLiosBnMymUrGCYTBAAgvPCgjwaMh4raF/4v/F/4vUg4vulZgDgAAIF8EyEQUAh0cAAkVisHGA4+HF6gVBiwwFjkONo0HAAMOAAIvTnIhEiovMFQQADNgYvQroUDg4uGjj9EF448DF6a+HAAS+EF5CQCF6SMIeAQvFXYYwHF59eLpSOBF4hgKGAIvPskAFxKOFF80VM4KOFSBs5F6EWRY4xBF43+F5UyF6DuEizZBKwIuHSBQvXdIwvKMYsHlYvQW4IuPYAYRBMggvRgIvCFxwwCTYZlEg4vPlcHjkVFx6WJF6YuXMoTwCF58yVgIvXY4YvQrqqDGDAvvPYIvPsguaYQYv/F7owBF/4vfg4AGTIIAHF7gA/AH4AwA=")) diff --git a/apps/osmpoi/osmpoi.html b/apps/osmpoi/custom.html similarity index 93% rename from apps/osmpoi/osmpoi.html rename to apps/osmpoi/custom.html index aa2f39c51..82532f64e 100644 --- a/apps/osmpoi/osmpoi.html +++ b/apps/osmpoi/custom.html @@ -213,12 +213,10 @@ Bangle.on('mag', function(m) { Bangle.setCompassPower(1); Bangle.setGPSPower(1); g.clear();`; -var icon = `require("heatshrink").decompress(atob("mEwxH+AH4A0PgYurg9kr0rGM4nBg9dsgADmUHGUYtHAAddGIJcgFpIxEMTsAlYtMAAZiaLh4AFmQwXLiSTaLiosBnMymUrGCYTBAAgvPCgjwaMh4raF/4v/F/4vUg4vulZgDgAAIF8EyEQUAh0cAAkVisHGA4+HF6gVBiwwFjkONo0HAAMOAAIvTnIhEiovMFQQADNgYvQroUDg4uGjj9EF448DF6a+HAAS+EF5CQCF6SMIeAQvFXYYwHF59eLpSOBF4hgKGAIvPskAFxKOFF80VM4KOFSBs5F6EWRY4xBF43+F5UyF6DuEizZBKwIuHSBQvXdIwvKMYsHlYvQW4IuPYAYRBMggvRgIvCFxwwCTYZlEg4vPlcHjkVFx6WJF6YuXMoTwCF58yVgIvXY4YvQrqqDGDAvvPYIvPsguaYQYv/F7owBF/4vfg4AGTIIAHF7gA/AH4AwA="))`; sendCustomizedApp({ storage:[ - {name:"osmpoi.app.js", content:app}, - {name:"osmpoi.img", content:icon, evaluate:true}, + {name:"osmpoi.app.js", content:app} ] }); }); diff --git a/js/index.js b/js/index.js index 888d665e7..fdefa22d5 100644 --- a/js/index.js +++ b/js/index.js @@ -68,9 +68,15 @@ function handleCustomApp(appTemplate) { var iframe = modal.getElementsByTagName("iframe")[0]; iframe.contentWindow.addEventListener("message", function(event) { var appFiles = event.data; - var app = {}; - Object.keys(appTemplate).forEach(k => app[k] = appTemplate[k]); - Object.keys(appFiles).forEach(k => app[k] = appFiles[k]); + var app = JSON.parse(JSON.stringify(appTemplate)); // clone template + // copy extra keys from appFiles + Object.keys(appFiles).forEach(k => { + if (k!="storage") app[k] = appFiles[k] + }); + appFiles.storage.forEach(f => { + app.storage = app.storage.filter(s=>s.name!=f.name); // remove existing item + app.storage.push(f); // add new + }); console.log("Received custom app", app); modal.remove(); Comms.uploadApp(app).then(()=>{ From 39b7569d8d5e9412589fd7660e351ebb3c8f64aa Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Wed, 6 May 2020 09:59:28 +0100 Subject: [PATCH 085/464] tidying custom apps --- apps.json | 6 +++--- apps/openstmap/custom.html | 1 - apps/route/app-icon.js | 1 + apps/route/{route.png => app.png} | Bin apps/route/{route.html => custom.html} | 4 +--- 5 files changed, 5 insertions(+), 7 deletions(-) create mode 100644 apps/route/app-icon.js rename apps/route/{route.png => app.png} (100%) rename apps/route/{route.html => custom.html} (95%) diff --git a/apps.json b/apps.json index fd834bbf9..b2f850b98 100644 --- a/apps.json +++ b/apps.json @@ -558,14 +558,14 @@ }, { "id": "route", "name": "Route Viewer", - "icon": "route.png", + "icon": "app.png", "version":"0.01", "description": "Upload a KML file of a route, and have your watch display a map with how far around it you are", "tags": "", - "custom": "route.html", + "custom": "custom.html", "storage": [ {"name":"route.app.js"}, - {"name":"route.img"} + {"name":"route.img","url":"app-icon.js","evaluate":true} ] }, { diff --git a/apps/openstmap/custom.html b/apps/openstmap/custom.html index 50d6149cb..531858bd9 100644 --- a/apps/openstmap/custom.html +++ b/apps/openstmap/custom.html @@ -147,7 +147,6 @@ TODO: lon : centerlatlon.lng })}); mapFiles.unshift({"name":"openstmap.app.js","url":"app.js"}); - mapFiles.unshift({"name":"openstmap.img","url":"app-icon.js","evaluate":true}); console.log(mapFiles); }); diff --git a/apps/route/app-icon.js b/apps/route/app-icon.js new file mode 100644 index 000000000..8410cad40 --- /dev/null +++ b/apps/route/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwgIkhvgFE/wEDgOHAocDgYFEgOAAp4XEEYsB4w1E5hBKnByFKw8/AQNAAQP/4EAAIMB4HggBABHoNwCwUGE4kOgEYBAMAhk+hgIBAoM/hkEAoMIv8MC4QFChARCAoIMCDoQXChkcjA1EAoJBBg5dCJoJHDKYWAsCGD4AJBAAXBDYIlCsYFBGwUzPok+AokcsOOmIUCAogAWA==")) diff --git a/apps/route/route.png b/apps/route/app.png similarity index 100% rename from apps/route/route.png rename to apps/route/app.png diff --git a/apps/route/route.html b/apps/route/custom.html similarity index 95% rename from apps/route/route.html rename to apps/route/custom.html index 2417aa232..52b6b635f 100644 --- a/apps/route/route.html +++ b/apps/route/custom.html @@ -240,12 +240,10 @@ Bangle.setGPSPower(1); Bangle.setCompassPower(1); g.clear(); `; -var icon = `require("heatshrink").decompress(atob("mEwgIkhvgFE/wEDgOHAocDgYFEgOAAp4XEEYsB4w1E5hBKnByFKw8/AQNAAQP/4EAAIMB4HggBABHoNwCwUGE4kOgEYBAMAhk+hgIBAoM/hkEAoMIv8MC4QFChARCAoIMCDoQXChkcjA1EAoJBBg5dCJoJHDKYWAsCGD4AJBAAXBDYIlCsYFBGwUzPok+AokcsOOmIUCAogAWA=="))`; sendCustomizedApp({ storage:[ - {name:"route.app.js", content:app}, - {name:"route.img", content:icon, evaluate:true}, + {name:"route.app.js", content:app} ] }); }); From ec8950c230e5f4b228f25d3bbb84db9e1c502d59 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Wed, 6 May 2020 10:09:03 +0100 Subject: [PATCH 086/464] more tidying --- apps/openstmap/custom.html | 2 -- 1 file changed, 2 deletions(-) diff --git a/apps/openstmap/custom.html b/apps/openstmap/custom.html index 531858bd9..2db791844 100644 --- a/apps/openstmap/custom.html +++ b/apps/openstmap/custom.html @@ -146,8 +146,6 @@ TODO: lat : centerlatlon.lat, lon : centerlatlon.lng })}); - mapFiles.unshift({"name":"openstmap.app.js","url":"app.js"}); - console.log(mapFiles); }); }); From f1f1f11158217d0c9e3b814dcd93ec33b401f601 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Wed, 6 May 2020 11:03:04 +0100 Subject: [PATCH 087/464] Added image background clock --- apps.json | 17 ++++++++++ apps/imgclock/122240.png | Bin 0 -> 5239 bytes apps/imgclock/122271.png | Bin 0 -> 10130 bytes apps/imgclock/ChangeLog | 1 + apps/imgclock/app-icon.js | 1 + apps/imgclock/app.js | 66 ++++++++++++++++++++++++++++++++++++++ apps/imgclock/app.png | Bin 0 -> 1473 bytes apps/imgclock/custom.html | 63 ++++++++++++++++++++++++++++++++++++ js/appinfo.js | 4 ++- 9 files changed, 151 insertions(+), 1 deletion(-) create mode 100644 apps/imgclock/122240.png create mode 100644 apps/imgclock/122271.png create mode 100644 apps/imgclock/ChangeLog create mode 100644 apps/imgclock/app-icon.js create mode 100644 apps/imgclock/app.js create mode 100644 apps/imgclock/app.png create mode 100644 apps/imgclock/custom.html diff --git a/apps.json b/apps.json index b2f850b98..43215222f 100644 --- a/apps.json +++ b/apps.json @@ -164,6 +164,23 @@ {"name":"wclock.img","url":"clock-word-icon.js","evaluate":true} ] }, + { "id": "imgclock", + "name": "Image background clock", + "shortName":"Image Clock", + "icon": "app.png", + "version":"0.01", + "description": "A clock with an image as a background", + "tags": "clock", + "type" : "clock", + "custom": "custom.html", + "storage": [ + {"name":"imgclock.app.js","url":"app.js"}, + {"name":"imgclock.img","url":"app-icon.js","evaluate":true}, + {"name":"imgclock.face.img"}, + {"name":"imgclock.face.json"}, + {"name":"imgclock.face.bg","content":""} + ] + }, { "id": "impwclock", "name": "Imprecise Word Clock", "icon": "clock-impword.png", diff --git a/apps/imgclock/122240.png b/apps/imgclock/122240.png new file mode 100644 index 0000000000000000000000000000000000000000..14b3cf84bd84390d40f91a5340f36bf69e2d8c50 GIT binary patch literal 5239 zcmV--6o~7IP)or7GC;|U2XD+jPG0RFy$U$i!h=kR&Yg~#-n`F8l?2e*%^=jmH`MGTr3F)UyX`?m(>$4$B)&ztr7U_}SvgWE^&;yV?10FU9p z793u~4m~qxYd#ZUnD7e&7`mQ-uF4%FO4hB*F6<};rfG^Yxi@ww1wyLs@YRN9&R6Q-1kHMt=WpD zAHxl}@80I{JO3T7WC;K_ay9{&8Ffhl}| z!+W{B`+Vc|Vlezsz8@&1hEc@~cVy-?I--xxTr(J^S{5a3;8b@BY%5=Fs(zuj}K_ zf0d>ARD@G~&wIoCxbwenS=0C1!x;Ml#cXl-yK8`XfR+AE1$J0z^YmUe-^>sH6y)>X zH?xTIx#!{G_1`wmk9G`x1;Wo{m-%LX_~&wXX@!mR-*erLPJSYXUv9kOX>~m>YW^R(s?<-;TR1QzCHO@NxEPg)v8F!S1 zX-6E{7ZD?rE|*d;9V@>*4r%mYNy5Uay^7x##OKy?|}~)*QoO;4YDP zD)a5hGo1I&(3%g}=V+^%0?Ov+arkBfZ(TFvF{!nEow)j9AHm_)t|5H3gt5K71kM*| zSK{yey3GiC4mTysCH~p{sM)twgim6@$tT~;ci^zuoKe02G%oPf%sCuaiLf_ksMq%4 z;PuPk??E_l`L+X#y(k+KN-v$e07ZMP5f3_x5$tIJ zVd@{R6;^u1LVYK~#N<_k%@T@hM=q^WSk_0Xks54oH@6fcoH7o#!!tPBvv$aUowr(x z9A5IrQjEFV>MRvdm4exw)L?rP3q>NIQf^4bbL0HmN`FRl z1Hy`=RaNhb2*k_*}<$4Mcm1PYG zWeH)Ro&(Mez~{85jH6{My_3UZe9iWgB3hW~ska-c4vh9#DZiRFa=cNzTvLC~vR1uq zs_XgvifUZ0p3_y%VZ)f-Y||kjT(oQ@gq=H`j}`J4jLU6qof&@~Eur{3_s`UL!4u;# zV=C5JoO*+I(c^dKZ^Rds^)^UZn<5Ov2eNWagQh9wx5Zf6Y2#M>Z)xB8_{Yqwk{QMp zP7aVyL=(@hD{PljRdcl`Fjj;C|4s*TEkHgur)#*wc zCJxy1Y^EueW#4=oZBejZ?Jdq(IgyJKSLu(4R%0YKphfv3NsYG0gtuu?B&8MXRqrh= zh^-TUNja>wjhplDgk^+Da&-Ci&Nf_$xWz?22aDC3mSvWK2pen%TgcX9VB3o_k&g}c zkN36KA4y~7rdQ>qZ{Dk%&lGF3wdy+Eg%OQzhVr$T4}06)WqR$L)WBtt;qE3g%r0>9 zcDrRhpSWzqzF8c!*<)oc-glhm2s>0u2v;NaeufBU`U*3jbAkngeLq|i{T+2-*>lN= zi@Y(xlF$99aGAZ!z+b zzPxgtyhhGOigqP79%wzr0`5xD^NyvuI?v$(!Y(TdR(k9K4fYVi`@D9OqJs)i5PlCw z-XrrX$`y7Y%yx^~s;3B3zo8r-N;gCJ6cHZ!z_+Hz;Z6TM->2TXVw3Wb?68lFZ6A0! z^k@=VRqI`9`$ZpmqfrMWtf3#6Rt~U=<}qh zKP5X2!~ThL%N9^ZZKv1u@9zAL)8qZsni9gTbw7XyacY%4^vMU>Q6gA-dEJe zSck|l`e86P%Ms;Np44+)hFRm(y0=8dQR{D3Mr8;yf=lLHWQ4=dzsPasF6**Km~k~1 zul;;{&fy--`8?tYt=w-GeC`B!qBTOp2vhEtWq&@J#BLQ~#-LkAm=P6uSQ0lP>~)s3 zC?I?rtTbN_ew0VXuLkbHFcN@VPvqr$FRh@SndiS%f4YLM(tNn*dii}p+OPBM07U9_ zd1Y*7dX)M*L0IG!>r2O(!zseXBitqkOOM3XbxE)(l2P0}A_Xm4E$)1&q z<6+^<`RrOAahCmwZg%So_6Wlk!VnP#K^VM5%we9(Ipqj9r+_eX_>#oWjE=&K%oipc z?%!oxOvXI>Fnk@(crOhQF7;hr^pvC`+KVqbeYyCUQ{Kn=*Gq8A4dgLeTFKLPxWzWljHL7N9 zzg9AKNy$aD&&V|@O^$%%Oc6$XP~s(o6AnWgtX6!}#J4VtzqgloB=n5;s&QtXtP3)X zINIcR2Xh+bD)z(UFBb8&phQX**FOcT%VoHhwgKTo62l%22RTH>Ap6eZXBq_$Mqr(jLp2QC%*Fi+Cu((@O=oSymx7C%PaZM`2U_2 zE2a8jtdh`z#H03jAzCZ$6YSM$_IvT~k>+*F`x4Y6-64&x0ot~$r=x!@v|~O0XpakB zr~G!<-`ryKpGdWkz%51}E7vLYuLV@)oVm)coz^c1AC#A+q5J2NR-17+Jg;RB8lUZ# zt^LlU3mqS;K!`_}Q%}n^*n?I(MmVsW*FX4SI3lmSVLIcmAPiH42@mRPI9xjTKmQ*g zOnZc>QnAL}OE<4M*ud_vXVP;kJwsS}m+Svud-noW{ojBS*=~x1)&5beO3$kEwy@Sm zCDw(pp$+)w&> zszdoqO{aNI2lPWQos>M^A2`u%FqV0K7-1bbr`75>C~2|RNB5 zrS6b7wW#%~edt))>PaQ-YtOPy<0isNfj(%rv`z?FvRj0!Xgb!Yp1Ht;!@xFiz3nw) zbTDsbTBiM6MpmJE9=4+e$q?rLtzlJOuLyY1R}W+V!mGMqlk0H~=&9STV5Mu_EyP<| z@I9V4ce%~Q@%Wp35~_YavZDoonWywQQ&Hv;7j~3HRRs3jz!C!{wiMHfpS2j=)d}LL~uIKI+RMqt@;#y`tdDP>UWiw z<=fN3>feX(+F`p4lv4zK5zKgbVPVP3Xc zIgUHx*YDwnaZ>U#_3UhZ)vMypZQSB8Ovb2iWmU=c6&GnIl(8K!1SyztU_9>6!Au|K zdNI_TZodLwEcoH!_%Kq3$@ntLQ4HU_0O?g>UnPB!^LeTZUy%<}`(du*+?2vFY{a@EV48MTBv#r3sRP%065%=RRgOa^wTgNby@Qpmluj4xbRSi(YoA9|`=~ z_BT;4R_xU5u5^C3cu(hbe8jmL?aA!eR=!)B9}bM^rW_6)S1-vcEZjm@Pxpo>jr9jW z-Y*b4J;rHbJ^0<$F6DB0i}#}(TbFWp-N&d2UtyQk8ht#zP43`#4HMnK4ob0a;n=bG z8T~tib&7D6c;Dr=Z|N_8|5&mIP$vlIe9%KA2TT5~&ZBtD&_05-M;9}esXZ1+Z6i7& zHugc_A-6w$AHsh>$Qumb;2hA#34aHBn)_}%kashCSwG{G2ZU?f6FcSc$QJZSs3pyZ7S4Dka_u9i>oj)s$k@uGZ!h|Vgn0Zuv zj;w>6|Kj>@^7)4JH!2Z?`+^F~*Nu4=F;d>JT=FgS8JXsKqeg5hm4+Uo!t1n;TzsLKTo^V?(E z*UvsNJV$yn%VZ8oyltgDj`YO%D=Dbid}+`UvFa?jy*8R!@&BP=8SkBfo+1DM002ovPDHLkV1gJ`jKBZ@ literal 0 HcmV?d00001 diff --git a/apps/imgclock/122271.png b/apps/imgclock/122271.png new file mode 100644 index 0000000000000000000000000000000000000000..cd9b5e45f25629e7c71f563d9f9123a978c122e7 GIT binary patch literal 10130 zcmY+KQ*b6su=k(Xwl}tojm;-cHnweNW81cEI~&_JHnws0Jr`en=c1>(W-g|?s;8>! zKfiFGyaWO)E-U~5K#-CYRr=>|{#hS1=)bjD&cpnlgRz&?bOHe2(Ec+JKt>k!zfCA- zDLFByLkI{AC>BytnhF5m2S7?xNX32q(#Il>Y{X^zS=UtUk(t$t5wo+8K@b2Z2#^8{ z3BlyKhvfxAQ7JV^^5PpLHi>FDuOdoN87n1_0}WSUsV@XzsfD3TLS?lmhQWq}#z}}H zpr8ZVFlDsiZdP?Jd}ih(R84wLh<-jlJTNc(TwvAGdx-tnQPIfK>-k#a9ZQq@N#%H` z!MN)U>v$M69ZyQ>9D~oD?{qi{ll^~U3HeieZl1uY(jO8tLXfE1nb)giWR_85Fxf@` zH%|^BP?-a}x${;Wc`d#84#%fOh(tNv0%6glN_=ie(2@kmOd6>JG+A>msY5uJXgR$C z0__BuQ+(PWp!0C%I4g-7uYRdoORww7!%hO_9}y&QXNG(yI!#QLM%*~4*94}yh9ILU z(`c>VU6%h2s<{5NH9Q{MAfBiCGFs^=pMGqhtc}P1@iL4))~GyVu@+75?uK?bgxK_AN!o6smqZY}bMN*N zlk9lq(Ugh2f07I#_+;9*BAvmQ(A;MFyUn^k(1#A-G(cMELaJnkp zlyL(`EM44aLXlwf2X>v0@zRP$GwhFS%F{J4sllI<8viVwzk zX&)dMJcuQtJ*&G;MVvy2E^k-iG}do&TIi!f>JU83YJes~ho`?QiU436ATxdq;UK+P zGYx_Z4#0kD11BJALB>CcozE|!h3F!@A_#m1xcP({s zZwW?Ae~fqvxAHWZj#QF$ui>!w!RPcAxxdaTS^F*jFf`S~B1s@DX8`i2LFtA8g(5dX zN>|$M&bR_$-J$?MB0*XnU#I(HP^>tUC7%;71#=EdP$91*V)nT0Ui}Z$Qs0_tS|@FbbaiJ~m5Dh?M`+iUF=D0BEqb?cDNonGo(T5+g0 zk;^wq4-6QJOA#?CQ-79i_kKTRhlh7;jGgx)wsDL(u6lC=QB8Z)J1ZWf+U7 zlYVN6XW=jt;L3HV5jkmdcRmHdLlRRT3gpup>xVVyNgRO>=@rL5nmDN2FE?_n)JhDZ zFr5GD$TluEtkB_Oce+_?>XZic^r>pZLxY6wD7)XTxb3=Nn-*(c6;h~Y6V>eq=ga&F ze|g<$4$0Uo!nUi5lC2WO-2h$5DQUGoL5iXo4Ub@By1R zgEQbhfC#I#PJYAu(Vj{=@^^Lgo(*A}nUR&~7dvSS$@!$> zRDrw&_ahPdU*T2)fO*L}0iGN%nLA=jx&g=EU4Y@5#!(2!0)%shH9LRUzYn5LW1xGQPZ+Sqv7gWTCEz?>KoBo51{- z>-=-CSSwUr{g6C1cB(AfOIl8i5Bx-1kBm*sVEZjS4 zN>5ie&BnngUB=>Far8V6t>I%LmhI7?SC6c0;J{!&2zH7VC?#5LCMLs8QBv7%>Lekh z*H+Xf3TnB?ljM2wdP$|tse%udXFp9X#G_U4eR>kvy7I5u6H?Ini89|J&^-4I zWQ%K}rng0pQ`F==K5puf4$x@dD^ia0D{|WMpYOX={_(%Ml_H=%V2qB=K(i}ewqG^# zmi)LR&>R-N&whmj=RxdUEz~5--8KlVOoxXV?C!;zX5ey)08m9Y3W~R$K4eZJj1raF zF&kFtZ~0raIKU*4;i>)m%~<_|iqHt=WVy~1Apl13Da*;$^zJh%?0tj&eJHR_#=|TW zb!=B9R;9!E^soF=?8#I~sGa7*YAMwotw+McGj^zM{cK;f8|W|abkD~xnz#@vnz;?W zFQ8x+7czv22EVSmE{%c_ey#EfYi8VQbK4B<;;P%~M?LzhPi?s_y|W%*US=V8HFmWS z)Q{f>8lz}atiROmzjJ0}jCn5ltY0#?YP8N#%Z(^|iJODHN?Df7|7oO!t5*^rANDp( zlWTbm@AD5o5!d0NW*?GNuw0vzH2)5+z@(5+CY#2Lt*>_B0Mo!0nk+da4Ob-seZFwE zuR8-(!0+Dm-jq*02OAW&)V?T{oD?W8B{+UWYyYWZ_X(FxxMv+=S`7#cIlW^Eo^5vv zST%+^uU63gWk(?egS=sO*_ID0W)yDWFB6ZQL;TLchiieZ#x)qzq! zXRG%FUKFN7EHlr}1`|?!Y28J;JT^(ik~kd$24U1-S#4~JSU3BMfo^ z)DUr*Md})iETzmS5fhUIIpwX(46zj1+Cu)ff*fdU@U^#?HTzTW&VI`nG!NJP<#X6u zSPjL)QHgO^!GVy(}gkK(PCBW{xEm`3h5y&+5!kH2-a146lmP)Lwa)o!_s1~NSAk3(2S5<_j|ybQQ|XyPR>_`U*O-J*zjZazese; z{BD8=H24MD5xb{PZG$V;M0ijrH@2JC%+5bN7(eWe!dd*|y*e2tb7W4N0k@O!6)8&7 zA7Z=5c(k5zdP-3FS+m@Z$)pmw;LO5ryQ2I^3tZ1;N7c_Ujo>r3Kxi8|<{%Z-_|PHG zz83=$BdF^kS@DWP_8%ou$BMf(u~Sek`AHa*VG{o2Z`AMdr$5XpMrtwQ?`n*=NmF4W zx_WyP40k=fEWCX$Zd8HWbqAA4oQXazgB!(Ks4gX(?O4(pD-1vKNUg*N%QgZ=$XDh>i$=>9hXG zyuLimTWRRR=b#sAzg3(Rc&oe!=2ITP2SL6Q<~Od^C0+uskDH}?swwjU!bGdu>e5(jci6AdO!32@aBz{zT9W;HvsTI&mD^KaC5m)Unkhj&?^Y(& z3WP{Lr-4SU+Z!nzXJhm~7FJ0rC0yBB;_@%CFtbqzcUKAze=Q1yazAl_p3$}s(Bzx7a}oh16EiG-UxCx z4uz_o;*kiTfZU!^%8C9M$p;&u3_nZhc{{+7dnI;w#cP>(bE?(T27O^%vjl|eMF*Tg8evClzzwT-Q`W7vvbG>iq z2kxM*-_$72$`1-oEX}6iI(*~}Oa=Rz^Do%}Xd}l~5U@K*zfv9va(8TpK*~gBR6-&s zIl&VjfDKOxvl|8LGJkJ2_{}P2L$|XctVkTKlagAaR?1DAeIBbs-mk#zhv~n|){PA+ z3i0H>AKpy4hbsLO1w3_pyaNk-ho=;pU)EpqFTd{^pZt87wxvVgIMdXhx(^20b$$_f z9(a8fop5sgF%GZJS>v$^P45M7hQn+8l_(y9W3~W;jQ1PK&u8d-=wxS6#;ZFuh_Lcr zUPTaFjf>hu3ax_N0)5bJ;F!7+helDkUVYO(_`w6Gdr^w04 zr`6HoG3FAKW`mng?C)YWl;lM@{2h*KqM7UtNI;uMfa=j93 z<|5GB+ zMRXoo7w7-p^YD8p`?L0$4JI&gC|1BjL9N-CMY`2#@22qkWrl1PujYIC;!QRJgeNgA zWy*_472x+wktvPTr7)Rv25Kys+&ne{nal=%Y3{QS72I%Nnix~*4+nDg8Gu<6V$fDD zzzgi?woNWCKx>2#AfZldFsCD7opKbd4mMymPGc>ZeOYxsULPMS5lqZJN2_Nq_%)(a z4t~(D1;lj@2vZ@+c!y1~_Wb3_%2qzoSVJS~=6ib23wKznPN;p`U`1FP6EB&}k)bGY zM#JnNpiGYFV{IVm@%;NHJr_iuuefH3-%y2xIoEe5u?j7jG*w>n4vmqZP0Kh2pZRx9 z=Ph1|(feI5pAP}8VP&`!zr#WQ5!&0}&K`43Y2&&w{XQSHW|ZHR+@R^-tYa))-%^tn zInf^`i`GUArWC-jCOKL16XY}OMtchy2Lmz$v?<3AO?I$6*f|m_@I}my%d|OTnjr}q z^d^o8XBc8xX%m;m&xI&}rQyI^RgFqogEN@iQ5B0-#*l5v@!^^ zXuc;1dI3u69a|;{I+?$J$fcOnKrvOaU{txE6?yck4TmBM2eAcTxgv~jTB8B86ZBrb zqCW8kjR&MY%s5-O-ZChTKm#3#SseoayBVav%@stffM$`IqHgh?3p`iJ^84bM6W)4&cdHv*EJTY6PdmC7*tk`(zxHZ2P>tU7FyjqU9TR1lh{9fMee?DN3F>4 zlis)DkTYE$YO21UF0oB*28KtmIo>u%>H?yV&wgeYEcj0UX3odsqf_+neF;YKeHCRO z*3Vq{iEhU4MW;8M4%>VwK$CjIOimjvm37x4c~0^2_mP1@u;ea6%2BOq{mjSd380U{ z)z-u@f`RW1iRg~MxG}x)&3+*L2>Iz5*IvCyE%WKI{@ZW{~GGQkT&-l%|* zZLF46rSzymp~@W2;UQfpUkPlBNfG;yg2q;8#NM=^$VQf(W#G^t-f-{xL7*5fOxAE4uKV$Tn7^)_ zPdJ4GSvIiPEE4Qqo`bpi(8l=v$P`LE&R^)xrslr8~(pfso+lH?u zM(3vpZi!TRys4jW7|5oV3m?4%#q=ejX479(Y+c)cnC9dYUw5Q}x2Y9xt2ZBRzq_;c z4hbH0++_&`-9l8GZQr~>JscWzfp?X5U0zlAuJy)zG) zlPiXi%fYd_3ys?~C6ukQb!8su^|%Qhk~}Y7{^jL!!h+w|CT$`~rgvxbJi3j_)JOGE zH-Sx+Wr+9NEpKkCbUC1}KX+SI4wL?3esRJfXVY)TP1Eu+q$ruqMK`cM*M0Cln{k2B z2Wvu#r}tZK(}q-8i$Bv;Waj&ZKuu9sgu_~>5i&i&)h?}oaDMM~1e$D4GrjCUiR5Zk zovWMIB?S{$Eup+Lvwlt(0K9FUZWYL9A{1kY1eMDWN+!GFDClJmG7O8n3`^C-{qS|_ zX&4p+m1y5!_$M4}g?!(nuIM&{(u^cg?SI$1T_-S_4d)WF(}#FoGwfW_$7b!Ut!J$_ z{;hL%a*RPI@_O|ztwHOm+CRQS*wTH>al|?)&~v*aUC05De!RbTXhnWMgnXLb4&n&k z{l0!+slJ?WbFtK9x$nW+f$x)6#6@IR-7`(GD6+Q<8V+;+m3@Ysu1Jel9V2z<+4c$3 zW+RDthQSAxmJaG_!8bdEIVxH=Kii3m)308KPWwAgG|_0)r7P^9EYLE+sikKBT3=GaLXPuX;x$Xh83y=QXKUD^BG4@cuM@(@qMFLC8r%3- z5d5HtZMDDyM6D1PZH_zEhYIsuH2!+dC?Xs{Lq7|$ws_@}J>{aTT=y*I^$QFP7DP@i$)QDveOg*XXTScXv^5%#@aQTAN?MO zPm&t=o6%{61U}|j0biEa&FdidF}WS0unbZQEqaf$@3azXinph0h%(|laACiM4&tw= zFAde=IUcKe)P7>7oXkY&+l+$ux35xCGo!^zH7Z2;Bo;s0cIxdonuWo^(9Xw90%g!Y zGqLnQZcbLdqBJ$#Cim`n%fSx*?yWm4_F*Xx)@($2buK{?RS~KVbcVXw=b|03Nt#Zo z)0Tpo^lGdl?7GSObo-5;+vU8Q{_kgtQ0x2%o?ixiesZKZrOUFX+RGA=fLZyo@5p;g zcXM;lm-Hhv0I$k5T^ubOT*Pfii!;;Q$zIz@!A8Rh( zGXfxY{pm@boQ+yi@i$Tnbj&+5Md4l*9749;R$iPWljvh|jmkN=G;jboAxm03rqA;@ z)QBmXEKE(3CZrYi%JZ-X=LPuK{%gl|7jM4~HO;N{a!$HKSbS4{Y1i-R@aOaGlyq28 z4O;C9sPM=A`34bSk{J_B!t$T!%VD^?%@rK3M<>ETMH>~>b_d2zHxDGepzwD!z zEk1JY$bAS-N@w`zDf>TEj$XB7yeujPs<`gA%|~czMq4Z1FZIc`%-=3gp2O^b5_z~C$wZ}s@?jRR1Eyi4|g~_#y`K7-5wN)>K={`HPCOi z?@YS8okZ`(7GeSRmXKMnlio7{A1PdIz17_vA<)$q0^Oh4Ld|0C2JA34LbQ8-k?H$@ zL`wLe%(d}N{E9kd9dg+H838i=#O|zRsGhjFJdf25h<;6%Hql!{nqT`b#IT|hz@zX} zvx$w?K9JFdNyU5jLJi-S0n~FebT!ch_Xb~JAXBO>z3%V9n}~mO0Qr9`K+V2DE+GTQ z1aFs@yIHGLBSgMe2t%eJpMbUnKT@womvx893lhyt0OUF|J940rF@+%tHmJWWD8xZ^ zhl!*rG5lag9)POhMkupXKS5L z>4F7+^It3_Ug{bh(eK++b&18}Alp)!C9vaV9<|@ZIX19mv(76e6jndw6V&E- z6Z$c^vKM+9eg4S&nK}&6+nhwbokS@I00-kO#VzxVDl&sVVE@Ep|8lWjGIBVwv;jX; znm^~fa*t+|{hs(tR@WL`>g}|btjgvH3xjtA00=9x&2ecr<%5?~HnJ0k-B`ge=ZaJ%z zkA41YUeqQ}p9;HRmeGd44qR16ru=A=HBy@z8tF`V{z4e~(_`uA38A*onSJMeq~bl@Jg-6RYU9flfQBA23|}w~A}9(U zKk^F{!h+5zcNN}0IljbSYj~vT2fPNN+F&u;<|Kp%N;2sg@kCCVyTO(~F`9Sn*N46* zqVMwqCt#D!d(gRM#u=wn2*(Pjiog_j<)TQzNV^`KK#vdObQNm}Q41tr`Yi88)Nj+DiDL}u z;^=D<_%|obe-0y7G$bslLXrFz*ccdH6|Tx)p5!U|U6EfuoNo(Lp5ma-zmmi3>jk^E zm3mP6(3Xg5@&Vd4=|>vs*ysWeP1I>=oH~Q$V1k6P6f+1J8!=|{DU}|6fVK@F1Wa#0GadMP6 zg_yx)>fDZ1jEBFI<>y8nK7B7e3b9rKks1^wg$QeV_`DeLkcCey|Lht@b6uH|J&+hT z)c-i(H&$oTOrV=|tZFd_@B!a``m2aIJSJ$f#u(-YSwM*PIiGsb&*9W*6oF+K8=x=A zshqtklqeAi)mK>AoRpyZ7h+eg9Iq!XTkB((*U&NupKgq=FqC9__kNK+>}?X(f2Qxd zG%YViQPM!EZ5@XV39#RiEPv%U^P}=$XPDk(fnA}DxFAmPU{UC=^fMTv6lwnL$U8*# z_QmzWfetZ5Ac@;lV2^cCh`qM^_=^yX$5iPY3Aw4%MFUKHg`G9Cyex#*ovJRTSbL-H z;zaB}Y3w!T``M$H-9D^q=2TzTN0n7{F#s-RK*BcXELW=3&+&7UXz@Q_8Yc@qz@# z++{JlZ<6^D(%4fIdK$u;MuRQV>v4u)Or&7w6;VjC$L)CaZ$U7>aq6I1Djptn`caZN zqA1*=jAGNve_{ + if (secondInterval) clearInterval(secondInterval); + secondInterval = undefined; + if (on) { + setInterval(draw,1000); + draw(); + } +}); +// Show launcher when middle button pressed +setWatch(Bangle.showLauncher, BTN2, { repeat: false, edge: "falling" }); diff --git a/apps/imgclock/app.png b/apps/imgclock/app.png new file mode 100644 index 0000000000000000000000000000000000000000..237f3f82a41dddc7c54c01b503b52c1c8bf61825 GIT binary patch literal 1473 zcmV;y1wQ(TP)tdR80nLSDm<#r%F-3QT3VTt&zPMa1d-F~!;mD@_vC+(Ti6XVu^VPFN8aq)(?yZs z^QJnthvdxaGuHcC&p+}FX6IT$m+sUtuV^mIr!B+OOhn7ah{(O(#+DsW)PfbYxbp9> zT)J~PXTOD>6oEjGJsT;H*%2dLT^l@)5GO2*lgHPK&U8E15fB1I{K?uU@wkXUfg=K; zRN8of4M=&+l-9lK+TihYJJ$p%ODkDZwi-h-0FdPeusu_;J=2io2LLcMgEeKVsVrTY zlTS?%m~k!G5}NM>cpQkPZ%!r>Pd{6?1f=Zi_D^OoZ)vag|9W(txsEnl=2n>(dQzG7 zFc{^QKg=zE7{jBm{DnePrMFcG`V~>GBXFs;j?1m}gkm9nxqX32#>8Zs&*S65?TdtB zA?jK$Q`eeX4iq}%)7BMBzMHy|oIDT=X=cBJ&2iTYe^`Sb$)@ zfce8EV`yM#f+=~K-T1p=edHtHrY+KfQRe_;_R~48# zn3_NvApuIDEfC|S$!7AKor8QJhgzsdMz3qAyTdWLDIDV!kjW*~Rq&`_r~*S1n7Y8L zx(`*SWuqwI%S*^dbmU?FoQtiiv8vAmONHcJ2^)cBne2rCPyB{u>H<;A|Ss%T$TU9h!b#P^SR)3Ey_Csk#RzgN6OR$UJZ1mm!JTCyBQ=VR3_$Y z@kz7at?GO(wAQv{fb*`LcQ`Rh@$~V%<2r0ikv>|_s8(*VBzzHWAiT%ZqstE&DpW_(E bIQrs0qsq#k&i?9k00000NkvXXu0mjfxd*+I literal 0 HcmV?d00001 diff --git a/apps/imgclock/custom.html b/apps/imgclock/custom.html new file mode 100644 index 000000000..b41ac81f5 --- /dev/null +++ b/apps/imgclock/custom.html @@ -0,0 +1,63 @@ + + + + + +
+
+
+
+ + + + + + + diff --git a/js/appinfo.js b/js/appinfo.js index ae48ed199..776142bcd 100644 --- a/js/appinfo.js +++ b/js/appinfo.js @@ -1,5 +1,7 @@ function toJS(txt) { - return JSON.stringify(txt); + var json = JSON.stringify(txt); + var b64 = "atob("+JSON.stringify(btoa(json))+")"; + return b64.length < json.length ? b64 : json; } if ("undefined"!=typeof module) From 8ad50eccf13bc6f0dc8a55beb11b185896b7da48 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Wed, 6 May 2020 13:53:22 +0100 Subject: [PATCH 088/464] imgclock: Add configurable color - and 'this is fine.' --- apps.json | 2 +- apps/imgclock/ChangeLog | 1 + apps/imgclock/app.js | 1 + apps/imgclock/custom.html | 8 +++++--- apps/imgclock/thisisfine.png | Bin 0 -> 18937 bytes 5 files changed, 8 insertions(+), 4 deletions(-) create mode 100644 apps/imgclock/thisisfine.png diff --git a/apps.json b/apps.json index c6296e585..d3a379785 100644 --- a/apps.json +++ b/apps.json @@ -168,7 +168,7 @@ "name": "Image background clock", "shortName":"Image Clock", "icon": "app.png", - "version":"0.01", + "version":"0.02", "description": "A clock with an image as a background", "tags": "clock", "type" : "clock", diff --git a/apps/imgclock/ChangeLog b/apps/imgclock/ChangeLog index 5560f00bc..c0d72fb67 100644 --- a/apps/imgclock/ChangeLog +++ b/apps/imgclock/ChangeLog @@ -1 +1,2 @@ 0.01: New App! +0.02: Add configurable color - and 'this is fine.' diff --git a/apps/imgclock/app.js b/apps/imgclock/app.js index 38991adc9..707f93c75 100644 --- a/apps/imgclock/app.js +++ b/apps/imgclock/app.js @@ -27,6 +27,7 @@ function draw() { // quickly set background image new Uint8Array(cg.buffer).set(bgimg); // draw time + cg.setColor(inf.col); cg.setFontAlign(-1,-1); var x = 0; cg.setFont("7x11Numeric7Seg",3); diff --git a/apps/imgclock/custom.html b/apps/imgclock/custom.html index b41ac81f5..c7169b7ab 100644 --- a/apps/imgclock/custom.html +++ b/apps/imgclock/custom.html @@ -13,8 +13,9 @@ From 0541a66640195475a617843121d8289b02091c45 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Thu, 7 May 2020 10:04:24 +0100 Subject: [PATCH 094/464] * Included image and compression tools in repo * Added better upload of large files (incl. compression) --- CHANGELOG.md | 2 + apps/imgclock/custom.html | 2 +- apps/openstmap/custom.html | 4 +- apps/qrcode/custom.html | 4 +- index.html | 1 + js/appinfo.js | 28 ++- js/comms.js | 30 ++- lib/heatshrink.js | 100 ++++++++ lib/imageconverter.js | 462 +++++++++++++++++++++++++++++++++++++ 9 files changed, 610 insertions(+), 23 deletions(-) create mode 100644 lib/heatshrink.js create mode 100644 lib/imageconverter.js diff --git a/CHANGELOG.md b/CHANGELOG.md index 12b675e3e..bd1552747 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,3 +12,5 @@ Changed for individual apps are listed in `apps/appname/ChangeLog` * Rewrite 'getInstalledApps' to minimize RAM usage * Added code to handle Settings * Added espruinotools.js for pretokenisation +* Included image and compression tools in repo +* Added better upload of large files (incl. compression) diff --git a/apps/imgclock/custom.html b/apps/imgclock/custom.html index 1200aac1b..1506aa7d4 100644 --- a/apps/imgclock/custom.html +++ b/apps/imgclock/custom.html @@ -9,7 +9,7 @@
- + - - + + - - + + + diff --git a/js/appinfo.js b/js/appinfo.js index 776142bcd..6a91dce2d 100644 --- a/js/appinfo.js +++ b/js/appinfo.js @@ -1,7 +1,23 @@ +// Converts a string into most efficient way to send to Espruino (either json, base64, or compressed base64) function toJS(txt) { var json = JSON.stringify(txt); var b64 = "atob("+JSON.stringify(btoa(json))+")"; - return b64.length < json.length ? b64 : json; + var js = b64.length < json.length ? b64 : json; + + if (heatshrink) { + var ua = new Uint8Array(txt.length); + for (var i=0;i { // Load all files Promise.all(app.storage.map(storageFile => { - if (storageFile.content) + if (storageFile.content!==undefined) return Promise.resolve(storageFile); else if (storageFile.url) return options.fileGetter(`apps/${app.id}/${storageFile.url}`).then(content => { @@ -52,14 +68,14 @@ var AppInfo = { let js = storageFile.content.trim(); if (js.endsWith(";")) js = js.slice(0,-1); - storageFile.cmd = `\x10require('Storage').write(${toJS(storageFile.name)},${js});`; + storageFile.cmd = `\x10require('Storage').write(${JSON.stringify(storageFile.name)},${js});`; } else { let code = storageFile.content; // write code in chunks, in case it is too big to fit in RAM (fix #157) - var CHUNKSIZE = 4096; - storageFile.cmd = `\x10require('Storage').write(${toJS(storageFile.name)},${toJS(code.substr(0,CHUNKSIZE))},0,${code.length});`; + var CHUNKSIZE = 8192; + storageFile.cmd = `\x10require('Storage').write(${JSON.stringify(storageFile.name)},${toJS(code.substr(0,CHUNKSIZE))},0,${code.length});`; for (var i=CHUNKSIZE;i { // expects an apps.json structure (i.e. with `s }).then(fileContents => { return new Promise((resolve,reject) => { console.log("uploadApp",fileContents.map(f=>f.name).join(", ")); - var maxBytes = fileContents.reduce((b,f)=>b+f.content.length, 0)||1; + var maxBytes = fileContents.reduce((b,f)=>b+f.cmd.length, 0)||1; var currentBytes = 0; var appInfoFileName = app.id+".info"; @@ -37,19 +37,25 @@ uploadApp : (app,skipReset) => { // expects an apps.json structure (i.e. with `s } var f = fileContents.shift(); console.log(`Upload ${f.name} => ${JSON.stringify(f.content)}`); - Progress.show({ - min:currentBytes / maxBytes, - max:(currentBytes+f.content.length) / maxBytes}); - currentBytes += f.content.length; // Chould check CRC here if needed instead of returning 'OK'... // E.CRC32(require("Storage").read(${JSON.stringify(app.name)})) - Puck.write(`${f.cmd};Bluetooth.println("OK")\n`,(result) => { - if (!result || result.trim()!="OK") { - Progress.hide({sticky:true}); - return reject("Unexpected response "+(result||"")); - } - doUploadFiles(); - }, true); // wait for a newline + var cmds = f.cmd.split("\n"); + function uploadCmd() { + if (!cmds.length) return doUploadFiles(); + var cmd = cmds.shift(); + Progress.show({ + min:currentBytes / maxBytes, + max:(currentBytes+cmd.length) / maxBytes}); + currentBytes += cmd.length; + Puck.write(`${cmd};Bluetooth.println("OK")\n`,(result) => { + if (!result || result.trim()!="OK") { + Progress.hide({sticky:true}); + return reject("Unexpected response "+(result||"")); + } + uploadCmd(); + }, true); // wait for a newline + } + uploadCmd(); } // Start the upload function doUpload() { diff --git a/lib/heatshrink.js b/lib/heatshrink.js new file mode 100644 index 000000000..8e4e9a8df --- /dev/null +++ b/lib/heatshrink.js @@ -0,0 +1,100 @@ +/* + Compiled to JS with Emscripten by Gordon Williams + heatshrink_config.h matches that of Espruino. + Source for conversion at http://github.com/gfwilliams/heatshrink-js +*/ +(function (root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define([], factory); + } else if (typeof module === 'object' && module.exports) { + // Node. Does not work with strict CommonJS, but + // only CommonJS-like environments that support module.exports, + // like Node. + module.exports = factory(); + } else { + // Browser globals (root is window) + root.heatshrink = factory(); + } +}(typeof self !== 'undefined' ? self : this, function () { +/* +Copyright (c) 2013-2015, Scott Vokes +All rights reserved. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ + +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_HAS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_HAS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_NODE=ENVIRONMENT_HAS_NODE&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+"/";var nodeFS;var nodePath;read_=function shell_read(filename,binary){var ret;ret=tryParseAsDataURI(filename);if(!ret){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);ret=nodeFS["readFileSync"](filename)}return binary?ret:ret.toString()};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){var data=tryParseAsDataURI(f);if(data){return intArrayToString(data)}return read(f)}}readBinary=function readBinary(f){var data;data=tryParseAsDataURI(f);if(data){return data}if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}read_=function shell_read(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)};setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function dynamicAlloc(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;if(end>_emscripten_get_heap_size()){abort()}HEAP32[DYNAMICTOP_PTR>>2]=end;return ret}function getNativeTypeSize(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return 4}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0,"getNativeTypeSize invalid bits "+bits+", type "+type);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var jsCallStartIndex=1;var functionPointers=new Array(0);var funcWrappers={};function dynCall(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var getTempRet0=function(){return tempRet0};var GLOBAL_BASE=8;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime;if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={"string":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},"array":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string")return UTF8ToString(ret);if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=2928,DYNAMIC_BASE=5245808,DYNAMICTOP_PTR=2896;var INITIAL_TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;if(Module["buffer"]){buffer=Module["buffer"]}else{buffer=new ArrayBuffer(INITIAL_TOTAL_MEMORY)}INITIAL_TOTAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}var tempDouble;var tempI64;memoryInitializer="data:application/octet-stream;base64,AAAAAAAAAAARAAoAERERAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABEADwoREREDCgcAARMJCwsAAAkGCwAACwAGEQAAABEREQAAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAARAAoKERERAAoAAAIACQsAAAAJAAsAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA0AAAAEDQAAAAAJDgAAAAAADgAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAPAAAAAA8AAAAACRAAAAAAABAAABAAABIAAAASEhIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAABISEgAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAoAAAAACgAAAAAJCwAAAAAACwAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAwAAAAACQwAAAAAAAwAAAwAADAxMjM0NTY3ODlBQkNERUYFAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAEgEAAAABAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAK/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApeXiBDT01QUkVTU0lORyAlZCBieXRlcwoAQXNzZXJ0IGF0IGhlYXRzaHJpbmtfd3JhcHBlci5jOiVkCgBeXiBzdW5rICV6ZAoAXl4gcG9sbGVkICV6ZAoAaW46ICV1IGNvbXByZXNzZWQ6ICV1CgAKXl4gREVDT01QUkVTU0lORyAlZCBieXRlcwoALSsgICAwWDB4AChudWxsKQAtMFgrMFggMFgtMHgrMHggMHgAaW5mAElORgBuYW4ATkFOAC4=";var tempDoublePtr=2912;function demangle(func){return func}function demangleAll(text){var regex=/\b__Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}function flush_NO_FILESYSTEM(){var fflush=Module["_fflush"];if(fflush)fflush(0);var buffers=SYSCALLS.buffers;if(buffers[1].length)SYSCALLS.printChar(1,10);if(buffers[2].length)SYSCALLS.printChar(2,10)}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};var SYSCALLS={buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:0,get:function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(){var ret=UTF8ToString(SYSCALLS.get());return ret},get64:function(){var low=SYSCALLS.get(),high=SYSCALLS.get();return low},getZero:function(){SYSCALLS.get()}};function _fd_write(stream,iov,iovcnt,pnum){try{var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___wasi_fd_write(){return _fd_write.apply(null,arguments)}function _emscripten_get_heap_size(){return HEAP8.length}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest)}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){abortOnCannotGrowMemory(requestedSize)}var ASSERTIONS=false;function intArrayToString(array){var ret=[];for(var i=0;i255){if(ASSERTIONS){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.")}chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}var decodeBase64=typeof atob==="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i>2]=0;n=(f|0)>1;if(n){c[g>>2]=b;ab(888,g)|0}l=(d|0)==0;g=0;h=0;a:while(1){if(h>>>0>=b>>>0){h=26;break}if((X(p,a+h|0,b-h|0,o)|0)<=-1){h=6;break}i=c[o>>2]|0;h=i+h|0;if(n){c[r>>2]=i;ab(949,r)|0}k=(h|0)==(b|0);if(k?(ma(p)|0)!=1:0){h=12;break}b:while(1){if(l)j=Z(p,m,64,o)|0;else j=Z(p,d+g|0,e-g|0,o)|0;if((j|0)<=-1){h=17;break a}i=c[o>>2]|0;g=i+g|0;if(n){c[q>>2]=i;ab(962,q)|0}switch(j|0){case 1:break;case 0:break b;default:{h=21;break a}}}if(k?ma(p)|0:0){h=25;break}}if((h|0)==6){c[s>>2]=21;ab(914,s)|0;g=0}else if((h|0)==12){c[x>>2]=25;ab(914,x)|0;g=0}else if((h|0)==17){c[t>>2]=36;ab(914,t)|0;g=0}else if((h|0)==21){c[u>>2]=40;ab(914,u)|0;g=0}else if((h|0)==25){c[v>>2]=42;ab(914,v)|0;g=0}else if((h|0)==26)if((f|0)>0){c[w>>2]=b;c[w+4>>2]=g;ab(977,w)|0}I=y;return g|0}function V(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=I;I=I+448|0;w=y+128|0;v=y+120|0;u=y+112|0;q=y+104|0;t=y+96|0;x=y+88|0;r=y+80|0;s=y+72|0;g=y+64|0;p=y+140|0;o=y+136|0;m=y;na(p);c[o>>2]=0;n=(f|0)>1;if(n){c[g>>2]=b;ab(1e3,g)|0}l=(d|0)==0;g=0;h=0;a:while(1){if(h>>>0>=b>>>0){h=27;break}if((oa(p,a+h|0,b-h|0,o)|0)<=-1){h=6;break}i=c[o>>2]|0;h=i+h|0;if(n){c[r>>2]=i;ab(949,r)|0}k=(h|0)==(b|0);if(k?(za(p)|0)!=1:0){h=12;break}do{if(l)j=pa(p,m,64,o)|0;else j=pa(p,d+g|0,e-g|0,o)|0;if((j|0)<=-1){h=17;break a}i=c[o>>2]|0;g=i+g|0;if(n){c[q>>2]=i;ab(962,q)|0;i=c[o>>2]|0}}while((j|0)==1&(i|0)!=0);if(j|0){h=22;break}if(k?za(p)|0:0){h=26;break}}if((h|0)==6){c[s>>2]=63;ab(914,s)|0;g=0}else if((h|0)==12){c[x>>2]=67;ab(914,x)|0;g=0}else if((h|0)==17){c[t>>2]=78;ab(914,t)|0;g=0}else if((h|0)==22){c[u>>2]=82;ab(914,u)|0;g=0}else if((h|0)==26){c[v>>2]=84;ab(914,v)|0;g=0}else if((h|0)==27)if((f|0)>0){c[w>>2]=b;c[w+4>>2]=g;ab(977,w)|0}I=y;return g|0}function W(c){c=c|0;ob(c+15|0,0,512)|0;b[c>>1]=0;a[c+12>>0]=0;b[c+2>>1]=0;a[c+11>>0]=0;a[c+14>>0]=-128;a[c+13>>0]=0;b[c+4>>1]=0;b[c+8>>1]=0;a[c+10>>0]=0;return}function X(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;if(!((d|0)==0|(e|0)==0|(g|0)==0))if((Y(d)|0)==0?(h=d+12|0,(a[h>>0]|0)==0):0){j=b[d>>1]|0;i=256-j&65535;k=i>>>0>>0?i:f;mb((j+256&65535)+(d+15)|0,e|0,k|0)|0;c[g>>2]=k;b[d>>1]=k+(j&65535);if(i>>>0>f>>>0)d=0;else{a[h>>0]=1;d=0}}else d=-2;else d=-1;return d|0}function Y(b){b=b|0;return a[b+11>>0]&1|0}function Z(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;k=I;I=I+16|0;i=k;if(!((b|0)==0|(d|0)==0|(f|0)==0))if(!e)d=-2;else{c[f>>2]=0;c[i>>2]=d;c[i+4>>2]=e;c[i+8>>2]=f;h=b+12|0;g=a[h>>0]|0;a:while(1){switch(g<<24>>24){case 9:case 0:{d=0;j=15;break a}case 8:{j=11;break a}case 1:{d=2;break}case 2:{d=(_(b)|0)&255;break}case 3:{d=($(b,i)|0)&255;break}case 4:{d=(aa(b,i)|0)&255;break}case 5:{d=(ba(b,i)|0)&255;break}case 6:{d=(ca(b,i)|0)&255;break}case 7:{da(b);d=0;break}default:{d=-2;break a}}a[h>>0]=d;if(d<<24>>24==g<<24>>24?(c[f>>2]|0)==(e|0):0){d=1;j=15;break}g=d}if((j|0)==11){a[h>>0]=ea(b,i)|0;d=0}}else d=-1;I=k;return d|0}function _(a){a=a|0;var c=0,d=0,f=0,g=0,h=0,i=0,j=0;j=I;I=I+16|0;h=j;i=a+2|0;c=b[i>>1]|0;g=(Y(a)|0)!=0;d=c&65535;f=e[a>>1]|0;if((f-(g?1:64)|0)<(d|0))c=g?8:7;else{g=f-d|0;b[h>>1]=0;c=la(a,(c+256&65535)+65280&65535,d+256&65535,((g|0)<64?g:64)&65535,h)|0;if(c<<16>>16==-1){b[i>>1]=(b[i>>1]|0)+1<<16>>16;c=0}else{b[a+6>>1]=c;c=b[h>>1]|0}b[a+4>>1]=c;c=3}I=j;return c|0}function $(c,d){c=c|0;d=d|0;do if(fa(d)|0)if(!(b[c+4>>1]|0)){ka(c,d,1);c=4;break}else{ka(c,d,0);b[c+8>>1]=(e[c+6>>1]|0)+65535;a[c+10>>0]=8;c=5;break}else c=3;while(0);return c|0}function aa(a,b){a=a|0;b=b|0;if(!(fa(b)|0))a=4;else{ja(a,b);a=2}return a|0}function ba(c,d){c=c|0;d=d|0;if((fa(d)|0)!=0?(ha(c,d)|0)<<24>>24==0:0){b[c+8>>1]=(e[c+4>>1]|0)+65535;a[c+10>>0]=6;c=6}else c=5;return c|0}function ca(a,c){a=a|0;c=c|0;if((fa(c)|0)!=0?(ha(a,c)|0)<<24>>24==0:0){c=a+4|0;a=a+2|0;b[a>>1]=(e[a>>1]|0)+(e[c>>1]|0);b[c>>1]=0;a=2}else a=6;return a|0}function da(a){a=a|0;ga(a);return}function ea(b,d){b=b|0;d=d|0;var e=0,f=0;if((a[b+14>>0]|0)!=-128)if(!(fa(d)|0))b=8;else{f=a[b+13>>0]|0;e=c[d>>2]|0;d=c[d+8>>2]|0;b=c[d>>2]|0;c[d>>2]=b+1;a[e+b>>0]=f;b=9}else b=9;return b|0}function fa(a){a=a|0;return (c[c[a+8>>2]>>2]|0)>>>0<(c[a+4>>2]|0)>>>0|0}function ga(a){a=a|0;var c=0,d=0,f=0;d=a+2|0;f=256-(b[d>>1]|0)<<16>>16;c=256-(f&65535)|0;nb(a+15|0,a+15+c|0,f+256&65535|0)|0;b[d>>1]=0;b[a>>1]=(e[a>>1]|0)-c;return}function ha(c,f){c=c|0;f=f|0;var g=0,h=0,i=0,j=0;i=c+10|0;g=a[i>>0]|0;if((g&255)<=8)if(!(g<<24>>24))g=0;else{h=b[c+8>>1]&255;j=4}else{h=(e[c+8>>1]|0)>>>((g&255)+-8|0)&255;g=8;j=4}if((j|0)==4){ia(c,g,h,f);a[i>>0]=(d[i>>0]|0)-(g&255)}return g|0}function ia(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;h=d&255;j=b+14|0;if(d<<24>>24==8?(a[j>>0]|0)==-128:0){j=c[f>>2]|0;i=c[f+8>>2]|0;f=c[i>>2]|0;c[i>>2]=f+1;a[j+f>>0]=e}else g=4;a:do if((g|0)==4){i=e&255;g=b+13|0;b=f+8|0;e=h;while(1){d=e+-1|0;if((e|0)<=0)break a;e=a[j>>0]|0;if(1<>0]=a[g>>0]|e;h=(e&255)>>>1;a[j>>0]=h;if(!(h<<24>>24)){a[j>>0]=-128;k=a[g>>0]|0;e=c[f>>2]|0;l=c[b>>2]|0;h=c[l>>2]|0;c[l>>2]=h+1;a[e+h>>0]=k;a[g>>0]=0}e=d}}while(0);return}function ja(c,d){c=c|0;d=d|0;ia(c,8,a[((b[c+2>>1]|0)+255&65535)+(c+15)>>0]|0,d);return}function ka(a,b,c){a=a|0;b=b|0;c=c|0;ia(a,1,c,b);return}function la(c,d,e,f,g){c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=e&65535;l=c+15+n|0;h=-1;e=0;m=n+65535&65535;while(1){if(m<<16>>16>16)break;i=(m<<16>>16)+(c+15)|0;k=e&65535;if((a[i+k>>0]|0)==(a[l+k>>0]|0)?(a[i>>0]|0)==(a[l>>0]|0):0){k=1;while(1){j=k&65535;if((k&65535)>=(f&65535))break;if((a[i+j>>0]|0)!=(a[l+j>>0]|0))break;k=k+1<<16>>16}if((k&65535)>(e&65535))if(k<<16>>16==f<<16>>16){h=m;e=f;break}else{h=m;e=k}}m=m+-1<<16>>16}if((e&65535)>1){b[g>>1]=e;e=n-(h&65535)&65535}else e=-1;return e|0}function ma(b){b=b|0;var c=0;if(!b)b=-1;else{c=b+11|0;a[c>>0]=a[c>>0]|1;c=b+12|0;b=a[c>>0]|0;if(!(b<<24>>24)){a[c>>0]=1;b=1}b=b<<24>>24!=9&1}return b|0}function na(a){a=a|0;ob(a|0,0,301)|0;return}function oa(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,i=0,j=0;if((a|0)==0|(d|0)==0|(g|0)==0)f=-1;else{i=e[a>>1]|0;j=32-i|0;h=j>>>0>>0?j:f;if(!j){f=1;h=0}else{mb(a+13+i|0,d|0,h|0)|0;b[a>>1]=h+i;f=0}c[g>>2]=h}return f|0}function pa(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;k=I;I=I+16|0;i=k;if((b|0)==0|(d|0)==0|(f|0)==0)d=-1;else{c[f>>2]=0;c[i>>2]=d;c[i+4>>2]=e;c[i+8>>2]=f;h=b+10|0;d=a[h>>0]|0;a:while(1){switch(d<<24>>24){case 0:{g=qa(b)|0;break}case 1:{g=ra(b,i)|0;break}case 2:{g=sa(b)|0;break}case 3:{g=ta(b)|0;break}case 4:{g=ua(b)|0;break}case 5:{g=va(b)|0;break}case 6:{g=wa(b,i)|0;break}default:{d=-2;break a}}l=d;d=g&255;a[h>>0]=d;if(l<<24>>24==d<<24>>24){j=12;break}}if((j|0)==12)d=(c[f>>2]|0)==(e|0)&1}I=k;return d|0}function qa(a){a=a|0;switch((ya(a,1)|0)<<16>>16){case -1:{a=0;break}case 0:{b[a+6>>1]=0;a=3;break}default:a=1}return a|0}function ra(d,e){d=d|0;e=e|0;var f=0,g=0,h=0;if((c[c[e+8>>2]>>2]|0)>>>0<(c[e+4>>2]|0)>>>0?(f=ya(d,8)|0,f<<16>>16!=-1):0){f=f&255;h=d+8|0;g=b[h>>1]|0;b[h>>1]=g+1<<16>>16;a[d+45+(g&255)>>0]=f;xa(e,f);f=0}else f=1;return f|0}function sa(a){a=a|0;var c=0;c=ya(a,0)|0;if(c<<16>>16==-1)c=2;else{b[a+6>>1]=(c&65535)<<8;c=3}return c|0}function ta(a){a=a|0;var c=0,d=0;c=ya(a,8)|0;if(c<<16>>16==-1)c=3;else{d=a+6|0;b[d>>1]=(b[d>>1]|c)+1<<16>>16;b[a+4>>1]=0;c=5}return c|0}function ua(a){a=a|0;var c=0;c=ya(a,-2)|0;if(c<<16>>16==-1)c=4;else{b[a+4>>1]=(c&65535)<<8;c=5}return c|0}function va(a){a=a|0;var c=0;c=ya(a,6)|0;if(c<<16>>16==-1)c=5;else{a=a+4|0;b[a>>1]=(b[a>>1]|c)+1<<16>>16;c=6}return c|0}function wa(d,f){d=d|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;g=(c[f+4>>2]|0)-(c[c[f+8>>2]>>2]|0)|0;if(g){k=d+4|0;j=e[k>>1]|0;j=g>>>0>j>>>0?j:g;h=d+45|0;i=d+8|0;g=e[d+6>>1]|0;d=0;while(1){if(d>>>0>=j>>>0)break;n=a[h+((e[i>>1]|0)-g&255)>>0]|0;xa(f,n);m=b[i>>1]|0;a[h+(m&255)>>0]=n;b[i>>1]=m+1<<16>>16;d=d+1|0}n=(e[k>>1]|0)-j|0;b[k>>1]=n;if(!(n&65535))g=0;else l=6}else l=6;if((l|0)==6)g=6;return g|0}function xa(b,d){b=b|0;d=d|0;var e=0,f=0;e=c[b>>2]|0;f=c[b+8>>2]|0;b=c[f>>2]|0;c[f>>2]=b+1;a[e+b>>0]=d;return}function ya(c,e){c=c|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=e&255;a:do if((e&255)>15)e=-1;else{e=b[c>>1]|0;j=c+12|0;if(e<<16>>16==0?(1<(d[j>>0]|0|0):0){e=-1;break}k=c+11|0;l=c+2|0;g=e;e=0;i=0;while(1){if(i>>>0>=m>>>0)break a;f=a[j>>0]|0;if(!(f<<24>>24)){if(!(g<<16>>16)){e=-1;break a}h=b[l>>1]|0;f=h+1<<16>>16;b[l>>1]=f;h=a[(h&65535)+(c+13)>>0]|0;a[k>>0]=h;if(f<<16>>16==g<<16>>16){b[l>>1]=0;b[c>>1]=0;g=0}a[j>>0]=-128;f=-128}else h=a[k>>0]|0;a[j>>0]=(f&255)>>>1;e=((e&65535)<<1|(f&h)<<24>>24!=0)&65535;i=i+1|0}}while(0);return e|0}function za(c){c=c|0;a:do if(!c)c=-1;else switch(a[c+10>>0]|0){case 0:{c=(b[c>>1]|0)!=0&1;break a}case 4:case 5:case 2:case 3:{c=(b[c>>1]|0)!=0&1;break a}case 1:{c=(b[c>>1]|0)!=0&1;break a}default:{c=1;break a}}while(0);return c|0}function Aa(a){a=a|0;return 0}function Ba(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;l=I;I=I+32|0;g=l;i=l+16|0;j=a+28|0;f=c[j>>2]|0;c[g>>2]=f;k=a+20|0;f=(c[k>>2]|0)-f|0;c[g+4>>2]=f;c[g+8>>2]=b;c[g+12>>2]=d;e=a+60|0;h=2;f=f+d|0;while(1){if(!((x(c[e>>2]|0,g|0,h|0,i|0)|0)<<16>>16))b=c[i>>2]|0;else{c[i>>2]=-1;b=-1}if((f|0)==(b|0)){b=6;break}if((b|0)<0){b=8;break}p=c[g+4>>2]|0;m=b>>>0>p>>>0;n=m?g+8|0:g;p=b-(m?p:0)|0;c[n>>2]=(c[n>>2]|0)+p;o=n+4|0;c[o>>2]=(c[o>>2]|0)-p;g=n;h=h+(m<<31>>31)|0;f=f-b|0}if((b|0)==6){p=c[a+44>>2]|0;c[a+16>>2]=p+(c[a+48>>2]|0);c[j>>2]=p;c[k>>2]=p}else if((b|0)==8){c[a+16>>2]=0;c[j>>2]=0;c[k>>2]=0;c[a>>2]=c[a>>2]|32;if((h|0)==2)d=0;else d=d-(c[g+4>>2]|0)|0}I=l;return d|0}function Ca(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;u(0);return 0}function Da(){return 2128}function Ea(a,b,c){a=a|0;b=b|0;c=c|0;return Ha(a,b,c,1,1)|0}function Fa(b,e,f,g,h,i){b=b|0;e=+e;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,s=0.0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;H=I;I=I+560|0;m=H+32|0;u=H+536|0;G=H;F=G;l=H+540|0;c[u>>2]=0;E=l+12|0;_a(e)|0;j=v()|0;if((j|0)<0){e=-e;_a(e)|0;j=v()|0;D=1;B=1045}else{D=(h&2049|0)!=0&1;B=(h&2048|0)==0?((h&1|0)==0?1046:1051):1048}do if(0==0&(j&2146435072|0)==2146435072){G=(i&32|0)!=0;j=D+3|0;Ta(b,32,f,j,h&-65537);La(b,B,D);La(b,e!=e|0.0!=0.0?(G?1072:1076):G?1064:1068,3);Ta(b,32,f,j,h^8192)}else{s=+$a(e,u)*2.0;j=s!=0.0;if(j)c[u>>2]=(c[u>>2]|0)+-1;x=i|32;if((x|0)==97){o=i&32;q=(o|0)==0?B:B+9|0;p=D|2;j=12-g|0;do if(!(g>>>0>11|(j|0)==0)){e=8.0;do{j=j+-1|0;e=e*16.0}while((j|0)!=0);if((a[q>>0]|0)==45){e=-(e+(-s-e));break}else{e=s+e-e;break}}else e=s;while(0);k=c[u>>2]|0;j=(k|0)<0?0-k|0:k;j=Ra(j,((j|0)<0)<<31>>31,E)|0;if((j|0)==(E|0)){j=l+11|0;a[j>>0]=48}a[j+-1>>0]=(k>>31&2)+43;n=j+-2|0;a[n>>0]=i+15;k=(g|0)<1;l=(h&8|0)==0;j=G;while(1){D=~~e;m=j+1|0;a[j>>0]=o|d[480+D>>0];e=(e-+(D|0))*16.0;if((m-F|0)==1?!(l&(k&e==0.0)):0){a[m>>0]=46;m=j+2|0}if(!(e!=0.0))break;else j=m}if((g|0)!=0?(-2-F+m|0)<(g|0):0){k=E;l=n;j=g+2+k-l|0}else{k=E;l=n;j=k-F-l+m|0}E=j+p|0;Ta(b,32,f,E,h);La(b,q,p);Ta(b,48,f,E,h^65536);F=m-F|0;La(b,G,F);G=k-l|0;Ta(b,48,j-(F+G)|0,0,0);La(b,n,G);Ta(b,32,f,E,h^8192);j=E;break}k=(g|0)<0?6:g;if(j){l=(c[u>>2]|0)+-28|0;c[u>>2]=l;e=s*268435456.0}else{l=c[u>>2]|0;e=s}C=(l|0)<0?m:m+288|0;m=C;do{z=~~e>>>0;c[m>>2]=z;m=m+4|0;e=(e-+(z>>>0))*1.0e9}while(e!=0.0);z=C;if((l|0)>0){j=C;do{o=(l|0)<29?l:29;l=m+-4|0;if(l>>>0>=j>>>0){n=0;do{t=lb(c[l>>2]|0,0,o|0)|0;t=fb(t|0,v()|0,n|0,0)|0;w=v()|0;n=jb(t|0,w|0,1e9,0)|0;y=eb(n|0,v()|0,1e9,0)|0;y=gb(t|0,w|0,y|0,v()|0)|0;v()|0;c[l>>2]=y;l=l+-4|0}while(l>>>0>=j>>>0);if(n){j=j+-4|0;c[j>>2]=n}}a:do if(m>>>0>j>>>0)while(1){l=m+-4|0;if(c[l>>2]|0)break a;if(l>>>0>j>>>0)m=l;else{m=l;break}}while(0);l=(c[u>>2]|0)-o|0;c[u>>2]=l}while((l|0)>0)}else j=C;if((l|0)<0){g=((k+25|0)/9|0)+1|0;t=(x|0)==102;do{q=0-l|0;q=(q|0)<9?q:9;if(j>>>0>>0){o=(1<>>q;p=0;l=j;do{y=c[l>>2]|0;c[l>>2]=(y>>>q)+p;p=r(y&o,n)|0;l=l+4|0}while(l>>>0>>0);j=(c[j>>2]|0)==0?j+4|0:j;if(p){c[m>>2]=p;m=m+4|0}}else j=(c[j>>2]|0)==0?j+4|0:j;l=t?C:j;m=(m-l>>2|0)>(g|0)?l+(g<<2)|0:m;l=(c[u>>2]|0)+q|0;c[u>>2]=l}while((l|0)<0);t=m}else t=m;if(j>>>0>>0){l=(z-j>>2)*9|0;n=c[j>>2]|0;if(n>>>0>=10){m=10;do{m=m*10|0;l=l+1|0}while(n>>>0>=m>>>0)}}else l=0;u=(x|0)==103;w=(k|0)!=0;m=k-((x|0)==102?0:l)+((w&u)<<31>>31)|0;if((m|0)<(((t-z>>2)*9|0)+-9|0)){y=m+9216|0;m=(y|0)/9|0;g=C+4+(m+-1024<<2)|0;m=y-(m*9|0)|0;if((m|0)<8){n=10;while(1){n=n*10|0;if((m|0)<7)m=m+1|0;else break}}else n=10;p=c[g>>2]|0;m=(p>>>0)/(n>>>0)|0;q=p-(r(m,n)|0)|0;o=(g+4|0)==(t|0);if(!(o&(q|0)==0)){s=(m&1|0)==0?9007199254740992.0:9007199254740994.0;y=n>>>1;e=q>>>0>>0?.5:o&(q|0)==(y|0)?1.0:1.5;if(D){y=(a[B>>0]|0)==45;s=y?-s:s;e=y?-e:e}m=p-q|0;c[g>>2]=m;if(s+e!=s){y=m+n|0;c[g>>2]=y;if(y>>>0>999999999){l=g;while(1){m=l+-4|0;c[l>>2]=0;if(m>>>0>>0){j=j+-4|0;c[j>>2]=0}y=(c[m>>2]|0)+1|0;c[m>>2]=y;if(y>>>0>999999999)l=m;else break}}else m=g;l=(z-j>>2)*9|0;o=c[j>>2]|0;if(o>>>0>=10){n=10;do{n=n*10|0;l=l+1|0}while(o>>>0>=n>>>0)}}else m=g}else m=g;x=m+4|0;y=j;j=t>>>0>x>>>0?x:t}else{y=j;j=t}q=0-l|0;b:do if(j>>>0>y>>>0)while(1){m=j+-4|0;if(c[m>>2]|0){t=1;x=j;break b}if(m>>>0>y>>>0)j=m;else{t=0;x=m;break}}else{t=0;x=j}while(0);do if(u){j=k+((w^1)&1)|0;if((j|0)>(l|0)&(l|0)>-5){k=j+-1-l|0;n=i+-1|0}else{k=j+-1|0;n=i+-2|0}if(!(h&8)){if(t?(A=c[x+-4>>2]|0,(A|0)!=0):0)if(!((A>>>0)%10|0)){j=10;m=0;do{j=j*10|0;m=m+1|0}while(!((A>>>0)%(j>>>0)|0|0))}else m=0;else m=9;j=((x-z>>2)*9|0)+-9|0;if((n|32|0)==102){i=j-m|0;i=(i|0)>0?i:0;k=(k|0)<(i|0)?k:i;break}else{i=j+l-m|0;i=(i|0)>0?i:0;k=(k|0)<(i|0)?k:i;break}}}else n=i;while(0);g=(k|0)!=0;o=g?1:h>>>3&1;p=(n|32|0)==102;if(p){w=0;j=(l|0)>0?l:0}else{j=(l|0)<0?q:l;j=Ra(j,((j|0)<0)<<31>>31,E)|0;m=E;if((m-j|0)<2)do{j=j+-1|0;a[j>>0]=48}while((m-j|0)<2);a[j+-1>>0]=(l>>31&2)+43;j=j+-2|0;a[j>>0]=n;w=j;j=m-j|0}j=D+1+k+o+j|0;Ta(b,32,f,j,h);La(b,B,D);Ta(b,48,f,j,h^65536);if(p){o=y>>>0>C>>>0?C:y;q=G+9|0;p=q;n=G+8|0;m=o;do{l=Ra(c[m>>2]|0,0,q)|0;if((m|0)==(o|0)){if((l|0)==(q|0)){a[n>>0]=48;l=n}}else if(l>>>0>G>>>0){ob(G|0,48,l-F|0)|0;do l=l+-1|0;while(l>>>0>G>>>0)}La(b,l,p-l|0);m=m+4|0}while(m>>>0<=C>>>0);if(!((h&8|0)==0&(g^1)))La(b,1080,1);if(m>>>0>>0&(k|0)>0)while(1){l=Ra(c[m>>2]|0,0,q)|0;if(l>>>0>G>>>0){ob(G|0,48,l-F|0)|0;do l=l+-1|0;while(l>>>0>G>>>0)}La(b,l,(k|0)<9?k:9);m=m+4|0;l=k+-9|0;if(!(m>>>0>>0&(k|0)>9)){k=l;break}else k=l}Ta(b,48,k+9|0,9,0)}else{g=t?x:y+4|0;if(y>>>0>>0&(k|0)>-1){q=G+9|0;u=(h&8|0)==0;t=q;n=0-F|0;p=G+8|0;o=y;do{l=Ra(c[o>>2]|0,0,q)|0;if((l|0)==(q|0)){a[p>>0]=48;l=p}do if((o|0)==(y|0)){m=l+1|0;La(b,l,1);if(u&(k|0)<1){l=m;break}La(b,1080,1);l=m}else{if(l>>>0<=G>>>0)break;ob(G|0,48,l+n|0)|0;do l=l+-1|0;while(l>>>0>G>>>0)}while(0);F=t-l|0;La(b,l,(k|0)>(F|0)?F:k);k=k-F|0;o=o+4|0}while(o>>>0>>0&(k|0)>-1)}Ta(b,48,k+18|0,18,0);La(b,w,E-w|0)}Ta(b,32,f,j,h^8192)}while(0);I=H;return ((j|0)<(f|0)?f:j)|0}function Ga(a,b){a=a|0;b=b|0;var d=0.0,e=0;e=(c[b>>2]|0)+(8-1)&~(8-1);d=+g[e>>3];c[b>>2]=e+8;g[a>>3]=d;return}function Ha(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=I;I=I+224|0;o=t+208|0;s=t+160|0;r=t+80|0;q=t;h=s;i=h+40|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(i|0));c[o>>2]=c[e>>2];if((Ia(0,d,o,r,s,f,g)|0)<0)e=-1;else{if((c[b+76>>2]|0)>-1)p=Ja(b)|0;else p=0;e=c[b>>2]|0;n=e&32;if((a[b+74>>0]|0)<1)c[b>>2]=e&-33;j=b+48|0;if(!(c[j>>2]|0)){i=b+44|0;e=c[i>>2]|0;c[i>>2]=q;k=b+28|0;c[k>>2]=q;m=b+20|0;c[m>>2]=q;c[j>>2]=80;l=b+16|0;c[l>>2]=q+80;h=Ia(b,d,o,r,s,f,g)|0;if(e){N[c[b+36>>2]&1](b,0,0)|0;h=(c[m>>2]|0)==0?-1:h;c[i>>2]=e;c[j>>2]=0;c[l>>2]=0;c[k>>2]=0;c[m>>2]=0}}else h=Ia(b,d,o,r,s,f,g)|0;e=c[b>>2]|0;c[b>>2]=e|n;if(p|0)Ka(b);e=(e&32|0)==0?h:-1}I=t;return e|0}function Ia(d,e,f,h,i,j,k){d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,J=0,K=0,L=0;K=I;I=I+64|0;H=K+56|0;F=K+40|0;z=K;J=K+48|0;G=K+60|0;c[H>>2]=e;C=(d|0)!=0;y=z+40|0;B=y;z=z+39|0;A=J+4|0;e=0;l=0;o=0;a:while(1){do{do if((e|0)>-1)if((l|0)>(2147483647-e|0)){c[(Da()|0)>>2]=75;e=-1;break}else{e=l+e|0;break}while(0);s=c[H>>2]|0;l=a[s>>0]|0;if(!(l<<24>>24)){x=92;break a}m=s;b:while(1){switch(l<<24>>24){case 37:{x=10;break b}case 0:{l=m;break b}default:{}}w=m+1|0;c[H>>2]=w;l=a[w>>0]|0;m=w}c:do if((x|0)==10){x=0;n=m;l=m;do{if((a[n+1>>0]|0)!=37)break c;l=l+1|0;n=n+2|0;c[H>>2]=n}while((a[n>>0]|0)==37)}while(0);l=l-s|0;if(C)La(d,s,l)}while((l|0)!=0);w=(Ma(a[(c[H>>2]|0)+1>>0]|0)|0)==0;l=c[H>>2]|0;if(!w?(a[l+2>>0]|0)==36:0){m=3;q=(a[l+1>>0]|0)+-48|0;p=1}else{m=1;q=-1;p=o}m=l+m|0;c[H>>2]=m;l=a[m>>0]|0;n=(l<<24>>24)+-32|0;if(n>>>0>31|(1<>2]=m;l=a[m>>0]|0;n=(l<<24>>24)+-32|0;if(n>>>0>31|(1<>24==42){if((Ma(a[m+1>>0]|0)|0)!=0?(D=c[H>>2]|0,(a[D+2>>0]|0)==36):0){l=D+1|0;c[i+((a[l>>0]|0)+-48<<2)>>2]=10;n=1;m=D+3|0;l=c[h+((a[l>>0]|0)+-48<<3)>>2]|0}else{if(p|0){e=-1;break}if(C){w=(c[f>>2]|0)+(4-1)&~(4-1);l=c[w>>2]|0;c[f>>2]=w+4}else l=0;n=0;m=(c[H>>2]|0)+1|0}c[H>>2]=m;u=(l|0)<0;o=u?o|8192:o;w=n;u=u?0-l|0:l}else{l=Na(H)|0;if((l|0)<0){e=-1;break}m=c[H>>2]|0;w=p;u=l}do if((a[m>>0]|0)==46){l=m+1|0;if((a[l>>0]|0)!=42){c[H>>2]=l;t=Na(H)|0;l=c[H>>2]|0;break}if(Ma(a[m+2>>0]|0)|0?(E=c[H>>2]|0,(a[E+3>>0]|0)==36):0){t=E+2|0;c[i+((a[t>>0]|0)+-48<<2)>>2]=10;t=c[h+((a[t>>0]|0)+-48<<3)>>2]|0;l=E+4|0;c[H>>2]=l;break}if(w|0){e=-1;break a}if(C){t=(c[f>>2]|0)+(4-1)&~(4-1);m=c[t>>2]|0;c[f>>2]=t+4}else m=0;l=(c[H>>2]|0)+2|0;c[H>>2]=l;t=m}else{l=m;t=-1}while(0);r=0;while(1){if(((a[l>>0]|0)+-65|0)>>>0>57){e=-1;break a}m=l;l=l+1|0;c[H>>2]=l;m=a[(a[m>>0]|0)+-65+(16+(r*58|0))>>0]|0;p=m&255;if((p+-1|0)>>>0>=8)break;else r=p}if(!(m<<24>>24)){e=-1;break}n=(q|0)>-1;do if(m<<24>>24==19)if(n){e=-1;break a}else x=54;else{if(n){c[i+(q<<2)>>2]=p;p=h+(q<<3)|0;q=c[p+4>>2]|0;x=F;c[x>>2]=c[p>>2];c[x+4>>2]=q;x=54;break}if(!C){e=0;break a}Oa(F,p,f,k);l=c[H>>2]|0;x=55}while(0);if((x|0)==54){x=0;if(C)x=55;else l=0}d:do if((x|0)==55){x=0;n=a[l+-1>>0]|0;n=(r|0)!=0&(n&15|0)==3?n&-33:n;l=o&-65537;q=(o&8192|0)==0?o:l;e:do switch(n|0){case 110:switch((r&255)<<24>>24){case 0:{c[c[F>>2]>>2]=e;l=0;break d}case 1:{c[c[F>>2]>>2]=e;l=0;break d}case 2:{l=c[F>>2]|0;c[l>>2]=e;c[l+4>>2]=((e|0)<0)<<31>>31;l=0;break d}case 3:{b[c[F>>2]>>1]=e;l=0;break d}case 4:{a[c[F>>2]>>0]=e;l=0;break d}case 6:{c[c[F>>2]>>2]=e;l=0;break d}case 7:{l=c[F>>2]|0;c[l>>2]=e;c[l+4>>2]=((e|0)<0)<<31>>31;l=0;break d}default:{l=0;break d}}case 112:{l=q|8;m=t>>>0>8?t:8;n=120;x=67;break}case 88:case 120:{l=q;m=t;x=67;break}case 111:{o=F;o=Qa(c[o>>2]|0,c[o+4>>2]|0,y)|0;m=B-o|0;l=q;m=(q&8|0)==0|(t|0)>(m|0)?t:m+1|0;r=0;p=1028;x=73;break}case 105:case 100:{m=F;l=c[m>>2]|0;m=c[m+4>>2]|0;if((m|0)<0){l=gb(0,0,l|0,m|0)|0;m=v()|0;n=F;c[n>>2]=l;c[n+4>>2]=m;n=1;p=1028;x=72;break e}else{n=(q&2049|0)!=0&1;p=(q&2048|0)==0?((q&1|0)==0?1028:1030):1029;x=72;break e}}case 117:{m=F;l=c[m>>2]|0;m=c[m+4>>2]|0;n=0;p=1028;x=72;break}case 99:{a[z>>0]=c[F>>2];s=z;q=l;o=1;n=0;m=1028;l=B;break}case 115:{p=c[F>>2]|0;p=(p|0)==0?1038:p;r=Sa(p,0,t)|0;L=(r|0)==0;s=p;q=l;o=L?t:r-p|0;n=0;m=1028;l=L?p+t|0:r;break}case 67:{c[J>>2]=c[F>>2];c[A>>2]=0;c[F>>2]=J;o=-1;x=79;break}case 83:{if(!t){Ta(d,32,u,0,q);l=0;x=89}else{o=t;x=79}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{l=M[j&1](d,+g[F>>3],u,t,q,n)|0;break d}default:{o=t;n=0;m=1028;l=B}}while(0);f:do if((x|0)==67){o=F;o=Pa(c[o>>2]|0,c[o+4>>2]|0,y,n&32)|0;p=F;p=(l&8|0)==0|(c[p>>2]|0)==0&(c[p+4>>2]|0)==0;r=p?0:2;p=p?1028:1028+(n>>>4)|0;x=73}else if((x|0)==72){o=Ra(l,m,y)|0;l=q;m=t;r=n;x=73}else if((x|0)==79){x=0;l=0;p=c[F>>2]|0;while(1){m=c[p>>2]|0;if(!m)break;m=Ua(G,m)|0;n=(m|0)<0;if(n|m>>>0>(o-l|0)>>>0){x=83;break}l=m+l|0;if(o>>>0>l>>>0)p=p+4|0;else break}if((x|0)==83){x=0;if(n){e=-1;break a}}Ta(d,32,u,l,q);if(!l){l=0;x=89}else{n=0;o=c[F>>2]|0;while(1){m=c[o>>2]|0;if(!m){x=89;break f}m=Ua(G,m)|0;n=m+n|0;if((n|0)>(l|0)){x=89;break f}La(d,G,m);if(n>>>0>=l>>>0){x=89;break}else o=o+4|0}}}while(0);if((x|0)==73){x=0;n=F;n=(c[n>>2]|0)!=0|(c[n+4>>2]|0)!=0;L=(m|0)!=0|n;n=B-o+((n^1)&1)|0;s=L?o:y;q=(m|0)>-1?l&-65537:l;o=L?((m|0)>(n|0)?m:n):0;n=r;m=p;l=B}else if((x|0)==89){x=0;Ta(d,32,u,l,q^8192);l=(u|0)>(l|0)?u:l;break}t=l-s|0;r=(o|0)<(t|0)?t:o;L=r+n|0;l=(u|0)<(L|0)?L:u;Ta(d,32,l,L,q);La(d,m,n);Ta(d,48,l,L,q^65536);Ta(d,48,r,t,0);La(d,s,t);Ta(d,32,l,L,q^8192)}while(0);o=w}g:do if((x|0)==92)if(!d)if(!o)e=0;else{e=1;while(1){l=c[i+(e<<2)>>2]|0;if(!l)break;Oa(h+(e<<3)|0,l,f,k);e=e+1|0;if(e>>>0>=10){e=1;break g}}while(1){if(c[i+(e<<2)>>2]|0){e=-1;break g}e=e+1|0;if(e>>>0>=10){e=1;break}}}while(0);I=K;return e|0}function Ja(a){a=a|0;return 1}function Ka(a){a=a|0;return}function La(a,b,d){a=a|0;b=b|0;d=d|0;if(!(c[a>>2]&32))Ya(b,d,a)|0;return}function Ma(a){a=a|0;return (a+-48|0)>>>0<10|0}function Na(b){b=b|0;var d=0,e=0;if(!(Ma(a[c[b>>2]>>0]|0)|0))d=0;else{d=0;do{e=c[b>>2]|0;d=(d*10|0)+-48+(a[e>>0]|0)|0;e=e+1|0;c[b>>2]=e}while((Ma(a[e>>0]|0)|0)!=0)}return d|0}function Oa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;c[a>>2]=b;break a}case 10:{b=(c[d>>2]|0)+(4-1)&~(4-1);e=c[b>>2]|0;c[d>>2]=b+4;b=a;c[b>>2]=e;c[b+4>>2]=((e|0)<0)<<31>>31;break a}case 11:{b=(c[d>>2]|0)+(4-1)&~(4-1);e=c[b>>2]|0;c[d>>2]=b+4;b=a;c[b>>2]=e;c[b+4>>2]=0;break a}case 12:{b=(c[d>>2]|0)+(8-1)&~(8-1);e=b;f=c[e>>2]|0;e=c[e+4>>2]|0;c[d>>2]=b+8;b=a;c[b>>2]=f;c[b+4>>2]=e;break a}case 13:{f=(c[d>>2]|0)+(4-1)&~(4-1);b=c[f>>2]|0;c[d>>2]=f+4;b=(b&65535)<<16>>16;f=a;c[f>>2]=b;c[f+4>>2]=((b|0)<0)<<31>>31;break a}case 14:{f=(c[d>>2]|0)+(4-1)&~(4-1);b=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=b&65535;c[f+4>>2]=0;break a}case 15:{f=(c[d>>2]|0)+(4-1)&~(4-1);b=c[f>>2]|0;c[d>>2]=f+4;b=(b&255)<<24>>24;f=a;c[f>>2]=b;c[f+4>>2]=((b|0)<0)<<31>>31;break a}case 16:{f=(c[d>>2]|0)+(4-1)&~(4-1);b=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=b&255;c[f+4>>2]=0;break a}case 17:{f=(c[d>>2]|0)+(8-1)&~(8-1);h=+g[f>>3];c[d>>2]=f+8;g[a>>3]=h;break a}case 18:{P[e&1](a,d);break a}default:break a}while(0);while(0);return}function Pa(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;if(!((b|0)==0&(c|0)==0))do{e=e+-1|0;a[e>>0]=d[480+(b&15)>>0]|0|f;b=kb(b|0,c|0,4)|0;c=v()|0}while(!((b|0)==0&(c|0)==0));return e|0}function Qa(b,c,d){b=b|0;c=c|0;d=d|0;if(!((b|0)==0&(c|0)==0))do{d=d+-1|0;a[d>>0]=b&7|48;b=kb(b|0,c|0,3)|0;c=v()|0}while(!((b|0)==0&(c|0)==0));return d|0}function Ra(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;if(c>>>0>0|(c|0)==0&b>>>0>4294967295)do{e=b;b=jb(b|0,c|0,10,0)|0;f=c;c=v()|0;g=eb(b|0,c|0,10,0)|0;g=gb(e|0,f|0,g|0,v()|0)|0;v()|0;d=d+-1|0;a[d>>0]=g&255|48}while(f>>>0>9|(f|0)==9&e>>>0>4294967295);if(b)do{g=b;b=(b>>>0)/10|0;d=d+-1|0;a[d>>0]=g-(b*10|0)|48}while(g>>>0>=10);return d|0}function Sa(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=d&255;f=(e|0)!=0;a:do if(f&(b&3|0)!=0){g=d&255;while(1){if((a[b>>0]|0)==g<<24>>24){i=6;break a}b=b+1|0;e=e+-1|0;f=(e|0)!=0;if(!(f&(b&3|0)!=0)){i=5;break}}}else i=5;while(0);if((i|0)==5)if(f)i=6;else i=16;b:do if((i|0)==6){g=d&255;if((a[b>>0]|0)==g<<24>>24)if(!e){i=16;break}else break;f=r(h,16843009)|0;c:do if(e>>>0>3)while(1){h=c[b>>2]^f;if((h&-2139062144^-2139062144)&h+-16843009|0)break c;b=b+4|0;e=e+-4|0;if(e>>>0<=3){i=11;break}}else i=11;while(0);if((i|0)==11)if(!e){i=16;break}while(1){if((a[b>>0]|0)==g<<24>>24)break b;e=e+-1|0;if(!e){i=16;break}else b=b+1|0}}while(0);if((i|0)==16)b=0;return b|0}function Ta(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=I;I=I+256|0;f=g;if((c|0)>(d|0)&(e&73728|0)==0){e=c-d|0;ob(f|0,b<<24>>24|0,(e>>>0<256?e:256)|0)|0;if(e>>>0>255){b=c-d|0;do{La(a,f,256);e=e+-256|0}while(e>>>0>255);e=b&255}La(a,f,e)}I=g;return}function Ua(a,b){a=a|0;b=b|0;if(!a)a=0;else a=Va(a,b,0)|0;return a|0}function Va(b,d,e){b=b|0;d=d|0;e=e|0;do if(b){if(d>>>0<128){a[b>>0]=d;b=1;break}if(!(c[c[(Wa()|0)+188>>2]>>2]|0))if((d&-128|0)==57216){a[b>>0]=d;b=1;break}else{c[(Da()|0)>>2]=84;b=-1;break}if(d>>>0<2048){a[b>>0]=d>>>6|192;a[b+1>>0]=d&63|128;b=2;break}if(d>>>0<55296|(d&-8192|0)==57344){a[b>>0]=d>>>12|224;a[b+1>>0]=d>>>6&63|128;a[b+2>>0]=d&63|128;b=3;break}if((d+-65536|0)>>>0<1048576){a[b>>0]=d>>>18|240;a[b+1>>0]=d>>>12&63|128;a[b+2>>0]=d>>>6&63|128;a[b+3>>0]=d&63|128;b=4;break}else{c[(Da()|0)>>2]=84;b=-1;break}}else b=1;while(0);return b|0}function Wa(){return Xa()|0}function Xa(){return 644}function Ya(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;g=e+16|0;f=c[g>>2]|0;if(!f)if(!(Za(e)|0)){f=c[g>>2]|0;h=5}else f=0;else h=5;a:do if((h|0)==5){j=e+20|0;i=c[j>>2]|0;g=i;if((f-i|0)>>>0>>0){f=N[c[e+36>>2]&1](e,b,d)|0;break}b:do if((a[e+75>>0]|0)<0|(d|0)==0){h=g;e=0;g=d;f=b}else{i=d;while(1){f=i+-1|0;if((a[b+f>>0]|0)==10)break;if(!f){h=g;e=0;g=d;f=b;break b}else i=f}f=N[c[e+36>>2]&1](e,b,i)|0;if(f>>>0>>0)break a;h=c[j>>2]|0;e=i;g=d-i|0;f=b+i|0}while(0);mb(h|0,f|0,g|0)|0;c[j>>2]=(c[j>>2]|0)+g;f=e+g|0}while(0);return f|0}function Za(b){b=b|0;var d=0,e=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;d=c[b>>2]|0;if(!(d&8)){c[b+8>>2]=0;c[b+4>>2]=0;d=c[b+44>>2]|0;c[b+28>>2]=d;c[b+20>>2]=d;c[b+16>>2]=d+(c[b+48>>2]|0);d=0}else{c[b>>2]=d|32;d=-1}return d|0}function _a(a){a=+a;var b=0;g[h>>3]=a;b=c[h>>2]|0;u(c[h+4>>2]|0);return b|0}function $a(a,b){a=+a;b=b|0;var d=0,e=0,f=0;g[h>>3]=a;d=c[h>>2]|0;e=c[h+4>>2]|0;f=kb(d|0,e|0,52)|0;v()|0;switch(f&2047){case 0:{if(a!=0.0){a=+$a(a*18446744073709551616.0,b);d=(c[b>>2]|0)+-64|0}else d=0;c[b>>2]=d;break}case 2047:break;default:{c[b>>2]=(f&2047)+-1022;c[h>>2]=d;c[h+4>>2]=e&-2146435073|1071644672;a=+g[h>>3]}}return +a}function ab(a,b){a=a|0;b=b|0;var d=0,e=0;d=I;I=I+16|0;e=d;c[e>>2]=b;b=Ea(c[160]|0,a,e)|0;I=d;return b|0}function bb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=I;I=I+16|0;n=w;do if(a>>>0<245){k=a>>>0<11?16:a+11&-8;a=k>>>3;m=c[549]|0;d=m>>>a;if(d&3|0){e=(d&1^1)+a|0;f=2236+(e<<1<<2)|0;b=f+8|0;a=c[b>>2]|0;g=a+8|0;d=c[g>>2]|0;if((d|0)==(f|0))c[549]=m&~(1<>2]=f;c[b>>2]=d}v=e<<3;c[a+4>>2]=v|3;v=a+v+4|0;c[v>>2]=c[v>>2]|1;v=g;I=w;return v|0}l=c[551]|0;if(k>>>0>l>>>0){if(d|0){i=2<>>12&16;d=d>>>i;a=d>>>5&8;d=d>>>a;g=d>>>2&4;d=d>>>g;b=d>>>1&2;d=d>>>b;e=d>>>1&1;e=(a|i|g|b|e)+(d>>>e)|0;d=2236+(e<<1<<2)|0;b=d+8|0;g=c[b>>2]|0;i=g+8|0;a=c[i>>2]|0;if((a|0)==(d|0)){a=m&~(1<>2]=d;c[b>>2]=a;a=m}v=e<<3;h=v-k|0;c[g+4>>2]=k|3;f=g+k|0;c[f+4>>2]=h|1;c[g+v>>2]=h;if(l|0){e=c[554]|0;b=l>>>3;d=2236+(b<<1<<2)|0;b=1<>2]|0}c[b>>2]=e;c[a+12>>2]=e;c[e+8>>2]=a;c[e+12>>2]=d}c[551]=h;c[554]=f;v=i;I=w;return v|0}g=c[550]|0;if(g){i=(g&0-g)+-1|0;f=i>>>12&16;i=i>>>f;e=i>>>5&8;i=i>>>e;h=i>>>2&4;i=i>>>h;d=i>>>1&2;i=i>>>d;j=i>>>1&1;j=c[2500+((e|f|h|d|j)+(i>>>j)<<2)>>2]|0;i=(c[j+4>>2]&-8)-k|0;d=j;while(1){a=c[d+16>>2]|0;if(!a){a=c[d+20>>2]|0;if(!a)break}d=(c[a+4>>2]&-8)-k|0;h=d>>>0>>0;i=h?d:i;d=a;j=h?a:j}h=j+k|0;if(h>>>0>j>>>0){f=c[j+24>>2]|0;b=c[j+12>>2]|0;do if((b|0)==(j|0)){a=j+20|0;b=c[a>>2]|0;if(!b){a=j+16|0;b=c[a>>2]|0;if(!b){d=0;break}}while(1){e=b+20|0;d=c[e>>2]|0;if(!d){e=b+16|0;d=c[e>>2]|0;if(!d)break;else{b=d;a=e}}else{b=d;a=e}}c[a>>2]=0;d=b}else{d=c[j+8>>2]|0;c[d+12>>2]=b;c[b+8>>2]=d;d=b}while(0);do if(f|0){b=c[j+28>>2]|0;a=2500+(b<<2)|0;if((j|0)==(c[a>>2]|0)){c[a>>2]=d;if(!d){c[550]=g&~(1<>2]|0)==(j|0)?v:f+20|0)>>2]=d;if(!d)break}c[d+24>>2]=f;b=c[j+16>>2]|0;if(b|0){c[d+16>>2]=b;c[b+24>>2]=d}b=c[j+20>>2]|0;if(b|0){c[d+20>>2]=b;c[b+24>>2]=d}}while(0);if(i>>>0<16){v=i+k|0;c[j+4>>2]=v|3;v=j+v+4|0;c[v>>2]=c[v>>2]|1}else{c[j+4>>2]=k|3;c[h+4>>2]=i|1;c[h+i>>2]=i;if(l|0){e=c[554]|0;b=l>>>3;d=2236+(b<<1<<2)|0;b=1<>2]|0}c[b>>2]=e;c[a+12>>2]=e;c[e+8>>2]=a;c[e+12>>2]=d}c[551]=i;c[554]=h}v=j+8|0;I=w;return v|0}else m=k}else m=k}else m=k}else if(a>>>0<=4294967231){a=a+11|0;k=a&-8;e=c[550]|0;if(e){d=0-k|0;a=a>>>8;if(a)if(k>>>0>16777215)j=31;else{m=(a+1048320|0)>>>16&8;q=a<>>16&4;q=q<>>16&2;j=14-(i|m|j)+(q<>>15)|0;j=k>>>(j+7|0)&1|j<<1}else j=0;a=c[2500+(j<<2)>>2]|0;a:do if(!a){f=0;a=0;q=61}else{f=0;h=k<<((j|0)==31?0:25-(j>>>1)|0);i=a;a=0;while(1){g=(c[i+4>>2]&-8)-k|0;if(g>>>0>>0)if(!g){d=0;f=i;a=i;q=65;break a}else{d=g;a=i}q=c[i+20>>2]|0;i=c[i+16+(h>>>31<<2)>>2]|0;f=(q|0)==0|(q|0)==(i|0)?f:q;if(!i){q=61;break}else h=h<<1}}while(0);if((q|0)==61){if((f|0)==0&(a|0)==0){a=2<>>12&16;a=a>>>i;h=a>>>5&8;a=a>>>h;j=a>>>2&4;a=a>>>j;m=a>>>1&2;a=a>>>m;f=a>>>1&1;f=c[2500+((h|i|j|m|f)+(a>>>f)<<2)>>2]|0;a=0}if(!f){i=d;g=a}else q=65}if((q|0)==65)while(1){m=(c[f+4>>2]&-8)-k|0;g=m>>>0>>0;d=g?m:d;g=g?f:a;a=c[f+16>>2]|0;if(!a)a=c[f+20>>2]|0;if(!a){i=d;break}else{f=a;a=g}}if(((g|0)!=0?i>>>0<((c[551]|0)-k|0)>>>0:0)?(l=g+k|0,l>>>0>g>>>0):0){h=c[g+24>>2]|0;b=c[g+12>>2]|0;do if((b|0)==(g|0)){a=g+20|0;b=c[a>>2]|0;if(!b){a=g+16|0;b=c[a>>2]|0;if(!b){b=0;break}}while(1){f=b+20|0;d=c[f>>2]|0;if(!d){f=b+16|0;d=c[f>>2]|0;if(!d)break;else{b=d;a=f}}else{b=d;a=f}}c[a>>2]=0}else{v=c[g+8>>2]|0;c[v+12>>2]=b;c[b+8>>2]=v}while(0);do if(h){a=c[g+28>>2]|0;d=2500+(a<<2)|0;if((g|0)==(c[d>>2]|0)){c[d>>2]=b;if(!b){e=e&~(1<>2]|0)==(g|0)?v:h+20|0)>>2]=b;if(!b)break}c[b+24>>2]=h;a=c[g+16>>2]|0;if(a|0){c[b+16>>2]=a;c[a+24>>2]=b}a=c[g+20>>2]|0;if(a){c[b+20>>2]=a;c[a+24>>2]=b}}while(0);b:do if(i>>>0<16){v=i+k|0;c[g+4>>2]=v|3;v=g+v+4|0;c[v>>2]=c[v>>2]|1}else{c[g+4>>2]=k|3;c[l+4>>2]=i|1;c[l+i>>2]=i;b=i>>>3;if(i>>>0<256){d=2236+(b<<1<<2)|0;a=c[549]|0;b=1<>2]|0}c[b>>2]=l;c[a+12>>2]=l;c[l+8>>2]=a;c[l+12>>2]=d;break}b=i>>>8;if(b)if(i>>>0>16777215)d=31;else{u=(b+1048320|0)>>>16&8;v=b<>>16&4;v=v<>>16&2;d=14-(t|u|d)+(v<>>15)|0;d=i>>>(d+7|0)&1|d<<1}else d=0;b=2500+(d<<2)|0;c[l+28>>2]=d;a=l+16|0;c[a+4>>2]=0;c[a>>2]=0;a=1<>2]=l;c[l+24>>2]=b;c[l+12>>2]=l;c[l+8>>2]=l;break}b=c[b>>2]|0;c:do if((c[b+4>>2]&-8|0)!=(i|0)){e=i<<((d|0)==31?0:25-(d>>>1)|0);while(1){d=b+16+(e>>>31<<2)|0;a=c[d>>2]|0;if(!a)break;if((c[a+4>>2]&-8|0)==(i|0)){b=a;break c}else{e=e<<1;b=a}}c[d>>2]=l;c[l+24>>2]=b;c[l+12>>2]=l;c[l+8>>2]=l;break b}while(0);u=b+8|0;v=c[u>>2]|0;c[v+12>>2]=l;c[u>>2]=l;c[l+8>>2]=v;c[l+12>>2]=b;c[l+24>>2]=0}while(0);v=g+8|0;I=w;return v|0}else m=k}else m=k}else m=-1;while(0);d=c[551]|0;if(d>>>0>=m>>>0){a=d-m|0;b=c[554]|0;if(a>>>0>15){v=b+m|0;c[554]=v;c[551]=a;c[v+4>>2]=a|1;c[b+d>>2]=a;c[b+4>>2]=m|3}else{c[551]=0;c[554]=0;c[b+4>>2]=d|3;v=b+d+4|0;c[v>>2]=c[v>>2]|1}v=b+8|0;I=w;return v|0}h=c[552]|0;if(h>>>0>m>>>0){t=h-m|0;c[552]=t;v=c[555]|0;u=v+m|0;c[555]=u;c[u+4>>2]=t|1;c[v+4>>2]=m|3;v=v+8|0;I=w;return v|0}if(!(c[667]|0)){c[669]=4096;c[668]=4096;c[670]=-1;c[671]=-1;c[672]=0;c[660]=0;c[667]=n&-16^1431655768;a=4096}else a=c[669]|0;i=m+48|0;j=m+47|0;g=a+j|0;e=0-a|0;k=g&e;if(k>>>0<=m>>>0){v=0;I=w;return v|0}a=c[659]|0;if(a|0?(l=c[657]|0,n=l+k|0,n>>>0<=l>>>0|n>>>0>a>>>0):0){v=0;I=w;return v|0}d:do if(!(c[660]&4)){d=c[555]|0;e:do if(d){f=2644;while(1){n=c[f>>2]|0;if(n>>>0<=d>>>0?(n+(c[f+4>>2]|0)|0)>>>0>d>>>0:0)break;a=c[f+8>>2]|0;if(!a){q=128;break e}else f=a}b=g-h&e;if(b>>>0<2147483647){a=pb(b|0)|0;if((a|0)==((c[f>>2]|0)+(c[f+4>>2]|0)|0)){if((a|0)!=(-1|0)){h=a;g=b;q=145;break d}}else{e=a;q=136}}else b=0}else q=128;while(0);do if((q|0)==128){d=pb(0)|0;if((d|0)!=(-1|0)?(b=d,o=c[668]|0,p=o+-1|0,b=((p&b|0)==0?0:(p+b&0-o)-b|0)+k|0,o=c[657]|0,p=b+o|0,b>>>0>m>>>0&b>>>0<2147483647):0){n=c[659]|0;if(n|0?p>>>0<=o>>>0|p>>>0>n>>>0:0){b=0;break}a=pb(b|0)|0;if((a|0)==(d|0)){h=d;g=b;q=145;break d}else{e=a;q=136}}else b=0}while(0);do if((q|0)==136){d=0-b|0;if(!(i>>>0>b>>>0&(b>>>0<2147483647&(e|0)!=(-1|0))))if((e|0)==(-1|0)){b=0;break}else{h=e;g=b;q=145;break d}a=c[669]|0;a=j-b+a&0-a;if(a>>>0>=2147483647){h=e;g=b;q=145;break d}if((pb(a|0)|0)==(-1|0)){pb(d|0)|0;b=0;break}else{h=e;g=a+b|0;q=145;break d}}while(0);c[660]=c[660]|4;q=143}else{b=0;q=143}while(0);if(((q|0)==143?k>>>0<2147483647:0)?(r=pb(k|0)|0,p=pb(0)|0,t=p-r|0,s=t>>>0>(m+40|0)>>>0,!((r|0)==(-1|0)|s^1|r>>>0

>>0&((r|0)!=(-1|0)&(p|0)!=(-1|0))^1)):0){h=r;g=s?t:b;q=145}if((q|0)==145){b=(c[657]|0)+g|0;c[657]=b;if(b>>>0>(c[658]|0)>>>0)c[658]=b;j=c[555]|0;f:do if(j){e=2644;while(1){b=c[e>>2]|0;a=c[e+4>>2]|0;if((h|0)==(b+a|0)){q=154;break}d=c[e+8>>2]|0;if(!d)break;else e=d}if(((q|0)==154?(u=e+4|0,(c[e+12>>2]&8|0)==0):0)?h>>>0>j>>>0&b>>>0<=j>>>0:0){c[u>>2]=a+g;v=(c[552]|0)+g|0;t=j+8|0;t=(t&7|0)==0?0:0-t&7;u=j+t|0;t=v-t|0;c[555]=u;c[552]=t;c[u+4>>2]=t|1;c[j+v+4>>2]=40;c[556]=c[671];break}if(h>>>0<(c[553]|0)>>>0)c[553]=h;d=h+g|0;a=2644;while(1){if((c[a>>2]|0)==(d|0)){q=162;break}b=c[a+8>>2]|0;if(!b)break;else a=b}if((q|0)==162?(c[a+12>>2]&8|0)==0:0){c[a>>2]=h;l=a+4|0;c[l>>2]=(c[l>>2]|0)+g;l=h+8|0;l=h+((l&7|0)==0?0:0-l&7)|0;b=d+8|0;b=d+((b&7|0)==0?0:0-b&7)|0;k=l+m|0;i=b-l-m|0;c[l+4>>2]=m|3;g:do if((j|0)==(b|0)){v=(c[552]|0)+i|0;c[552]=v;c[555]=k;c[k+4>>2]=v|1}else{if((c[554]|0)==(b|0)){v=(c[551]|0)+i|0;c[551]=v;c[554]=k;c[k+4>>2]=v|1;c[k+v>>2]=v;break}a=c[b+4>>2]|0;if((a&3|0)==1){h=a&-8;e=a>>>3;h:do if(a>>>0<256){a=c[b+8>>2]|0;d=c[b+12>>2]|0;if((d|0)==(a|0)){c[549]=c[549]&~(1<>2]=d;c[d+8>>2]=a;break}}else{g=c[b+24>>2]|0;a=c[b+12>>2]|0;do if((a|0)==(b|0)){e=b+16|0;d=e+4|0;a=c[d>>2]|0;if(!a){a=c[e>>2]|0;if(!a){a=0;break}else d=e}while(1){f=a+20|0;e=c[f>>2]|0;if(!e){f=a+16|0;e=c[f>>2]|0;if(!e)break;else{a=e;d=f}}else{a=e;d=f}}c[d>>2]=0}else{v=c[b+8>>2]|0;c[v+12>>2]=a;c[a+8>>2]=v}while(0);if(!g)break;d=c[b+28>>2]|0;e=2500+(d<<2)|0;do if((c[e>>2]|0)!=(b|0)){v=g+16|0;c[((c[v>>2]|0)==(b|0)?v:g+20|0)>>2]=a;if(!a)break h}else{c[e>>2]=a;if(a|0)break;c[550]=c[550]&~(1<>2]=g;e=b+16|0;d=c[e>>2]|0;if(d|0){c[a+16>>2]=d;c[d+24>>2]=a}d=c[e+4>>2]|0;if(!d)break;c[a+20>>2]=d;c[d+24>>2]=a}while(0);b=b+h|0;f=h+i|0}else f=i;b=b+4|0;c[b>>2]=c[b>>2]&-2;c[k+4>>2]=f|1;c[k+f>>2]=f;b=f>>>3;if(f>>>0<256){d=2236+(b<<1<<2)|0;a=c[549]|0;b=1<>2]|0}c[b>>2]=k;c[a+12>>2]=k;c[k+8>>2]=a;c[k+12>>2]=d;break}b=f>>>8;do if(!b)e=0;else{if(f>>>0>16777215){e=31;break}u=(b+1048320|0)>>>16&8;v=b<>>16&4;v=v<>>16&2;e=14-(t|u|e)+(v<>>15)|0;e=f>>>(e+7|0)&1|e<<1}while(0);a=2500+(e<<2)|0;c[k+28>>2]=e;b=k+16|0;c[b+4>>2]=0;c[b>>2]=0;b=c[550]|0;d=1<>2]=k;c[k+24>>2]=a;c[k+12>>2]=k;c[k+8>>2]=k;break}b=c[a>>2]|0;i:do if((c[b+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=b+16+(e>>>31<<2)|0;a=c[d>>2]|0;if(!a)break;if((c[a+4>>2]&-8|0)==(f|0)){b=a;break i}else{e=e<<1;b=a}}c[d>>2]=k;c[k+24>>2]=b;c[k+12>>2]=k;c[k+8>>2]=k;break g}while(0);u=b+8|0;v=c[u>>2]|0;c[v+12>>2]=k;c[u>>2]=k;c[k+8>>2]=v;c[k+12>>2]=b;c[k+24>>2]=0}while(0);v=l+8|0;I=w;return v|0}a=2644;while(1){b=c[a>>2]|0;if(b>>>0<=j>>>0?(v=b+(c[a+4>>2]|0)|0,v>>>0>j>>>0):0)break;a=c[a+8>>2]|0}f=v+-47|0;a=f+8|0;a=f+((a&7|0)==0?0:0-a&7)|0;f=j+16|0;a=a>>>0>>0?j:a;b=a+8|0;d=g+-40|0;t=h+8|0;t=(t&7|0)==0?0:0-t&7;u=h+t|0;t=d-t|0;c[555]=u;c[552]=t;c[u+4>>2]=t|1;c[h+d+4>>2]=40;c[556]=c[671];d=a+4|0;c[d>>2]=27;c[b>>2]=c[661];c[b+4>>2]=c[662];c[b+8>>2]=c[663];c[b+12>>2]=c[664];c[661]=h;c[662]=g;c[664]=0;c[663]=b;b=a+24|0;do{u=b;b=b+4|0;c[b>>2]=7}while((u+8|0)>>>0>>0);if((a|0)!=(j|0)){g=a-j|0;c[d>>2]=c[d>>2]&-2;c[j+4>>2]=g|1;c[a>>2]=g;b=g>>>3;if(g>>>0<256){d=2236+(b<<1<<2)|0;a=c[549]|0;b=1<>2]|0}c[b>>2]=j;c[a+12>>2]=j;c[j+8>>2]=a;c[j+12>>2]=d;break}b=g>>>8;if(b)if(g>>>0>16777215)e=31;else{u=(b+1048320|0)>>>16&8;v=b<>>16&4;v=v<>>16&2;e=14-(t|u|e)+(v<>>15)|0;e=g>>>(e+7|0)&1|e<<1}else e=0;d=2500+(e<<2)|0;c[j+28>>2]=e;c[j+20>>2]=0;c[f>>2]=0;b=c[550]|0;a=1<>2]=j;c[j+24>>2]=d;c[j+12>>2]=j;c[j+8>>2]=j;break}b=c[d>>2]|0;j:do if((c[b+4>>2]&-8|0)!=(g|0)){e=g<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=b+16+(e>>>31<<2)|0;a=c[d>>2]|0;if(!a)break;if((c[a+4>>2]&-8|0)==(g|0)){b=a;break j}else{e=e<<1;b=a}}c[d>>2]=j;c[j+24>>2]=b;c[j+12>>2]=j;c[j+8>>2]=j;break f}while(0);u=b+8|0;v=c[u>>2]|0;c[v+12>>2]=j;c[u>>2]=j;c[j+8>>2]=v;c[j+12>>2]=b;c[j+24>>2]=0}}else{v=c[553]|0;if((v|0)==0|h>>>0>>0)c[553]=h;c[661]=h;c[662]=g;c[664]=0;c[558]=c[667];c[557]=-1;c[562]=2236;c[561]=2236;c[564]=2244;c[563]=2244;c[566]=2252;c[565]=2252;c[568]=2260;c[567]=2260;c[570]=2268;c[569]=2268;c[572]=2276;c[571]=2276;c[574]=2284;c[573]=2284;c[576]=2292;c[575]=2292;c[578]=2300;c[577]=2300;c[580]=2308;c[579]=2308;c[582]=2316;c[581]=2316;c[584]=2324;c[583]=2324;c[586]=2332;c[585]=2332;c[588]=2340;c[587]=2340;c[590]=2348;c[589]=2348;c[592]=2356;c[591]=2356;c[594]=2364;c[593]=2364;c[596]=2372;c[595]=2372;c[598]=2380;c[597]=2380;c[600]=2388;c[599]=2388;c[602]=2396;c[601]=2396;c[604]=2404;c[603]=2404;c[606]=2412;c[605]=2412;c[608]=2420;c[607]=2420;c[610]=2428;c[609]=2428;c[612]=2436;c[611]=2436;c[614]=2444;c[613]=2444;c[616]=2452;c[615]=2452;c[618]=2460;c[617]=2460;c[620]=2468;c[619]=2468;c[622]=2476;c[621]=2476;c[624]=2484;c[623]=2484;v=g+-40|0;t=h+8|0;t=(t&7|0)==0?0:0-t&7;u=h+t|0;t=v-t|0;c[555]=u;c[552]=t;c[u+4>>2]=t|1;c[h+v+4>>2]=40;c[556]=c[671]}while(0);b=c[552]|0;if(b>>>0>m>>>0){t=b-m|0;c[552]=t;v=c[555]|0;u=v+m|0;c[555]=u;c[u+4>>2]=t|1;c[v+4>>2]=m|3;v=v+8|0;I=w;return v|0}}c[(Da()|0)>>2]=12;v=0;I=w;return v|0}function cb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(!a)return;d=a+-8|0;e=c[553]|0;a=c[a+-4>>2]|0;b=a&-8;k=d+b|0;do if(!(a&1)){f=c[d>>2]|0;if(!(a&3))return;g=d+(0-f)|0;h=f+b|0;if(g>>>0>>0)return;if((c[554]|0)==(g|0)){b=k+4|0;a=c[b>>2]|0;if((a&3|0)!=3){i=g;j=g;b=h;break}c[551]=h;c[b>>2]=a&-2;c[g+4>>2]=h|1;c[g+h>>2]=h;return}d=f>>>3;if(f>>>0<256){a=c[g+8>>2]|0;b=c[g+12>>2]|0;if((b|0)==(a|0)){c[549]=c[549]&~(1<>2]=b;c[b+8>>2]=a;i=g;j=g;b=h;break}}f=c[g+24>>2]|0;a=c[g+12>>2]|0;do if((a|0)==(g|0)){d=g+16|0;b=d+4|0;a=c[b>>2]|0;if(!a){a=c[d>>2]|0;if(!a){d=0;break}else b=d}while(1){e=a+20|0;d=c[e>>2]|0;if(!d){e=a+16|0;d=c[e>>2]|0;if(!d)break;else{a=d;b=e}}else{a=d;b=e}}c[b>>2]=0;d=a}else{d=c[g+8>>2]|0;c[d+12>>2]=a;c[a+8>>2]=d;d=a}while(0);if(f){a=c[g+28>>2]|0;b=2500+(a<<2)|0;if((c[b>>2]|0)==(g|0)){c[b>>2]=d;if(!d){c[550]=c[550]&~(1<>2]|0)==(g|0)?j:f+20|0)>>2]=d;if(!d){i=g;j=g;b=h;break}}c[d+24>>2]=f;b=g+16|0;a=c[b>>2]|0;if(a|0){c[d+16>>2]=a;c[a+24>>2]=d}a=c[b+4>>2]|0;if(a){c[d+20>>2]=a;c[a+24>>2]=d;i=g;j=g;b=h}else{i=g;j=g;b=h}}else{i=g;j=g;b=h}}else{i=d;j=d}while(0);if(i>>>0>=k>>>0)return;a=k+4|0;d=c[a>>2]|0;if(!(d&1))return;if(!(d&2)){if((c[555]|0)==(k|0)){k=(c[552]|0)+b|0;c[552]=k;c[555]=j;c[j+4>>2]=k|1;if((j|0)!=(c[554]|0))return;c[554]=0;c[551]=0;return}if((c[554]|0)==(k|0)){k=(c[551]|0)+b|0;c[551]=k;c[554]=i;c[j+4>>2]=k|1;c[i+k>>2]=k;return}f=(d&-8)+b|0;e=d>>>3;do if(d>>>0<256){b=c[k+8>>2]|0;a=c[k+12>>2]|0;if((a|0)==(b|0)){c[549]=c[549]&~(1<>2]=a;c[a+8>>2]=b;break}}else{g=c[k+24>>2]|0;a=c[k+12>>2]|0;do if((a|0)==(k|0)){d=k+16|0;b=d+4|0;a=c[b>>2]|0;if(!a){a=c[d>>2]|0;if(!a){d=0;break}else b=d}while(1){e=a+20|0;d=c[e>>2]|0;if(!d){e=a+16|0;d=c[e>>2]|0;if(!d)break;else{a=d;b=e}}else{a=d;b=e}}c[b>>2]=0;d=a}else{d=c[k+8>>2]|0;c[d+12>>2]=a;c[a+8>>2]=d;d=a}while(0);if(g|0){a=c[k+28>>2]|0;b=2500+(a<<2)|0;if((c[b>>2]|0)==(k|0)){c[b>>2]=d;if(!d){c[550]=c[550]&~(1<>2]|0)==(k|0)?h:g+20|0)>>2]=d;if(!d)break}c[d+24>>2]=g;b=k+16|0;a=c[b>>2]|0;if(a|0){c[d+16>>2]=a;c[a+24>>2]=d}a=c[b+4>>2]|0;if(a|0){c[d+20>>2]=a;c[a+24>>2]=d}}}while(0);c[j+4>>2]=f|1;c[i+f>>2]=f;if((j|0)==(c[554]|0)){c[551]=f;return}}else{c[a>>2]=d&-2;c[j+4>>2]=b|1;c[i+b>>2]=b;f=b}a=f>>>3;if(f>>>0<256){d=2236+(a<<1<<2)|0;b=c[549]|0;a=1<>2]|0}c[a>>2]=j;c[b+12>>2]=j;c[j+8>>2]=b;c[j+12>>2]=d;return}a=f>>>8;if(a)if(f>>>0>16777215)e=31;else{i=(a+1048320|0)>>>16&8;k=a<>>16&4;k=k<>>16&2;e=14-(h|i|e)+(k<>>15)|0;e=f>>>(e+7|0)&1|e<<1}else e=0;b=2500+(e<<2)|0;c[j+28>>2]=e;c[j+20>>2]=0;c[j+16>>2]=0;a=c[550]|0;d=1<>2]=j;c[j+24>>2]=b;c[j+12>>2]=j;c[j+8>>2]=j}else{a=c[b>>2]|0;b:do if((c[a+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=a+16+(e>>>31<<2)|0;b=c[d>>2]|0;if(!b)break;if((c[b+4>>2]&-8|0)==(f|0)){a=b;break b}else{e=e<<1;a=b}}c[d>>2]=j;c[j+24>>2]=a;c[j+12>>2]=j;c[j+8>>2]=j;break a}while(0);i=a+8|0;k=c[i>>2]|0;c[k+12>>2]=j;c[i>>2]=j;c[j+8>>2]=k;c[j+12>>2]=a;c[j+24>>2]=0}while(0);k=(c[557]|0)+-1|0;c[557]=k;if(k|0)return;a=2652;while(1){a=c[a>>2]|0;if(!a)break;else a=a+8|0}c[557]=-1;return}function db(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=r(e,f)|0;d=a>>>16;a=(c>>>16)+(r(e,d)|0)|0;e=b>>>16;b=r(e,f)|0;return (u((a>>>16)+(r(e,d)|0)+(((a&65535)+b|0)>>>16)|0),a+b<<16|c&65535|0)|0}function eb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=db(e,f)|0;a=v()|0;return (u((r(b,f)|0)+(r(d,e)|0)+a|a&0|0),c|0|0)|0}function fb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (u(b+d+(c>>>0>>0|0)>>>0|0),c|0)|0}function gb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (u(d|0),a-c>>>0|0)|0}function hb(a){a=a|0;return (a?31-(s(a^a-1)|0)|0:32)|0}function ib(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;l=a;j=b;k=j;h=d;n=e;i=n;if(!k){g=(f|0)!=0;if(!i){if(g){c[f>>2]=(l>>>0)%(h>>>0);c[f+4>>2]=0}n=0;f=(l>>>0)/(h>>>0)>>>0;return (u(n|0),f)|0}else{if(!g){n=0;f=0;return (u(n|0),f)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;f=0;return (u(n|0),f)|0}}g=(i|0)==0;do if(h){if(!g){g=(s(i|0)|0)-(s(k|0)|0)|0;if(g>>>0<=31){m=g+1|0;i=31-g|0;b=g-31>>31;h=m;a=l>>>(m>>>0)&b|k<>>(m>>>0)&b;g=0;i=l<>2]=a|0;c[f+4>>2]=j|b&0;n=0;f=0;return (u(n|0),f)|0}g=h-1|0;if(g&h|0){i=(s(h|0)|0)+33-(s(k|0)|0)|0;p=64-i|0;m=32-i|0;j=m>>31;o=i-32|0;b=o>>31;h=i;a=m-1>>31&k>>>(o>>>0)|(k<>>(i>>>0))&b;b=b&k>>>(i>>>0);g=l<>>(o>>>0))&j|l<>31;break}if(f|0){c[f>>2]=g&l;c[f+4>>2]=0}if((h|0)==1){o=j|b&0;p=a|0|0;return (u(o|0),p)|0}else{p=hb(h|0)|0;o=k>>>(p>>>0)|0;p=k<<32-p|l>>>(p>>>0)|0;return (u(o|0),p)|0}}else{if(g){if(f|0){c[f>>2]=(k>>>0)%(h>>>0);c[f+4>>2]=0}o=0;p=(k>>>0)/(h>>>0)>>>0;return (u(o|0),p)|0}if(!l){if(f|0){c[f>>2]=0;c[f+4>>2]=(k>>>0)%(i>>>0)}o=0;p=(k>>>0)/(i>>>0)>>>0;return (u(o|0),p)|0}g=i-1|0;if(!(g&i)){if(f|0){c[f>>2]=a|0;c[f+4>>2]=g&k|b&0}o=0;p=k>>>((hb(i|0)|0)>>>0);return (u(o|0),p)|0}g=(s(i|0)|0)-(s(k|0)|0)|0;if(g>>>0<=30){b=g+1|0;i=31-g|0;h=b;a=k<>>(b>>>0);b=k>>>(b>>>0);g=0;i=l<>2]=a|0;c[f+4>>2]=j|b&0;o=0;p=0;return (u(o|0),p)|0}while(0);if(!h){k=i;j=0;i=0}else{m=d|0|0;l=n|e&0;k=fb(m|0,l|0,-1,-1)|0;d=v()|0;j=i;i=0;do{e=j;j=g>>>31|j<<1;g=i|g<<1;e=a<<1|e>>>31|0;n=a>>>31|b<<1|0;gb(k|0,d|0,e|0,n|0)|0;p=v()|0;o=p>>31|((p|0)<0?-1:0)<<1;i=o&1;a=gb(e|0,n|0,o&m|0,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l|0)|0;b=v()|0;h=h-1|0}while((h|0)!=0);k=j;j=0}h=0;if(f|0){c[f>>2]=a;c[f+4>>2]=b}o=(g|0)>>>31|(k|h)<<1|(h<<1|g>>>31)&0|j;p=(g<<1|0>>>31)&-2|i;return (u(o|0),p)|0}function jb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ib(a,b,c,d,0)|0}function kb(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){u(b>>>c|0);return a>>>c|(b&(1<>>c-32|0}function lb(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){u(b<>>32-c|0);return a<=8192){z(b|0,d|0,e|0)|0;return b|0}h=b|0;g=b+e|0;if((b&3)==(d&3)){while(b&3){if(!e)return h|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}e=g&-4|0;f=e-64|0;while((b|0)<=(f|0)){c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];c[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];c[b+28>>2]=c[d+28>>2];c[b+32>>2]=c[d+32>>2];c[b+36>>2]=c[d+36>>2];c[b+40>>2]=c[d+40>>2];c[b+44>>2]=c[d+44>>2];c[b+48>>2]=c[d+48>>2];c[b+52>>2]=c[d+52>>2];c[b+56>>2]=c[d+56>>2];c[b+60>>2]=c[d+60>>2];b=b+64|0;d=d+64|0}while((b|0)<(e|0)){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}}else{e=g-4|0;while((b|0)<(e|0)){a[b>>0]=a[d>>0]|0;a[b+1>>0]=a[d+1>>0]|0;a[b+2>>0]=a[d+2>>0]|0;a[b+3>>0]=a[d+3>>0]|0;b=b+4|0;d=d+4|0}}while((b|0)<(g|0)){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}return h|0}function nb(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((c|0)<(b|0)&(b|0)<(c+d|0)){e=b;c=c+d|0;b=b+d|0;while((d|0)>0){b=b-1|0;c=c-1|0;d=d-1|0;a[b>>0]=a[c>>0]|0}b=e}else mb(b,c,d)|0;return b|0}function ob(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=b+e|0;d=d&255;if((e|0)>=67){while(b&3){a[b>>0]=d;b=b+1|0}f=h&-4|0;i=d|d<<8|d<<16|d<<24;g=f-64|0;while((b|0)<=(g|0)){c[b>>2]=i;c[b+4>>2]=i;c[b+8>>2]=i;c[b+12>>2]=i;c[b+16>>2]=i;c[b+20>>2]=i;c[b+24>>2]=i;c[b+28>>2]=i;c[b+32>>2]=i;c[b+36>>2]=i;c[b+40>>2]=i;c[b+44>>2]=i;c[b+48>>2]=i;c[b+52>>2]=i;c[b+56>>2]=i;c[b+60>>2]=i;b=b+64|0}while((b|0)<(f|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(h|0)){a[b>>0]=d;b=b+1|0}return h-e|0}function pb(a){a=a|0;var b=0,d=0,e=0;e=y()|0;d=c[i>>2]|0;b=d+a|0;if((a|0)>0&(b|0)<(d|0)|(b|0)<0){C(b|0)|0;w(12);return -1}if((b|0)>(e|0))if(!(A(b|0)|0)){w(12);return -1}c[i>>2]=b;return d|0}function qb(a,b){a=a|0;b=b|0;return L[a&1](b|0)|0}function rb(a,b,c,d,e,f,g){a=a|0;b=b|0;c=+c;d=d|0;e=e|0;f=f|0;g=g|0;return M[a&1](b|0,+c,d|0,e|0,f|0,g|0)|0}function sb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return N[a&1](b|0,c|0,d|0)|0}function tb(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return O[a&1](b|0,c|0,d|0,e|0)|0}function ub(a,b,c){a=a|0;b=b|0;c=c|0;P[a&1](b|0,c|0)}function vb(a){a=a|0;t(0);return 0}function wb(a,b,c,d,e,f){a=a|0;b=+b;c=c|0;d=d|0;e=e|0;f=f|0;t(1);return 0}function xb(a,b,c){a=a|0;b=b|0;c=c|0;t(2);return 0}function yb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;t(3);return 0}function zb(a,b){a=a|0;b=b|0;t(4)} + +// EMSCRIPTEN_END_FUNCS +var L=[vb,Aa];var M=[wb,Fa];var N=[xb,Ba];var O=[yb,Ca];var P=[zb,Ga];return{___errno_location:Da,___muldi3:eb,___udivdi3:jb,_bitshift64Lshr:kb,_bitshift64Shl:lb,_compress:U,_decompress:V,_free:cb,_i64Add:fb,_i64Subtract:gb,_malloc:bb,_memcpy:mb,_memmove:nb,_memset:ob,_sbrk:pb,dynCall_ii:qb,dynCall_iidiiii:rb,dynCall_iiii:sb,dynCall_iiiii:tb,dynCall_vii:ub,establishStackSpace:T,stackAlloc:Q,stackRestore:S,stackSave:R}}) + + +// EMSCRIPTEN_END_ASM +(asmGlobalArg,asmLibraryArg,buffer);var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var ___muldi3=Module["___muldi3"]=asm["___muldi3"];var ___udivdi3=Module["___udivdi3"]=asm["___udivdi3"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _compress=Module["_compress"]=asm["_compress"];var _decompress=Module["_decompress"]=asm["_decompress"];var _free=Module["_free"]=asm["_free"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _memmove=Module["_memmove"]=asm["_memmove"];var _memset=Module["_memset"]=asm["_memset"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var stackSave=Module["stackSave"]=asm["stackSave"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_iidiiii=Module["dynCall_iidiiii"]=asm["dynCall_iidiiii"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_iiiii=Module["dynCall_iiiii"]=asm["dynCall_iiiii"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];Module["asm"]=asm;Module["ccall"]=ccall;if(memoryInitializer){if(!isDataURI(memoryInitializer)){memoryInitializer=locateFile(memoryInitializer)}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=readBinary(memoryInitializer);HEAPU8.set(data,GLOBAL_BASE)}else{addRunDependency("memory initializer");var applyMemoryInitializer=function(data){if(data.byteLength)data=new Uint8Array(data);HEAPU8.set(data,GLOBAL_BASE);if(Module["memoryInitializerRequest"])delete Module["memoryInitializerRequest"].response;removeRunDependency("memory initializer")};var doBrowserLoad=function(){readAsync(memoryInitializer,applyMemoryInitializer,function(){throw"could not load memory initializer "+memoryInitializer})};var memoryInitializerBytes=tryParseAsDataURI(memoryInitializer);if(memoryInitializerBytes){applyMemoryInitializer(memoryInitializerBytes.buffer)}else if(Module["memoryInitializerRequest"]){var useRequest=function(){var request=Module["memoryInitializerRequest"];var response=request.response;if(request.status!==200&&request.status!==0){var data=tryParseAsDataURI(Module["memoryInitializerRequestURL"]);if(data){response=data.buffer}else{console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+request.status+", retrying "+memoryInitializer);doBrowserLoad();return}}applyMemoryInitializer(response)};if(Module["memoryInitializerRequest"].response){setTimeout(useRequest,0)}else{Module["memoryInitializerRequest"].addEventListener("load",useRequest)}}else{doBrowserLoad()}}}var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";out(what);err(what);ABORT=true;EXITSTATUS=1;throw"abort("+what+"). Build with -s ASSERTIONS=1 for more info."}Module["abort"]=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}noExitRuntime=true;run(); + +var HS_LOG_LEVEL = 0; + +function heatshrink_compress(inputBuffer) { + if (inputBuffer.BYTES_PER_ELEMENT!=1) throw new Error("Expecting Byte Array"); + var input_size = inputBuffer.length; + var output_size = input_size + (input_size/2) + 4; + + var bufIn = Module._malloc(input_size); + Module.HEAPU8.set(inputBuffer, bufIn); + // int compress(uint8_t *input, uint32_t input_size, uint8_t *output, uint32_t output_size, int log_lvl) + output_size = Module.ccall('compress', 'number', ['number','number','number','number','number'], [bufIn,input_size,0,0,HS_LOG_LEVEL/*log level*/])+1; + var bufOut = Module._malloc(output_size); + output_size = Module.ccall('compress', 'number', ['number','number','number','number','number'], [bufIn,input_size,bufOut,output_size,HS_LOG_LEVEL/*log level*/]); + // console.log("Compressed to "+output_size); + + var outputBuffer = new Uint8Array(output_size); + for (var i=0;i>16; + var pg=(p>>8)&255; + var pb=p&255; + var dr = r-pr; + var dg = g-pg; + var db = b-pb; + var d = dr*dr + dg*dg + db*db; + if (dthresh; + }, + "2bitbw":function(r,g,b) { + var c = (r+g+b) / 3; + c += 31; // rounding + if (c>255)c=255; + return c>>6; + }, + "4bit":function(r,g,b,a) { + var thresh = 128; + return ( + ((r>thresh)?1:0) | + ((g>thresh)?2:0) | + ((b>thresh)?4:0) | + ((a>thresh)?8:0)); + }, + "4bitmac":function(r,g,b,a) { + return PALETTE.lookup(PALETTE.MAC16,r,g,b,a, true /* no transparency */); + }, + "vga":function(r,g,b,a) { + return PALETTE.lookup(PALETTE.VGA,r,g,b,a); + }, + "web":function(r,g,b,a) { + return PALETTE.lookup(PALETTE.WEB,r,g,b,a); + }, + "rgb565":function(r,g,b,a) { + return ( + ((r&0xF8)<<8) | + ((g&0xFC)<<3) | + ((b&0xF8)>>3)); + }, + }; + var COL_TO_RGB = { + "1bit":function(c) { + return c ? 0xFFFFFFFF : 0xFF000000; + }, + "2bitbw":function(c) { + c = c&3; + c = c | (c<<2) | (c<<4) | (c<<6); + return 0xFF000000|(c<<16)|(c<<8)|c; + }, + "4bit":function(c) { + if (!(c&8)) return 0; + return ((c&1 ? 0xFF0000 : 0xFF000000) | + (c&2 ? 0x00FF00 : 0xFF000000) | + (c&4 ? 0x0000FF : 0xFF000000)); + }, + "4bitmac":function(c) { + return 0xFF000000|PALETTE.MAC16[c]; + }, + "vga":function(c) { + if (c==TRANSPARENT_8BIT) return 0; + return 0xFF000000|PALETTE.VGA[c]; + }, + "web":function(c) { + if (c==TRANSPARENT_8BIT) return 0; + return 0xFF000000|PALETTE.WEB[c]; + }, + "rgb565":function(c) { + var r = (c>>8)&0xF8; + var g = (c>>3)&0xFC; + var b = (c<<3)&0xF8; + return 0xFF000000|(r<<16)|(g<<8)|b; + }, + }; + // What Espruino uses by default + var BPP_TO_COLOR_FORMAT = { + 1 : "1bit", + 2 : "2bitbw", + 4 : "4bitmac", + 8 : "web", + 16 : "rgb565" + }; + + function clip(x) { + if (x<0) return 0; + if (x>255) return 255; + return x; + } + + + /* + See 'getOptions' for possible options + */ + function RGBAtoString(rgba, options) { + options = options||{}; + if (!rgba) throw new Error("No dataIn specified"); + if (!options.width) throw new Error("No Width specified"); + if (!options.height) throw new Error("No Height specified"); + if ("string"!=typeof options.diffusion) + options.diffusion = "none"; + options.compression = options.compression || false; + options.brightness = options.brightness | 0; + options.mode = options.mode || "1bit"; + options.output = options.output || "object"; + options.inverted = options.inverted || false; + options.transparent = !!options.transparent; + var transparentCol = undefined; + if (options.transparent) { + if (options.mode=="4bit") + transparentCol=0; + if (options.mode=="vga" || options.mode=="web") + transparentCol=TRANSPARENT_8BIT; + } + var bpp = COL_BPP[options.mode]; + var bitData = new Uint8Array(((options.width*options.height)*bpp+7)/8); + + function readImage() { + var pixels = new Int32Array(options.width*options.height); + var n = 0; + var er=0,eg=0,eb=0; + for (var y=0; y>>24; + var or = (cr>>16)&255; + var og = (cr>>8)&255; + var ob = cr&255; + if (options.diffusion.startsWith("error") && a>128) { + er = r-or; + eg = g-og; + eb = b-ob; + } else { + er = 0; + eg = 0; + eb = 0; + } + + n++; + } + } + return pixels; + } + function writeImage(pixels) { + var n = 0; + for (var y=0; y>3] |= c ? 128>>(n&7) : 0; + else if (bpp==2) bitData[n>>2] |= c<<((3-(n&3))*2); + else if (bpp==4) bitData[n>>1] |= c<<((n&1)?0:4); + else if (bpp==8) bitData[n] = c; + else if (bpp==16) { bitData[n<<1] = c>>8; bitData[1+(n<<1)] = c&0xFF; } + else throw new Error("Unhandled BPP"); + // Write preview + var cr = COL_TO_RGB[options.mode](c); + if (c===transparentCol) + cr = ((((x>>2)^(y>>2))&1)?0xFFFFFF:0); // pixel pattern + var oa = cr>>>24; + var or = (cr>>16)&255; + var og = (cr>>8)&255; + var ob = cr&255; + if (options.rgbaOut) { + options.rgbaOut[n*4] = or; + options.rgbaOut[n*4+1]= og; + options.rgbaOut[n*4+2]= ob; + options.rgbaOut[n*4+3]=255; + } + n++; + } + } + } + + var pixels = readImage(); + if (options.transparent && transparentCol===undefined && bpp<=16) { + // we have no fixed transparent colour - pick one that's unused + var colors = new Uint32Array(1<=0) + colors[pixels[i]]++; + // find an empty one + for (var i=0;i>2)^(y>>2))&1)?0xFFFFFF:0); + rgba[n*4] = rgba[n*4]*na + chequerboard*a; + rgba[n*4+1] = rgba[n*4+1]*na + chequerboard*a; + rgba[n*4+2] = rgba[n*4+2]*na + chequerboard*a; + rgba[n*4+3] = 255; + n++; + } + } + } + + /* RGBAtoString options, PLUS: + + updateCanvas: update canvas with the quantized image + */ + function canvastoString(canvas, options) { + options = options||{}; + options.width = canvas.width; + options.height = canvas.height; + var ctx = canvas.getContext("2d"); + var imageData = ctx.getImageData(0, 0, options.width, options.height); + var rgba = imageData.data; + if (options.updateCanvas) + options.rgbaOut = rgba; + var str = RGBAtoString(rgba, options); + if (options.updateCanvas) + ctx.putImageData(imageData,0,0); + return str; + } + + /* RGBAtoString options, PLUS: + + */ + function imagetoString(img, options) { + options = options||{}; + var canvas = document.createElement('canvas'); + canvas.width = img.width; + canvas.height = img.height; + var ctx = canvas.getContext("2d"); + ctx.drawImage(img,0,0); + return canvastoString(canvas, options); + } + + function getOptions() { + return { + width : "int", + height : "int", + rgbaOut : "Uint8Array", // to store quantised data + diffusion : ["none"], + compression : "bool", + transparent : "bool", + brightness : "int", + mode : Object.keys(COL_BPP), + output : ["object","string","raw"], + inverted : "bool", + } + } + + /* Decode an Espruino image string into a URL, return undefined if it's not valid. + options = { + transparent : bool // should the image be transparent, or just chequered where transparent? + } */ + function stringToImageURL(data, options) { + options = options||{}; + var p = 0; + var width = 0|data.charCodeAt(p++); + var height = 0|data.charCodeAt(p++); + var bpp = 0|data.charCodeAt(p++); + var transparentCol = -1; + if (bpp&128) { + bpp &= 127; + transparentCol = 0|data.charCodeAt(p++); + } + var mode = BPP_TO_COLOR_FORMAT[bpp]; + if (!mode) return undefined; // unknown format + var bitmapSize = ((width*height*bpp)+7) >> 3; + // If it's the wrong length, it's not a bitmap or it's corrupt! + if (data.length != p+bitmapSize) + return undefined; + // Ok, build the picture + var canvas = document.createElement('canvas'); + canvas.width = width; + canvas.height = height; + var ctx = canvas.getContext("2d"); + var imageData = ctx.getImageData(0, 0, width, height); + var rgba = imageData.data; + var no = 0; + var nibits = 0; + var nidata = 0; + for (var i=0;i>(nibits-bpp)) & ((1<>16)&255; // r + rgba[no++] = (cr>>8)&255; // g + rgba[no++] = cr&255; // b + rgba[no++] = cr>>>24; // a + } + if (!options.transparent) + RGBAtoCheckerboard(rgba, {width:width, height:height}); + ctx.putImageData(imageData,0,0); + return canvas.toDataURL(); + } + +// decode an Espruino image string into an HTML string, return undefined if it's not valid. See stringToImageURL + function stringToImageHTML(data, options) { + var url = stringToImageURL(data, options); + if (!url) return undefined; + return ''; + } + + // ======================================================= + return { + RGBAtoString : RGBAtoString, + RGBAtoCheckerboard : RGBAtoCheckerboard, + canvastoString : canvastoString, + imagetoString : imagetoString, + getOptions : getOptions, + + stringToImageHTML : stringToImageHTML, + stringToImageURL : stringToImageURL + }; +})); From 20ddb0cb44f87c6f567d7c7f16c3b0597db3964e Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Thu, 7 May 2020 10:19:57 +0100 Subject: [PATCH 095/464] drop chunk size again - too tight --- js/appinfo.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/appinfo.js b/js/appinfo.js index 6a91dce2d..b4d0b5426 100644 --- a/js/appinfo.js +++ b/js/appinfo.js @@ -72,7 +72,7 @@ var AppInfo = { } else { let code = storageFile.content; // write code in chunks, in case it is too big to fit in RAM (fix #157) - var CHUNKSIZE = 8192; + var CHUNKSIZE = 4096; storageFile.cmd = `\x10require('Storage').write(${JSON.stringify(storageFile.name)},${toJS(code.substr(0,CHUNKSIZE))},0,${code.length});`; for (var i=CHUNKSIZE;i Date: Thu, 7 May 2020 10:20:09 +0100 Subject: [PATCH 096/464] Add option for 16 bit images --- apps/imgclock/custom.html | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/apps/imgclock/custom.html b/apps/imgclock/custom.html index 1506aa7d4..8c920571a 100644 --- a/apps/imgclock/custom.html +++ b/apps/imgclock/custom.html @@ -52,6 +52,12 @@ +

+

or Enter Wifi name:

+

and Wifi password:

+
+ +
+ +
+
+
+ + +

Try your QR Code:

Click

@@ -14,19 +30,54 @@ + + + + \ No newline at end of file From 05e3a1f51f273d1f736343b5650009fad590abc1 Mon Sep 17 00:00:00 2001 From: jeffmer Date: Sun, 17 May 2020 12:01:52 +0100 Subject: [PATCH 259/464] gpsnav 0.03 --- apps.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/apps.json b/apps.json index 04c2f637d..a0421c2ed 100644 --- a/apps.json +++ b/apps.json @@ -331,10 +331,11 @@ { "id": "gpsnav", "name": "GPS Navigation", "icon": "icon.png", - "version":"0.01", - "description": "Displays GPS Course and Speed, + Directions to waypoint and waypoint recording", + "version":"0.03", + "description": "Displays GPS Course and Speed, + Directions to waypoint and waypoint recording, now with waypoint editor", "tags": "tool,outdoors,gps", "readme": "README.md", + "interface":"waypoints.html", "storage": [ {"name":"gpsnav.app.js","url":"app.js"}, {"name":"waypoints.json","url":"waypoints.json","evaluate":false}, From 31e56b23eddfd7f6c2e37d0f8fa983019bfc25bb Mon Sep 17 00:00:00 2001 From: Ben Whittaker Date: Sun, 17 May 2020 18:46:44 -0400 Subject: [PATCH 260/464] Stop Gadgetbridge from ignoring initial message. Gadgetbridge seems to ignore the first line sent to it after connecting. This commit works around this by prepending each message with a blank line. --- apps/gbridge/widget.js | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/gbridge/widget.js b/apps/gbridge/widget.js index a87b9d1ec..0d0f2468d 100644 --- a/apps/gbridge/widget.js +++ b/apps/gbridge/widget.js @@ -13,6 +13,7 @@ }; function gbSend(message) { + Bluetooth.println(""); Bluetooth.println(JSON.stringify(message)); } From 9ebb718cc259475efe88b6a585ddb9d44165212d Mon Sep 17 00:00:00 2001 From: Ben Whittaker Date: Sun, 17 May 2020 13:37:08 -0400 Subject: [PATCH 261/464] gbridge: report battery status more often Make the gbridge widget report battery status - every 10 minutes - 2 seconds after a new bluetooth connection is initiated --- apps.json | 2 +- apps/gbridge/ChangeLog | 1 + apps/gbridge/widget.js | 8 +++++++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/apps.json b/apps.json index 04c2f637d..ff13cdff6 100644 --- a/apps.json +++ b/apps.json @@ -95,7 +95,7 @@ { "id": "gbridge", "name": "Gadgetbridge", "icon": "app.png", - "version":"0.10", + "version":"0.11", "description": "The default notification handler for Gadgetbridge notifications from Android", "tags": "tool,system,android,widget", "type":"widget", diff --git a/apps/gbridge/ChangeLog b/apps/gbridge/ChangeLog index f23a4eb6d..f66040388 100644 --- a/apps/gbridge/ChangeLog +++ b/apps/gbridge/ChangeLog @@ -9,3 +9,4 @@ 0.08: Don't turn on LCD at start of every song 0.09: Update Bluetooth connection state automatically 0.10: Make widget play well with other Gadgetbridge widgets/apps +0.11: Report battery status on connect and at regular intervals diff --git a/apps/gbridge/widget.js b/apps/gbridge/widget.js index 0d0f2468d..ae7d0f8fa 100644 --- a/apps/gbridge/widget.js +++ b/apps/gbridge/widget.js @@ -197,5 +197,11 @@ WIDGETS["gbridgew"] = { area: "tl", width: 24, draw: draw }; - gbSend({ t: "status", bat: E.getBattery() }); + function sendBattery() { + gbSend({ t: "status", bat: E.getBattery() }); + } + + NRF.on("connect", () => setTimeout(sendBattery, 2000)); + setInterval(sendBattery, 10*60*1000); + sendBattery(); })(); From 89bd6532255bbbc50ac03624c1844b2f08ad6293 Mon Sep 17 00:00:00 2001 From: Francesco Bedussi Date: Mon, 18 May 2020 22:46:45 +0200 Subject: [PATCH 262/464] chore: ignore .vscode folder --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index be33fbc90..757619ec5 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ package-lock.json .DS_Store *.js.bak appdates.csv +.vscode From 3148a59dc6ccaa6646c262375e96c59ba821619f Mon Sep 17 00:00:00 2001 From: Francesco Bedussi Date: Mon, 18 May 2020 22:57:08 +0200 Subject: [PATCH 263/464] fix: simpletimer - BTN2 to open launcher --- apps.json | 2 +- apps/simpletimer/ChangeLog | 1 + apps/simpletimer/app.js | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/apps.json b/apps.json index adc1cf907..a34dcf3a4 100644 --- a/apps.json +++ b/apps.json @@ -1633,7 +1633,7 @@ "id": "simpletimer", "name": "Timer", "icon": "app.png", - "version": "0.02", + "version": "0.03", "description": "Simple timer, useful when playing board games or cooking", "tags": "timer", "readme": "README.md", diff --git a/apps/simpletimer/ChangeLog b/apps/simpletimer/ChangeLog index f9f79cd47..3f8d98248 100644 --- a/apps/simpletimer/ChangeLog +++ b/apps/simpletimer/ChangeLog @@ -1,2 +1,3 @@ 0.01: Initial version 0.02: Reset with gesture +0.03: BTN2 to open launcher diff --git a/apps/simpletimer/app.js b/apps/simpletimer/app.js index b8e07d107..0bd7992e2 100644 --- a/apps/simpletimer/app.js +++ b/apps/simpletimer/app.js @@ -111,6 +111,7 @@ function reset(value) { state = value === 0 ? "unset" : "set"; } +setWatch(Bangle.showLauncher, BTN2, { repeat: false, edge: "falling" }); function addWatch() { clearWatch(); setWatch(changeState, BTN1, { From d98fca9f01c4d6e2a864c2e49a06154d178f51c0 Mon Sep 17 00:00:00 2001 From: jeffmer Date: Tue, 19 May 2020 15:22:41 +0100 Subject: [PATCH 264/464] Create ChangeLog --- apps/ChangeLog | 1 + 1 file changed, 1 insertion(+) create mode 100644 apps/ChangeLog diff --git a/apps/ChangeLog b/apps/ChangeLog new file mode 100644 index 000000000..1a4baf536 --- /dev/null +++ b/apps/ChangeLog @@ -0,0 +1 @@ + From 17fb9e795f861841400221059996c67122b42d8f Mon Sep 17 00:00:00 2001 From: jeffmer Date: Tue, 19 May 2020 15:23:43 +0100 Subject: [PATCH 265/464] Delete ChangeLog --- apps/ChangeLog | 1 - 1 file changed, 1 deletion(-) delete mode 100644 apps/ChangeLog diff --git a/apps/ChangeLog b/apps/ChangeLog deleted file mode 100644 index 1a4baf536..000000000 --- a/apps/ChangeLog +++ /dev/null @@ -1 +0,0 @@ - From b45fb06ec1ba35536dd4a76ef5f2ef0270f55c4e Mon Sep 17 00:00:00 2001 From: jeffmer Date: Tue, 19 May 2020 15:25:21 +0100 Subject: [PATCH 266/464] Create ChangeLog --- apps/widviz/ChangeLog | 1 + 1 file changed, 1 insertion(+) create mode 100644 apps/widviz/ChangeLog diff --git a/apps/widviz/ChangeLog b/apps/widviz/ChangeLog new file mode 100644 index 000000000..1a4baf536 --- /dev/null +++ b/apps/widviz/ChangeLog @@ -0,0 +1 @@ + From b602188abe3974d8d5c363c3765b05b19043a401 Mon Sep 17 00:00:00 2001 From: jeffmer Date: Tue, 19 May 2020 15:28:34 +0100 Subject: [PATCH 267/464] Widget files --- apps/widviz/eye.png | Bin 0 -> 1519 bytes apps/widviz/widget.js | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 apps/widviz/eye.png create mode 100644 apps/widviz/widget.js diff --git a/apps/widviz/eye.png b/apps/widviz/eye.png new file mode 100644 index 0000000000000000000000000000000000000000..414ad33f582b9e69e51269d45fe309b333d808c7 GIT binary patch literal 1519 zcmVOEpmkE19Hr3VSFItI*?O0g~z9Ncw>>2GDK`Ua)#w z`vaj!>bJxKq;g(Ptx;++;OTRv3)Flk@X0mjEh3!u$h4NIux%@pYl?F2574kLa=69* zOMh?%C`?t&%h_9%r^`*@Bq@NJ?*!htGU^RSS^Wl?&}_iVwAn>+p++LWg(v_7C!!<% z$X)kD*T{IAE!gjwV7(>9(EZh#>6dCcpwpeMlN|)>adlD7<}$@njd+?tjWau+Un<{Ism=iC zBMb4_br;n{5qNo-a_e#>n(-+H0Ehv6bHm-xPDG;gTrZU?UaL^01$5EsJ=kognlf=# zeT{ZSK{og0UMJbu4*Mbipvx6h=+wW6>x&|=p;)%NQZ3}HXRnjo{@tKE zlwiUH$f;UAYw#o>KN;P8&SslB9TE}x@l%Bls(EO3{W!#O3zk+EW;d)W;4jLdz@r*24FJ5~IyOBG0Q@>Q{z2Oqw||KWJFr$m zaoRi+$J&$3XrOL;sL|@BnlF|qR`UgnUMG3J$3rzW62ajbZFAki=DLONKB1d0r@iNF zx2MlVaz}V%e$JM1CDm-Sdb{l*Hc$-UNQ;AVh{a0LD=U@2r$(!nGSf%|Up;GByHJ7) zQCx^t7v-F))oUb)SR9Q3^B*#`b-7}RN<^6*X>m|~lK^V71#dbMc?tn|YfV0P`{S|< z&^cs}SuMq~m`|k``np-oYs{1YMfR=ErzW`R2)EgSNkFH6cT(1mEs~Vx-!uA+`XkhD zlL6-%nDumLJRI<LEid6RrGIRUg~8SODY_4=4z#uDWs z0MIeWbJp5z^fpbC+q*_Wmv8&2CIyfHG8^#Xyu=BQ0UWyOh;Tz50069F?8tEo!72ni zp~<6+)6O(zikyrcx@xB;D9*#oQ@fu4LICzw1BCGrIdo}|{)=l}8#x{g?Hl$J2gP?A&c zG^q_TVf=SA2Kz6M^46@oE7dCtd2%gN6@~aNGfy(_wucU0p*PDQ6Yex6)gehh5)oQo zqs6AK3O+LW>i0vvPIj~vqDaHKf{mpz-cW@i@LZ|9VVzFEdEDa&@AzRTIFWEWOn}ta zXqkx&(kVZb*;(~9+HxJwlJvRAMyuB{K$jmTJ-*&3<=rXEKyY8vs5hKp`4JbZK+8gr zx^l(8DbUVbcb(`Um}y~CuMCW!N@b9nqi3vpvKDX?W+!p6ld@)3aQ z1(FvYmZz+&V*p(vq0g_oTJ8pt=9_VmAJ@IEL3*jsWWdX`;v%_7D-qx#6aa!`bl4xc z<0iX?L#?*pknet9gW{T97ez|5=qgQVc71GMYPNii`ENAqzM#zkrP3TwD$N0<(m&`h Vo=7w-CD;G}002ovPDHLkV1nTx;!6Mk literal 0 HcmV?d00001 diff --git a/apps/widviz/widget.js b/apps/widviz/widget.js new file mode 100644 index 000000000..36d695c60 --- /dev/null +++ b/apps/widviz/widget.js @@ -0,0 +1,37 @@ +(() => { + + var saved = null; + + function hide(){ + if (!Bangle.isLCDOn() || saved) return; + saved = []; + for (var wd of WIDGETS) { + saved.push(wd.draw); + wd.draw=()=>{}; + } + g.setColor(0,0,0); + g.fillRect(0,0,239,23); + } + + function reveal(){ + if (!Bangle.isLCDOn() || !saved) return; + for (var wd of WIDGETS) wd.draw = saved.shift(); + Bangle.drawWidgets(); + saved=null; + } + + function setup(){ + setWatch(hide, BTN4, {repeat:true,edge:"rising"}); + setWatch(reveal, BTN5, {repeat:true,edge:"rising"}); + } + + function draw(){ + var img = E.toArrayBuffer(atob("GBgBAAAAAAAAAAAAAAAAAH4AAf+AB4HgDgBwHDw4OH4cMOcMYMMGYMMGMOcMOH4cHDw4DgBwB4HgAf+AAH4AAAAAAAAAAAAAAAAA")); + g.setColor(0x07ff); + g.drawImage(img,this.x,this.y); + } + + WIDGETS["viz"] ={area:"tl", width:24,draw:draw,setup:setup}; + setup(); + +})(); From fe0387b3bb6d7465790134dfee50be3d700baa16 Mon Sep 17 00:00:00 2001 From: jeffmer Date: Tue, 19 May 2020 15:29:50 +0100 Subject: [PATCH 268/464] Update ChangeLog --- apps/widviz/ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/widviz/ChangeLog b/apps/widviz/ChangeLog index 1a4baf536..ac6257425 100644 --- a/apps/widviz/ChangeLog +++ b/apps/widviz/ChangeLog @@ -1 +1 @@ - + 0.01: New Widget From 19ed596a16250ea6ede6646e317eeb4575ed4ada Mon Sep 17 00:00:00 2001 From: jeffmer Date: Tue, 19 May 2020 15:33:01 +0100 Subject: [PATCH 269/464] Update apps.json --- apps.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/apps.json b/apps.json index a34dcf3a4..f351bee16 100644 --- a/apps.json +++ b/apps.json @@ -1761,5 +1761,17 @@ { "name": "jbm8b.img", "url": "app-icon.js", "evaluate": true } ], "version": "0.03" + }, + { "id": "widviz", + "name": "Widget Visibility Widget", + "shortName":"Viz Widget", + "icon": "eye.png", + "version":"0.01", + "description": "Touch left screen to hide top bar widgets, right screen to redisplay. Will not work with apps that use BTN4 & BTN5.", + "tags": "widget", + "type": "widget", + "storage": [ + {"name":"widviz.wid.js","url":"widget.js"} + ] } ] From 7e39d8f1b5881dbd21b06db873fad699f45b4869 Mon Sep 17 00:00:00 2001 From: GRISHENK0 Date: Wed, 20 May 2020 14:45:25 +0200 Subject: [PATCH 270/464] Update French locales Change thousands separator and modify the speed unit --- apps/locale/locales.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/locale/locales.js b/apps/locale/locales.js index cbc56b85c..3becc760b 100644 --- a/apps/locale/locales.js +++ b/apps/locale/locales.js @@ -145,10 +145,10 @@ var locales = { "fr_FR": { lang: "fr_FR", decimal_point: ",", - thousands_sep: ".", + thousands_sep: " ", currency_symbol: "\x80", int_curr_symbol: "EUR", - speed: "kmh", + speed: "km/h", distance: { 0: "m", 1: "km" }, temperature: "°C", ampm: { 0: "", 1: "" }, From 5f8e424f5fd0d640f5688d960f33edaf1194e193 Mon Sep 17 00:00:00 2001 From: Ben Whittaker Date: Mon, 11 May 2020 20:58:31 -0400 Subject: [PATCH 271/464] imgclock: Make imgclock text area wider This prevents imgclock from cutting off the date in locales with long date formats such as "Wednesday, September 10, 2020". Also adjusts the position and alignment of the date when necessary to prevent it from flowing off the edge of the screen. --- apps.json | 2 +- apps/imgclock/ChangeLog | 3 ++- apps/imgclock/app.js | 14 ++++++++++---- apps/imgclock/custom.html | 16 +++++++++------- 4 files changed, 22 insertions(+), 13 deletions(-) diff --git a/apps.json b/apps.json index a34dcf3a4..07cedf21a 100644 --- a/apps.json +++ b/apps.json @@ -168,7 +168,7 @@ "name": "Image background clock", "shortName":"Image Clock", "icon": "app.png", - "version":"0.06", + "version":"0.07", "description": "A clock with an image as a background", "tags": "clock", "type" : "clock", diff --git a/apps/imgclock/ChangeLog b/apps/imgclock/ChangeLog index ae978f9f9..20906fb87 100644 --- a/apps/imgclock/ChangeLog +++ b/apps/imgclock/ChangeLog @@ -4,4 +4,5 @@ 0.04: Fix hour alignment for single digits Scaling for background images <240px wide 0.05: Fix memory/interval leak when LCD turns on -0.06: Support 12 hour time \ No newline at end of file +0.06: Support 12 hour time +0.07: Don't cut off wide date formats \ No newline at end of file diff --git a/apps/imgclock/app.js b/apps/imgclock/app.js index dc961f58b..becf0a1fb 100644 --- a/apps/imgclock/app.js +++ b/apps/imgclock/app.js @@ -7,7 +7,7 @@ var is12Hour = (require("Storage").readJSON("setting.json",1)||{})["12hour"]; var inf = require("Storage").readJSON("imgclock.face.json"); var img = require("Storage").read("imgclock.face.img"); var IX = inf.x, IY = inf.y, IBPP = inf.bpp; -var IW = 110, IH = 45, OY = 24; +var IW = 174, IH = 45, OY = 24; var bgwidth = img.charCodeAt(0); var bgoptions; if (bgwidth<240) @@ -40,7 +40,7 @@ function draw() { new Uint8Array(cg.buffer).set(bgimg); // draw time cg.setColor(inf.col); - var x = 40; + var x = 74 + 32 * inf.align; cg.setFont("7x11Numeric7Seg",3); cg.setFontAlign(1,-1); cg.drawString(hours, x, 0); @@ -54,8 +54,14 @@ function draw() { cg.drawString(("0"+t.getSeconds()).substr(-2), x, 20); cg.setFont("6x8",1); cg.drawString(meridian, x+2, 0); - cg.setFontAlign(0,-1); - cg.drawString(locale.date(t),IW/2,IH-8); + let date = locale.date(t); + if (cg.stringWidth(date) < IW-64) { + cg.setFontAlign(0, -1); + cg.drawString(date,IW/2+32*inf.align,IH-8); + } else { + cg.setFontAlign(inf.align, -1); + cg.drawString(date,IW*(inf.align+1)/2,IH-8); + } // draw to screen g.drawImage(cgimg,IX,IY+OY); } diff --git a/apps/imgclock/custom.html b/apps/imgclock/custom.html index 8c920571a..8428725af 100644 --- a/apps/imgclock/custom.html +++ b/apps/imgclock/custom.html @@ -13,9 +13,9 @@ - + diff --git a/js/espruinotools.js b/lib/espruinotools.js similarity index 100% rename from js/espruinotools.js rename to lib/espruinotools.js From 572a468cab6cd1e72f0f0a86e4f0817aa379c739 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Thu, 28 May 2020 14:20:56 +0100 Subject: [PATCH 388/464] Set page scaling better for mobile --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index af68a6d45..480fdd2e1 100644 --- a/index.html +++ b/index.html @@ -2,7 +2,7 @@ - + From 0c0fc9ac8f223c496d50855c04c001550173bee5 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Thu, 28 May 2020 14:33:37 +0100 Subject: [PATCH 389/464] Improve upload of binary files --- CHANGELOG.md | 1 + js/appinfo.js | 9 +++++++-- js/utils.js | 15 +++++++++++++-- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e5cd6aef5..29b6aa6e5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,3 +18,4 @@ Changed for individual apps are listed in `apps/appname/ChangeLog` * Adding '#search' after the URL (when not the name of a 'filter' chip) will set up search for that term * If `bin/pre-publish.sh` has been run and recent.csv created, add 'Sort By' chip * New 'espruinotools' which fixes pretokenise issue when ID follows ID (fix #416) +* Improve upload of binary files diff --git a/js/appinfo.js b/js/appinfo.js index 54f1458db..b0b4e05ca 100644 --- a/js/appinfo.js +++ b/js/appinfo.js @@ -7,9 +7,14 @@ if (typeof btoa==="undefined") { // Converts a string into most efficient way to send to Espruino (either json, base64, or compressed base64) function toJS(txt) { + let isBinary = false; + for (let i=0;i127) isBinary=true; + } let json = JSON.stringify(txt); - let b64 = "atob("+JSON.stringify(btoa(json))+")"; - let js = b64.length < json.length ? b64 : json; + let b64 = "atob("+JSON.stringify(btoa(txt))+")"; + let js = (isBinary || (b64.length < json.length)) ? b64 : json; if (typeof heatshrink !== "undefined") { let ua = new Uint8Array(txt.length); diff --git a/js/utils.js b/js/utils.js index 859c5b10d..69dcda93b 100644 --- a/js/utils.js +++ b/js/utils.js @@ -32,8 +32,18 @@ function httpGet(url) { return new Promise((resolve,reject) => { let oReq = new XMLHttpRequest(); oReq.addEventListener("load", () => { - if (oReq.status==200) resolve(oReq.responseText) - else reject(oReq.status+" - "+oReq.statusText); + // ensure we actually load the data as a raw 8 bit string (not utf-8/etc) + if (oReq.status==200) { + let a = new FileReader(); + a.onloadend = function() { + let bytes = new Uint8Array(a.result); + let str = ""; + for (let i=0;i reject()); oReq.addEventListener("abort", () => reject()); @@ -41,6 +51,7 @@ function httpGet(url) { oReq.onerror = function () { reject("HTTP Request failed"); }; + oReq.responseType = 'blob'; oReq.send(); }); } From ab5861126ca5042637700a06c69d38fac15a819b Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Thu, 28 May 2020 14:34:40 +0100 Subject: [PATCH 390/464] App description can now be markdown --- CHANGELOG.md | 1 + README.md | 2 +- js/index.js | 9 +++++++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 29b6aa6e5..48bfe74ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,3 +19,4 @@ Changed for individual apps are listed in `apps/appname/ChangeLog` * If `bin/pre-publish.sh` has been run and recent.csv created, add 'Sort By' chip * New 'espruinotools' which fixes pretokenise issue when ID follows ID (fix #416) * Improve upload of binary files +* App description can now be markdown diff --git a/README.md b/README.md index 04854c99e..ac4fc716d 100644 --- a/README.md +++ b/README.md @@ -217,7 +217,7 @@ and which gives information about the app for the Launcher. "name": "Readable name", // readable name "shortName": "Short name", // short name for launcher "icon": "icon.png", // icon in apps/ - "description": "...", // long description + "description": "...", // long description (can contain markdown) "type":"...", // optional(if app) - 'app'/'widget'/'launch'/'bootloader' "tags": "", // comma separated tag list for searching diff --git a/js/index.js b/js/index.js index 34975f3a1..363081a15 100644 --- a/js/index.js +++ b/js/index.js @@ -52,6 +52,11 @@ function showReadme(appid) { } httpGet(appPath+app.readme).then(show).catch(()=>show("Failed to load README.")); } +function getAppDescription(app) { + let appPath = `apps/${app.id}/`; + let markedOptions = { baseUrl : appPath }; + return marked(app.description, markedOptions); +} function handleCustomApp(appTemplate) { // Pops up an IFRAME that allows an app to be customised if (!appTemplate.custom) throw new Error("App doesn't have custom HTML"); @@ -259,7 +264,7 @@ function refreshLibrary() {
@@ -470,7 +475,7 @@ function refreshMyApps() {

${escapeHtml(app.name)} (${version.text})

-

${escapeHtml(app.description)}

+

${getAppDescription(app)}

See the code on GitHub
From ed47314f02d36420d187df9e62ea5adeef1f5121 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Thu, 28 May 2020 14:36:54 +0100 Subject: [PATCH 391/464] Added animated clock using palette cycling --- .eslintignore | 1 + apps.json | 18 +- apps/animclk/ChangeLog | 1 + apps/animclk/V29.LBM.js | 482 ++++++++++++++++++++++++++++++++++ apps/animclk/animclk.pal | Bin 0 -> 512 bytes apps/animclk/animclk.pixels1 | 1 + apps/animclk/animclk.pixels2 | 1 + apps/animclk/app-icon.js | 1 + apps/animclk/app.js | 116 ++++++++ apps/animclk/app.png | Bin 0 -> 4797 bytes apps/animclk/create_images.js | 57 ++++ 11 files changed, 677 insertions(+), 1 deletion(-) create mode 100644 apps/animclk/ChangeLog create mode 100644 apps/animclk/V29.LBM.js create mode 100644 apps/animclk/animclk.pal create mode 100644 apps/animclk/animclk.pixels1 create mode 100644 apps/animclk/animclk.pixels2 create mode 100644 apps/animclk/app-icon.js create mode 100644 apps/animclk/app.js create mode 100644 apps/animclk/app.png create mode 100644 apps/animclk/create_images.js diff --git a/.eslintignore b/.eslintignore index 40173021d..544f416aa 100644 --- a/.eslintignore +++ b/.eslintignore @@ -3,3 +3,4 @@ lib/imageconverter.js lib/qrcode.min.js lib/heatshrink.js +apps/animclk/V29.LBM.js diff --git a/apps.json b/apps.json index b888a9934..6093d82df 100644 --- a/apps.json +++ b/apps.json @@ -1787,7 +1787,7 @@ {"name":"binclock.app.js","url":"app.js"}, {"name":"binclock.img","url":"app-icon.js","evaluate":true} ] - } , + }, { "id": "pizzatimer", "name": "Pizza Timer", @@ -1801,5 +1801,21 @@ {"name":"pizzatimer.app.js","url":"app.js"}, {"name":"pizzatimer.img","url":"app-icon.js","evaluate":true} ] + }, + { "id": "animclk", + "name": "Animated Clock", + "shortName":"Anim Clock", + "icon": "app.png", + "version":"0.01", + "description": "An animated clock face using Mark Ferrari's amazing 8 bit game art and palette cycling: http://www.markferrari.com/art/8bit-game-art", + "tags": "clock,animated", + "type": "clock", + "storage": [ + {"name":"animclk.app.js","url":"app.js"}, + {"name":"animclk.pixels1","url":"animclk.pixels1"}, + {"name":"animclk.pixels2","url":"animclk.pixels2"}, + {"name":"animclk.pal","url":"animclk.pal"}, + {"name":"animclk.img","url":"app-icon.js","evaluate":true} + ] } ] diff --git a/apps/animclk/ChangeLog b/apps/animclk/ChangeLog new file mode 100644 index 000000000..5560f00bc --- /dev/null +++ b/apps/animclk/ChangeLog @@ -0,0 +1 @@ +0.01: New App! diff --git a/apps/animclk/V29.LBM.js b/apps/animclk/V29.LBM.js new file mode 100644 index 000000000..5b986d77d --- /dev/null +++ b/apps/animclk/V29.LBM.js @@ -0,0 +1,482 @@ +CanvasCycle.processImage({filename:'V29.LBM',width:640,height:480,colors:[[0,0,0],[219,247,255],[203,243,255],[175,235,255],[155,231,255],[131,223,255],[95,223,255],[95,215,255],[63,215,255],[47,207,255],[0,199,255],[23,191,255],[11,183,255],[31,175,255],[47,163,247],[47,151,239],[59,139,231],[63,127,219],[71,115,203],[147,203,255],[103,171,223],[67,123,143],[199,171,159],[179,215,171],[191,215,223],[183,223,239],[175,235,255],[155,211,231],[135,187,207],[151,207,167],[195,207,171],[199,171,159],[95,151,179],[95,151,179],[83,135,159],[71,119,139],[63,107,123],[59,103,115],[31,91,115],[47,99,119],[63,107,123],[67,123,143],[67,123,143],[67,127,147],[71,127,151],[71,131,151],[71,131,155],[75,135,159],[159,199,215],[31,103,123],[7,75,95],[0,71,87],[0,67,83],[0,67,83],[0,67,83],[0,71,91],[15,91,111],[31,103,127],[51,123,143],[63,131,151],[75,139,159],[87,151,167],[123,175,187],[163,199,207],[255,255,255],[255,255,255],[131,175,191],[111,155,175],[119,167,183],[139,179,195],[163,199,207],[191,215,223],[167,203,215],[191,215,223],[207,227,235],[215,231,239],[191,215,227],[231,243,247],[215,231,239],[231,243,247],[179,203,219],[167,191,207],[155,183,199],[143,175,191],[135,167,183],[123,159,175],[115,151,167],[119,155,171],[123,159,175],[127,163,179],[131,167,183],[139,171,187],[155,187,203],[179,203,219],[199,219,235],[223,239,255],[79,147,171],[59,131,155],[43,119,143],[31,107,131],[43,119,143],[59,131,159],[79,147,171],[99,163,187],[119,83,79],[211,159,135],[87,55,55],[55,31,31],[23,15,11],[115,71,63],[175,127,115],[231,179,155],[115,107,135],[159,139,155],[143,127,151],[191,167,187],[143,127,151],[115,107,135],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[247,247,251],[231,227,247],[207,215,243],[187,219,243],[195,211,231],[187,207,203],[91,91,91],[75,59,51],[75,59,51],[75,59,51],[79,71,71],[79,91,103],[99,107,123],[119,131,143],[143,151,163],[171,175,183],[179,191,195],[187,207,203],[187,207,203],[187,207,203],[187,207,203],[147,143,171],[183,151,175],[131,127,159],[131,127,159],[131,127,159],[159,147,179],[195,175,191],[111,95,115],[111,95,115],[123,103,123],[151,127,151],[111,95,115],[151,123,135],[203,167,175],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,239,231],[243,223,239],[231,199,223],[207,179,219],[187,171,211],[171,159,211],[155,151,215],[151,151,215],[155,159,219],[163,171,227],[175,191,247],[255,255,255],[255,255,255],[207,167,143],[147,103,95],[91,63,63],[71,51,51],[139,119,103],[91,71,63],[23,15,11],[215,171,155],[143,111,103],[119,91,83],[219,175,155],[143,111,103],[103,79,79],[79,59,59],[95,71,83],[111,91,111],[59,47,47],[99,75,67],[135,119,107],[63,51,51],[51,43,51],[95,71,83],[111,91,111],[79,59,59],[143,111,103],[203,175,163],[183,155,147],[255,239,227],[243,227,215],[235,215,203],[207,183,171],[179,155,143],[255,227,199],[243,211,183],[231,195,167],[219,179,151],[211,163,135],[199,147,123],[187,131,111],[179,119,99],[107,103,131],[215,171,155],[143,111,103],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[11,11,11],[107,103,131],[219,219,235],[255,255,255]],cycles:[{reverse:0,rate:0,low:59,high:63},{reverse:0,rate:0,low:7,high:13},{reverse:0,rate:0,low:13,high:17},{reverse:0,rate:1227,low:32,high:47},{reverse:0,rate:1689,low:48,high:63},{reverse:0,rate:1689,low:64,high:79},{reverse:0,rate:1227,low:80,high:95},{reverse:0,rate:921,low:96,high:103},{reverse:0,rate:1689,low:128,high:143},{reverse:0,rate:1536,low:22,high:31},{reverse:0,rate:0,low:138,high:142},{reverse:0,rate:0,low:0,high:0},{reverse:0,rate:0,low:0,high:0},{reverse:0,rate:0,low:0,high:0},{reverse:0,rate:0,low:0,high:0},{reverse:0,rate:0,low:0,high:0}],pixels:[ +252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,252,109,252,109,252,252,252,252,252,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,252,108,108,108,252,252,109,109,109,109,109,109,252,252,252,252,252,252,252,252,252,108,108,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,252,110,109,110,252,110,252,110,252,110,252,110,252,252,252,109,252,252,252,252,252,252,252,109,252,109,109,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,107,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,252,109,252,109,108,109,108,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,109,108,252,108,252,109,252,109,109,109,252,109,252,109,252,109,252,109,252,109,108,108,108,108,108,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,252,110,109,110,252,110,252,110,109,110,252,110,252,110,252,110,252,110,252,110,252,110,252,110,252,109,252,109,252,109,252,252,252,109,252,109,252,109,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,109,252,252,252,109,252,252,252,107,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,108,109,108,109,108,109,108,109,108,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,108,108,108,109,109,109,109,252,109,109,109,109,109,109,109,109,109,252,109,252,252,252,108,108,108,108,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,110,252,252,252,110,109,110,109,110,109,110,109,110,109,110,252,110,252,110,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,109,252,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,110,252,110,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,110,252,110,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,108,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,109,252,252,252,252,252,109,108,108,109,109,252,109,252,109,252,109,252,109,109,109,252,109,252,109,252,109,252,109,252,109,252,109,108,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,252,110,252,110,252,110,252,110,109,110,252,110,252,110,252,110,252,110,252,110,252,110,252,252,252,252,252,109,252,109,252,109,252,110,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,110,252,110,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,108,109,108,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,108,109,108,109,108,109,109,109,108,109,252,109,109,109,252,109,252,109,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,109,109,109,109,109,109,109,252,109,109,109,109,109,109,109,252,109,252,109,252,108,108,108,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,110,252,110,109,110,109,110,109,110,252,110,109,110,252,110,252,110,252,252,252,110,252,252,252,252,252,252,252,109,252,109,252,110,252,252,109,252,109,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,110,252,252,252,110,252,252,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,110,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,108,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,252,109,108,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,109,252,252,252,252,109,109,252,109,109,109,252,109,252,109,252,109,252,109,252,109,109,109,252,109,252,109,252,109,108,109,108,109,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,110,252,110,252,110,252,110,109,110,252,110,252,110,252,110,252,110,252,110,252,110,252,109,252,252,252,109,252,109,252,109,252,110,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,109,252,252,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,108,109,108,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,108,109,108,109,109,109,109,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,108,109,109,108,109,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,109,110,109,110,109,110,109,110,109,110,109,110,252,110,252,110,252,110,252,252,252,252,252,252,252,252,252,109,252,110,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,109,252,109,252,109,252,110,252,110,252,110,252,110,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,108,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,109,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,109,109,109,109,109,252,109,109,109,252,109,252,109,252,109,252,109,109,109,109,109,108,109,108,108,108,109,108,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,110,252,110,252,110,109,110,252,110,252,110,252,110,252,110,252,110,252,252,252,110,252,110,252,109,252,109,252,110,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,110,252,252,252,110,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,108,109,108,109,108,109,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,108,109,108,109,109,109,109,109,252,109,109,109,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,252,109,109,109,109,109,108,109,108,109,109,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,110,252,110,109,110,109,110,252,110,109,110,252,110,252,110,252,110,252,252,252,252,252,252,252,252,252,109,252,109,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,109,252,252,252,109,252,109,252,109,252,110,252,110,252,110,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,252,109,108,109,252,109,252,109,252,109,252,252,252,109,252,252,109,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,109,109,109,252,109,109,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,109,252,109,109,109,252,109,109,109,252,109,109,109,252,109,252,108,108,108,108,108,108,109,108,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,110,18,110,252,110,109,110,109,110,109,110,252,110,252,110,252,252,252,252,252,110,252,109,252,109,252,109,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,109,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,108,109,108,109,108,109,108,109,252,109,252,109,252,252,252,252,109,109,109,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,108,109,109,109,109,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,109,109,109,109,109,109,108,109,109,109,109,108,108,108,108,109,109,109,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,252,110,109,110,109,110,109,110,109,110,252,110,252,110,252,252,252,252,252,252,252,109,252,109,252,109,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,109,252,109,252,109,252,109,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,109,109,252,109,252,109,252,109,252,109,252,109,252,109,109,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,109,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,108,108,108,109,109,252,108,108,108,108,108,108,109,108,109,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,110,109,110,109,110,109,110,109,110,252,110,252,110,252,252,252,110,252,110,252,109,252,109,252,109,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,110,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,110,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,109,108,109,109,109,108,109,252,109,109,109,109,109,109,109,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,109,109,108,109,252,109,109,109,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,109,109,252,252,109,109,109,109,109,109,109,108,108,108,108,109,108,109,109,109,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,110,109,110,109,110,109,110,109,110,109,110,109,252,252,252,252,110,252,110,109,109,109,109,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,109,252,109,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,109,252,110,252,110,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,109,252,109,252,109,252,109,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,108,109,109,109,252,109,252,109,252,109,109,109,109,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,108,109,108,109,252,109,252,109,252,109,252,109,252,109,252,252,252,109,252,252,252,252,252,252,252,109,109,109,252,109,252,109,108,108,108,108,108,109,108,109,108,109,109,109,108,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,109,110,252,110,109,110,109,110,252,110,252,110,252,110,109,110,109,109,109,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,109,252,252,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,110,252,252,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,109,108,109,108,252,108,252,109,109,109,109,109,109,109,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,108,109,109,109,109,109,252,109,252,252,252,252,252,252,252,252,252,252,252,109,109,109,252,109,252,252,108,108,108,108,109,109,109,109,108,109,109,109,109,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,110,109,110,109,110,109,110,252,110,252,110,252,252,109,110,109,110,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,110,252,110,252,110,252,252,252,252,252,252,109,109,109,109,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,109,252,109,252,110,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,108,109,252,109,252,109,252,109,252,109,252,252,109,109,109,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,108,109,108,252,108,108,109,108,109,108,108,108,109,108,108,108,108,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,252,110,109,110,109,110,109,110,252,110,252,110,109,110,109,109,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,107,252,107,252,107,252,252,252,252,252,252,252,252,109,110,109,110,109,110,110,110,110,110,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,110,252,110,252,252,252,252,252,252,109,252,109,252,109,252,109,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,108,109,108,109,108,109,108,109,108,109,252,252,108,109,109,109,109,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,252,252,252,252,252,252,252,252,252,252,108,108,108,108,108,108,252,252,108,252,108,108,108,108,108,109,108,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,110,109,110,109,110,109,110,252,110,109,110,109,110,109,110,109,110,252,252,252,252,252,252,252,252,252,252,252,252,252,110,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,107,107,109,107,109,107,252,252,252,107,252,107,252,107,109,252,109,252,109,252,109,110,109,109,109,109,109,110,110,110,109,252,252,252,252,252,252,252,252,252,109,252,109,252,110,252,110,252,110,252,252,252,110,252,252,252,252,109,252,109,109,109,109,252,252,252,252,252,252,252,252,252,109,252,252,252,109,252,109,252,109,252,109,252,110,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,107,252,109,109,108,109,252,109,252,109,252,109,252,109,252,109,109,109,252,109,252,109,252,109,252,109,252,109,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,108,109,108,108,108,252,108,252,108,252,108,108,108,108,108,108,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,109,110,252,110,109,110,109,109,109,109,109,110,109,109,109,110,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,252,109,107,107,252,107,252,107,252,107,252,107,252,107,252,107,107,106,106,106,18,18,18,252,109,110,109,110,109,110,109,109,109,110,109,110,109,110,252,252,252,252,252,252,252,252,252,252,252,252,110,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,109,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,110,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,108,252,108,109,108,109,108,109,108,109,108,109,252,109,108,109,109,109,109,109,109,109,109,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,252,252,252,252,252,109,108,108,108,108,108,108,108,108,108,108,252,108,252,108,252,252,108,252,18,18,18,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,110,109,110,109,110,109,109,109,109,109,110,109,110,109,110,252,252,252,252,252,252,252,252,252,252,252,110,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,107,107,107,107,107,107,252,107,252,107,252,252,252,107,107,106,106,106,18,18,17,18,18,18,17,18,18,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,252,252,252,110,252,252,109,252,110,252,110,252,110,252,110,252,252,252,252,252,252,252,252,109,252,109,109,109,109,109,109,110,109,110,252,252,252,252,252,252,252,252,109,252,109,252,109,252,110,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,107,252,108,109,108,109,252,109,252,109,252,109,252,109,252,109,252,109,109,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,252,252,108,109,108,109,252,109,109,108,252,108,252,108,252,108,252,108,252,108,252,108,252,252,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,252,110,109,110,109,109,109,109,109,109,109,110,109,110,252,252,252,252,252,252,252,252,252,252,109,110,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,252,107,252,107,252,107,252,107,252,107,109,107,109,107,106,106,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,109,110,109,110,109,110,109,110,109,110,109,110,252,110,109,252,252,252,252,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,109,110,109,110,109,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,107,109,108,109,108,109,108,109,108,109,108,109,108,109,252,109,108,109,109,109,108,109,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,108,108,108,108,108,108,108,108,108,252,108,108,108,252,109,252,108,252,252,252,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,110,109,110,109,109,109,109,109,110,109,110,109,110,252,252,252,252,252,252,252,252,252,252,109,110,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,107,107,107,107,107,107,252,107,252,107,109,252,106,106,106,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,110,252,110,252,109,252,109,252,252,252,252,252,109,252,252,252,252,109,252,109,109,109,109,109,110,110,110,110,252,252,252,252,109,252,252,252,109,252,109,252,110,252,110,252,110,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,108,109,108,109,252,109,108,109,252,109,108,109,252,109,108,109,109,109,109,109,252,109,252,109,252,109,252,109,252,109,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,109,107,109,107,252,107,109,107,252,107,252,109,252,107,252,109,252,107,252,252,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,109,110,109,109,109,109,109,110,109,110,109,110,252,252,252,252,252,252,252,252,252,110,109,110,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,252,107,252,107,252,107,252,107,109,106,106,106,106,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,110,109,110,109,110,109,110,109,110,109,110,252,110,110,110,252,110,109,252,109,252,252,252,252,252,109,252,252,252,252,109,252,109,252,109,109,110,109,110,109,110,252,252,252,252,252,252,252,252,252,252,252,252,110,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,107,109,107,109,108,109,108,109,108,109,108,109,108,109,108,109,108,109,108,109,108,109,108,109,108,109,108,252,108,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,107,252,252,109,109,109,109,109,109,109,109,109,109,109,109,109,109,252,109,252,252,252,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,109,110,109,109,109,109,109,110,109,110,109,110,109,252,252,252,252,252,252,252,109,110,109,110,109,110,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,109,109,107,107,107,107,107,107,252,107,106,106,106,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,109,110,109,110,109,110,109,110,109,110,109,109,109,110,109,252,109,252,252,252,252,252,109,252,252,252,252,109,252,109,109,109,109,109,109,110,110,110,109,252,252,252,109,252,109,252,109,252,110,252,110,252,110,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,108,109,108,109,108,109,108,109,252,109,252,109,252,109,109,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,108,252,108,252,108,252,107,252,107,252,107,109,107,109,107,252,107,109,107,252,107,252,107,252,107,109,109,109,252,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,110,109,109,109,109,109,110,109,110,109,110,109,252,252,252,252,252,252,252,109,110,109,110,109,110,109,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,107,107,252,107,252,107,252,106,106,106,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,110,109,110,109,110,109,110,109,110,252,110,109,252,252,252,252,252,252,252,109,252,252,109,252,109,252,109,109,109,109,110,109,110,109,110,252,252,109,252,252,252,252,109,252,109,252,109,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,109,107,109,108,109,108,109,108,109,108,109,108,109,108,109,108,109,108,109,108,109,108,109,108,109,108,252,108,252,252,252,108,252,252,252,108,108,252,108,252,108,252,108,252,108,252,109,109,107,252,252,252,107,252,252,109,107,109,109,109,107,109,109,109,109,109,109,109,109,109,109,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,109,109,109,109,109,110,109,110,109,110,109,252,252,252,252,252,252,252,109,110,109,110,109,110,109,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,252,107,107,107,107,106,106,106,107,106,106,106,106,106,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,110,109,110,109,110,109,110,109,110,109,110,252,252,252,252,252,252,109,252,109,252,109,109,109,109,109,109,109,109,110,110,110,110,109,252,109,252,109,252,252,252,252,109,109,109,109,252,109,110,109,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,107,109,108,109,108,109,252,109,108,109,252,109,108,109,252,109,252,109,252,109,109,109,252,109,252,109,252,109,252,252,252,108,252,108,252,108,252,108,252,108,252,108,252,108,109,108,252,107,252,107,252,107,252,107,109,107,109,107,252,107,109,107,252,107,109,109,109,109,109,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,110,109,110,109,110,109,110,109,110,252,252,252,252,252,252,252,110,109,110,109,110,109,110,109,110,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,252,107,107,252,107,252,252,107,106,106,106,107,106,107,106,106,106,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,109,110,109,110,109,110,109,110,252,252,252,252,252,252,252,252,109,109,252,109,252,109,109,109,109,110,109,110,110,110,252,252,252,252,109,109,252,109,252,109,252,109,109,110,109,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,109,107,109,108,109,108,109,108,109,107,109,108,109,108,109,108,109,108,109,108,109,108,109,108,109,108,252,108,252,108,108,252,108,108,108,252,108,252,108,252,108,109,108,109,108,109,107,252,109,109,107,252,109,109,109,109,109,109,109,109,109,109,109,109,109,109,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,109,110,109,110,109,110,109,110,252,252,252,252,252,252,252,110,109,110,109,110,109,110,109,110,252,252,252,252,252,252,252,252,252,107,107,107,252,252,252,252,252,252,252,106,106,106,106,106,106,106,106,106,106,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,109,110,109,110,109,110,252,252,252,252,252,252,109,252,109,109,109,109,109,109,109,110,109,110,110,110,109,110,252,252,109,252,109,252,109,109,109,109,109,109,109,110,109,110,252,252,252,252,252,252,252,252,252,252,109,252,109,252,110,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,107,109,108,109,108,109,108,109,252,109,108,109,252,109,252,109,252,109,109,109,252,109,252,109,252,109,252,252,252,108,252,108,252,108,109,108,109,108,109,108,252,107,252,107,252,107,252,107,252,107,252,107,109,107,109,107,109,107,109,107,252,109,109,109,18,17,18,18,18,17,18,17,18,17,18,18,18,17,18,17,18,17,18,18,18,17,18,17,18,17,18,18,18,17,18,17,18,17,18,18,18,17,18,17,18,17,18,18,18,17,18,17,18,17,18,18,18,17,18,17,18,17,18,18,18,17,18,17,18,17,18,18,18,17,18,17,18,17,18,18,18,17,18,17,18,17,18,18,18,17,18,17,18,17,18,18,18,17,18,17,18,17,18,18,18,17,18,17,18,17,18,18,18,17,18,17,18,17,18,17,18,17,18,18,18,17,18,17,18,17,18,18,18,17,18,17,18,17,18,18,18,17,18,17,18,17,18,18,18,17,18,17,18,17,18,18,18,17,18,17,18,17,18,18,18,17,18,17,18,17,18,18,18,17,18,17,18,17,18,18,18,17,18,17,18,17,18,18,18,17,18,17,18,17,18,110,109,110,109,110,109,110,252,252,252,252,252,252,252,110,109,110,109,110,109,110,109,107,109,107,252,107,107,107,252,107,252,107,252,107,252,107,252,252,252,106,107,106,106,106,106,106,106,18,18,17,18,17,18,17,18,18,18,17,18,17,18,17,18,18,18,17,18,17,18,17,18,18,18,17,18,17,18,17,18,18,18,17,18,17,18,17,18,18,18,17,18,17,18,17,18,18,18,17,18,17,18,17,18,18,18,17,18,17,18,17,109,110,109,110,109,110,252,252,252,252,252,109,252,109,252,109,109,109,109,110,109,110,109,110,110,110,109,252,252,252,252,109,252,109,252,109,109,109,109,110,109,110,109,110,252,252,252,252,252,252,252,252,252,252,252,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,109,107,109,107,109,107,109,108,109,108,109,108,109,108,109,108,109,108,109,108,109,108,109,108,109,108,252,252,252,108,108,252,108,108,108,109,108,109,108,109,108,109,107,109,109,109,107,252,109,109,107,252,109,109,107,109,109,109,107,109,109,109,109,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,109,110,109,110,109,110,109,252,252,252,252,252,252,252,109,107,109,107,109,107,109,107,109,107,109,107,107,107,252,107,252,107,252,252,252,252,252,252,252,106,106,106,106,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,110,109,110,109,110,252,252,252,252,252,252,109,109,109,109,109,109,109,109,109,110,110,110,110,110,109,252,252,252,252,252,109,109,109,109,109,109,109,110,109,110,109,110,252,252,252,252,109,252,252,252,109,252,109,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,107,109,252,109,108,109,252,109,108,109,252,109,108,109,252,109,252,109,109,109,252,109,252,109,252,252,252,108,252,108,109,108,109,108,252,108,109,108,252,107,109,107,252,107,252,107,252,107,252,107,109,107,109,107,252,109,109,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,110,109,110,109,110,109,252,252,252,252,252,252,110,109,107,109,107,107,107,107,107,107,107,252,107,252,107,252,107,252,107,252,107,252,252,252,107,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,109,110,109,110,252,110,252,252,252,109,252,109,252,109,109,110,109,110,109,110,109,110,109,110,252,252,252,109,252,109,252,109,252,109,109,109,110,110,109,110,109,252,252,252,252,252,252,252,252,252,109,252,252,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,109,107,109,107,109,108,109,107,109,108,109,108,109,107,109,108,109,108,252,108,252,108,252,108,252,108,252,108,108,252,108,108,108,109,108,109,108,109,108,109,107,109,107,109,107,109,109,109,107,109,109,109,109,109,109,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,110,109,110,109,110,109,110,252,252,252,252,252,107,107,107,107,107,107,107,107,107,107,107,252,107,252,107,252,252,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,109,110,109,110,109,252,252,252,252,109,109,109,109,109,109,110,109,110,109,110,109,110,109,252,252,252,252,252,252,109,252,109,109,109,109,109,110,110,109,110,109,252,252,252,252,252,109,252,109,252,109,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,109,107,109,108,109,108,109,252,109,108,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,108,252,108,109,108,109,108,109,108,109,108,252,108,109,107,252,107,252,107,252,107,252,107,106,107,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,109,110,109,110,109,110,109,252,107,107,107,107,107,107,252,107,252,107,252,107,252,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,110,109,110,109,252,252,109,252,109,252,109,109,110,109,110,109,110,110,110,109,110,109,252,252,109,252,109,252,109,252,109,252,109,252,109,109,109,109,110,252,252,252,252,252,252,252,252,252,252,109,252,110,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,108,109,107,109,108,109,108,109,108,109,108,109,108,109,108,109,108,252,108,252,108,252,108,252,252,252,108,108,252,107,108,108,109,108,109,108,109,108,109,107,109,109,109,107,109,109,109,107,109,106,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,110,109,110,109,110,110,107,107,107,107,107,107,107,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,18,18,17,18,110,109,110,109,252,109,109,252,109,109,109,109,109,109,110,109,110,109,110,109,110,252,252,252,252,252,109,252,109,109,109,252,109,109,109,109,109,109,110,252,252,109,252,109,252,109,252,109,252,109,252,110,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,109,252,109,107,109,252,109,108,109,252,109,108,109,252,109,108,109,252,109,252,252,252,109,252,252,252,107,252,108,109,108,109,108,109,108,252,107,252,107,252,107,252,107,252,107,252,106,106,106,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,109,110,109,110,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,110,110,110,109,252,109,109,252,109,109,109,109,110,109,110,109,110,109,110,109,252,252,252,252,109,252,109,252,109,252,109,252,109,109,109,109,110,109,252,252,252,252,252,252,252,109,252,252,252,109,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,109,107,109,107,109,107,109,107,109,107,109,108,109,108,109,252,252,252,252,252,252,108,252,252,252,108,252,252,108,252,108,109,108,109,108,109,109,109,107,252,109,252,252,252,107,107,107,106,106,106,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,110,110,109,110,109,252,109,109,109,109,109,110,109,110,109,110,109,110,252,252,252,252,252,252,252,109,252,109,109,109,109,109,109,109,109,110,252,252,252,252,109,252,109,252,109,252,109,252,109,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,109,108,109,252,109,108,109,108,109,252,109,252,109,252,109,252,109,252,252,252,109,252,107,252,107,252,252,252,108,109,108,109,108,252,108,252,107,252,107,252,107,107,107,107,107,107,106,106,106,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,110,109,110,109,110,252,109,109,110,109,110,110,110,109,110,109,110,252,252,252,252,252,109,252,109,252,109,252,109,252,109,109,109,109,110,252,252,252,252,252,252,252,252,252,252,252,252,109,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,109,107,109,107,109,108,109,108,109,252,109,252,109,252,252,252,252,252,252,108,252,108,107,108,107,252,252,252,109,109,109,109,108,109,109,109,109,252,109,109,106,107,107,107,107,107,107,106,106,106,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,109,110,109,110,109,109,109,110,109,110,110,110,109,110,109,252,252,252,252,252,252,252,252,109,252,109,109,109,109,109,109,109,109,110,109,252,252,252,109,252,109,252,109,252,109,252,109,252,110,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,107,109,107,109,108,109,252,109,252,109,252,109,252,252,252,252,252,109,109,109,108,107,252,107,252,252,109,108,109,108,252,108,109,109,252,108,252,109,107,106,107,106,107,106,107,107,107,106,106,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,110,109,110,109,110,109,110,110,110,109,110,109,110,252,252,252,109,252,252,252,109,252,109,252,109,252,109,252,109,109,109,109,110,109,252,252,252,252,252,252,252,109,252,252,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,109,107,109,107,109,108,109,108,109,252,109,252,252,252,252,252,109,252,252,252,109,109,107,252,252,109,109,109,109,109,109,109,109,109,109,109,109,108,106,107,106,107,107,107,107,107,107,107,107,106,106,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,109,110,109,109,109,110,109,110,109,110,109,252,252,252,252,252,252,252,252,109,252,109,252,109,109,109,109,109,109,110,109,110,109,252,109,252,109,252,109,252,109,252,109,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,109,107,109,109,109,252,109,252,109,252,109,252,109,252,109,252,109,252,107,252,107,252,107,109,109,109,109,109,109,252,109,252,109,252,106,108,106,107,106,107,106,107,106,107,107,107,107,107,106,106,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,18,17,109,110,109,110,109,110,109,110,109,110,252,252,252,252,252,109,252,109,252,109,252,109,252,109,252,109,109,109,109,110,109,110,252,252,252,252,252,252,252,252,109,252,109,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,109,107,109,108,109,108,109,109,109,109,109,252,109,252,109,252,252,252,109,252,252,252,109,109,109,109,109,109,109,109,109,109,109,106,106,108,106,106,106,107,107,107,106,107,107,107,107,107,106,106,106,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,110,109,110,109,110,109,110,109,110,252,252,252,252,252,252,252,109,252,109,109,109,109,109,109,109,109,109,109,110,109,252,109,252,252,252,109,252,109,252,109,252,110,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,109,107,109,108,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,109,109,109,109,109,109,252,109,106,106,107,106,107,106,107,106,107,106,107,106,107,107,107,106,107,107,106,106,106,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,17,18,17,17,110,109,110,109,110,252,110,109,110,252,252,252,252,252,109,252,109,252,109,252,109,252,109,109,109,109,109,109,110,109,252,252,252,252,252,252,252,252,252,109,252,252,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,109,252,252,252,252,252,252,252,252,252,109,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,108,252,109,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,107,109,107,109,108,109,109,109,109,109,252,109,252,109,252,109,252,109,252,252,252,252,109,109,109,109,109,109,109,108,106,106,106,106,106,106,106,106,107,106,107,106,107,107,107,107,107,107,106,106,106,106,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,110,109,110,109,110,109,110,109,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,109,109,109,109,109,110,109,252,109,252,109,252,109,252,109,252,109,252,110,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,109,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,107,109,107,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,109,109,109,109,109,109,107,107,109,106,106,106,106,106,107,106,107,106,107,106,107,106,107,106,107,107,107,106,106,106,106,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,17,18,17,17,17,17,17,17,110,110,110,109,110,109,110,109,252,252,252,109,252,252,109,252,109,252,109,252,109,252,109,109,109,109,110,109,110,109,252,252,252,252,252,252,252,252,252,109,252,110,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,109,252,108,252,109,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,107,109,107,109,107,109,109,109,109,109,252,109,252,109,252,252,252,109,252,252,252,252,252,109,109,109,109,107,107,107,107,107,106,106,106,106,106,106,107,106,107,106,107,107,107,107,107,107,107,106,106,106,106,106,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,110,110,110,109,110,109,110,252,252,252,252,109,252,252,252,252,109,252,109,109,109,109,109,109,109,109,110,109,110,109,252,109,252,252,252,109,252,109,252,109,252,110,252,110,252,110,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,252,109,107,109,252,109,252,109,252,109,252,109,252,109,252,109,252,107,252,109,252,109,252,252,109,107,107,107,252,107,107,107,252,106,106,106,107,106,107,106,107,106,107,106,107,106,107,107,107,106,106,106,106,106,106,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,110,110,110,109,110,252,110,109,252,252,110,252,252,252,109,252,109,252,109,109,109,252,109,109,110,109,110,109,110,252,252,252,252,252,252,252,252,252,252,109,252,252,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,109,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,109,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,107,109,107,109,107,109,109,109,109,109,252,109,252,109,252,252,252,109,252,252,252,252,252,252,109,107,107,107,252,107,109,109,107,107,106,106,106,106,106,106,107,106,107,107,107,107,107,107,107,106,106,106,106,106,106,106,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,110,110,110,110,109,110,109,252,109,110,109,252,252,252,252,109,109,109,252,109,109,109,110,110,109,110,109,110,252,252,109,252,109,252,109,252,109,252,109,252,110,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,109,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,107,109,107,109,252,109,252,109,252,109,252,109,252,109,252,109,252,107,252,109,252,109,252,252,107,107,109,107,252,107,252,107,252,107,252,106,106,106,107,106,107,106,107,106,107,106,107,107,107,106,106,106,106,106,106,106,106,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,17,16,17,17,17,17,17,17,110,110,110,110,110,110,109,110,109,110,109,110,252,109,252,109,252,109,109,109,109,110,109,110,109,110,109,252,252,252,252,252,252,252,252,252,252,252,110,252,110,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,107,109,107,109,107,109,252,109,107,109,252,109,252,109,252,252,252,109,252,252,252,252,107,107,107,107,109,109,109,109,252,109,252,107,109,252,106,106,106,106,106,106,107,107,107,107,107,107,107,106,107,106,106,106,106,106,106,106,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,110,110,110,109,110,109,110,109,110,109,110,109,252,252,109,109,109,109,110,110,110,109,110,109,110,252,252,252,252,252,252,252,252,109,252,109,252,110,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,109,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,252,109,107,109,252,109,252,109,252,109,252,109,252,109,252,109,252,107,252,252,252,109,107,107,252,107,252,107,252,107,109,109,252,109,109,107,252,107,106,106,107,106,107,106,107,106,107,107,107,106,107,106,106,106,106,106,106,106,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,110,110,110,109,110,109,110,109,110,109,110,109,252,109,252,109,110,109,110,109,110,109,110,252,252,252,252,252,252,252,252,252,252,252,252,110,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,107,109,107,109,107,109,107,109,252,109,252,109,252,252,252,252,252,252,252,107,107,107,107,107,252,107,252,107,252,252,252,252,252,252,109,109,252,106,106,106,106,106,107,107,107,107,107,106,107,106,107,106,106,106,106,106,106,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,110,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,252,109,110,109,252,252,252,252,252,252,252,252,252,252,252,110,252,110,252,110,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,107,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,107,107,107,252,107,252,107,252,107,252,107,252,107,252,252,252,107,109,107,106,106,107,106,107,106,107,107,107,106,107,106,107,106,106,106,107,106,106,106,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,110,110,110,109,110,109,110,252,110,109,110,109,110,109,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,252,109,252,109,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,107,109,109,109,109,109,109,109,107,109,252,109,252,109,252,252,252,252,252,252,252,107,107,107,107,107,252,107,107,107,252,252,252,252,252,252,252,252,252,252,109,109,106,106,106,106,107,107,107,106,107,106,107,106,107,106,106,106,106,106,106,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,17,16,17,17,110,110,109,110,109,110,109,110,109,110,109,110,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,110,252,110,252,109,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,109,252,109,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,252,109,109,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,107,107,107,252,107,252,107,252,107,252,107,252,107,252,107,252,107,252,252,252,107,109,109,106,106,107,107,107,106,107,106,107,106,107,106,106,106,106,106,106,106,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,109,110,109,110,109,110,109,110,252,110,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,252,109,252,109,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,107,109,108,109,109,109,109,109,109,109,252,109,252,109,252,252,252,252,252,252,252,252,107,107,107,107,107,107,107,107,252,107,252,107,252,252,252,252,252,252,252,252,252,252,109,106,252,106,107,106,107,106,107,106,107,106,107,106,106,106,106,106,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,109,110,109,110,109,110,109,110,109,110,109,110,109,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,110,252,109,252,109,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,109,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,252,109,109,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,107,107,252,107,252,107,252,107,252,107,252,107,252,107,252,107,252,252,109,252,252,107,252,107,252,109,107,106,107,106,106,107,107,106,107,106,106,106,106,106,106,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,110,109,110,109,110,109,110,109,110,109,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,110,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,109,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,107,252,109,109,109,109,109,109,109,109,252,109,252,109,252,252,252,109,252,252,252,252,107,107,107,107,107,107,107,107,252,107,252,107,252,252,252,252,252,109,109,109,252,252,252,252,252,252,252,107,107,106,107,106,107,107,107,106,106,106,106,106,106,106,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,109,110,109,110,109,110,109,110,109,110,109,110,109,252,252,252,252,252,252,252,252,252,252,252,110,252,110,252,109,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,110,252,109,252,109,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,109,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,108,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,252,252,109,109,252,109,109,109,252,109,252,109,252,109,252,109,252,109,252,252,252,109,107,107,252,107,107,107,252,107,252,107,252,107,252,107,252,107,252,109,252,107,252,252,252,107,252,252,252,252,252,106,107,106,106,107,107,106,107,106,107,106,106,106,106,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,109,110,109,110,109,110,109,110,109,110,109,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,107,252,107,109,107,109,109,109,109,109,252,109,252,109,252,252,252,252,252,252,252,252,107,107,107,107,107,107,107,107,252,107,252,107,252,107,252,252,109,109,109,109,252,252,252,252,252,252,252,252,252,107,107,106,107,106,107,106,107,106,106,106,106,106,106,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,110,109,110,109,110,109,110,109,110,109,110,109,110,252,252,252,252,252,252,252,252,252,252,110,252,110,252,252,252,252,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,107,109,109,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,107,107,107,107,107,252,107,252,107,252,107,252,107,252,107,107,107,252,107,252,109,252,109,252,107,252,107,252,252,252,107,107,106,107,106,107,106,106,106,106,106,107,106,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,109,110,109,110,109,110,109,110,252,109,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,109,107,109,109,109,107,109,252,109,252,109,252,252,252,109,252,252,252,252,252,252,107,107,107,107,107,107,107,107,107,107,252,107,107,107,109,109,109,109,252,109,252,109,252,252,107,107,252,252,252,107,107,107,107,106,107,106,107,106,106,106,106,106,106,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,109,110,109,110,109,110,109,110,109,109,109,109,252,110,252,252,252,252,252,252,252,252,110,252,110,252,252,252,252,252,110,252,110,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,109,107,109,252,109,252,109,252,109,252,109,252,109,252,252,252,109,252,252,107,107,107,107,252,107,252,107,252,107,107,107,252,107,109,107,252,107,252,109,252,107,252,109,252,107,252,107,252,252,252,107,107,252,107,106,107,106,106,106,107,106,106,106,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,110,109,110,109,110,109,110,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,110,252,110,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,107,109,107,109,109,109,252,109,252,109,252,252,252,252,252,252,252,107,107,107,107,107,107,107,107,107,107,107,252,107,109,109,109,109,109,109,252,109,252,252,252,252,107,107,252,107,252,252,252,107,107,107,107,106,107,106,106,106,106,106,106,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,110,109,110,109,110,109,110,109,109,109,109,109,109,109,109,252,252,252,252,252,252,110,252,252,252,252,252,252,252,110,252,110,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,109,109,252,109,107,109,252,109,252,109,252,109,252,109,252,109,252,252,252,107,107,107,252,107,107,252,252,252,252,252,109,109,109,109,252,109,107,107,252,107,252,109,252,109,252,252,107,107,252,107,252,252,252,107,252,107,107,106,106,106,106,106,106,106,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,16,17,16,17,16,16,16,17,110,109,110,109,110,109,110,252,110,252,109,252,109,252,109,252,109,252,252,252,109,252,252,252,252,252,252,252,252,252,252,110,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,107,252,252,252,252,252,252,252,109,109,109,109,109,109,107,109,252,109,252,252,252,252,252,252,252,252,252,252,107,252,107,252,107,252,252,109,109,109,109,109,109,109,252,109,107,107,252,252,252,109,252,252,252,107,107,107,107,107,252,252,252,107,252,107,107,106,106,106,106,106,106,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,110,109,110,109,110,109,110,109,110,109,110,252,109,109,109,252,109,109,252,252,252,109,252,252,252,252,252,252,252,110,252,109,252,109,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,109,109,252,109,252,109,108,109,252,252,252,252,252,252,252,107,252,252,252,252,252,252,252,252,109,109,252,109,109,109,252,109,252,109,252,109,252,107,252,109,252,252,252,109,252,107,252,107,252,107,252,107,109,109,109,107,107,106,106,106,106,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,16,16,17,16,109,110,109,110,109,110,252,110,252,110,252,110,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,108,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,108,109,109,109,252,109,252,252,252,252,252,252,107,252,252,252,107,252,107,252,107,109,109,109,109,109,109,109,109,109,109,109,252,109,252,109,252,109,252,252,252,252,252,252,252,107,107,107,107,107,109,107,109,107,109,109,107,106,107,106,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,252,110,110,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,109,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,108,252,252,252,252,252,252,252,252,252,252,252,108,252,109,252,252,252,252,252,252,252,252,252,107,252,252,252,252,109,252,109,108,109,252,252,252,252,107,252,252,252,107,252,252,252,109,109,109,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,107,107,107,109,107,109,107,109,107,109,109,107,106,107,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,109,110,109,110,109,110,252,110,252,110,252,110,252,110,252,110,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,252,252,107,252,107,109,107,109,109,109,109,109,109,109,109,109,252,109,109,109,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,107,109,109,109,109,109,106,107,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,109,110,109,110,109,110,109,110,109,110,109,110,252,110,109,110,252,110,110,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,108,252,252,252,252,252,252,252,252,252,252,252,108,109,252,109,252,109,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,252,252,252,252,109,109,109,109,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,109,252,252,252,252,109,109,109,109,109,109,109,109,109,109,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,110,109,110,109,110,109,110,252,110,252,110,252,110,252,110,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,109,108,109,109,109,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,252,252,109,109,109,109,109,109,109,109,109,109,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,109,109,109,109,109,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,110,252,110,252,252,252,252,252,252,252,110,252,110,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,108,109,252,109,252,109,252,109,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,109,109,109,109,109,109,109,109,109,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,109,110,109,110,109,110,252,110,252,110,252,110,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,108,252,252,252,252,252,252,252,252,252,109,109,108,109,252,109,109,109,252,252,252,252,107,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,109,109,109,109,109,109,252,109,109,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,109,109,109,109,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,109,110,109,110,109,110,109,110,109,110,252,110,109,110,252,252,109,252,252,252,252,252,252,252,252,252,252,252,110,252,110,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,109,108,109,252,109,252,109,252,109,252,109,252,252,107,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,109,252,252,252,252,252,109,109,109,109,109,109,109,109,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,110,109,110,109,110,109,110,109,110,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,108,109,109,109,109,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,109,109,109,109,109,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,109,109,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,15,16,16,16,16,16,16,16,110,109,110,109,110,109,110,109,110,109,252,252,252,252,252,252,252,252,252,252,252,252,252,110,252,110,252,109,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,109,252,252,252,252,109,109,109,109,109,109,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,110,109,110,109,110,252,252,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,252,109,109,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,109,109,109,109,109,252,109,109,109,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,16,15,16,16,109,110,109,110,109,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,109,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,109,109,109,109,109,109,109,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,109,110,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,109,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,109,109,109,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,109,109,109,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,110,109,110,109,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,109,252,109,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,109,109,109,109,109,109,109,109,109,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,110,109,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,252,252,252,252,252,252,252,252,252,252,252,252,109,108,109,108,109,252,109,109,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,109,109,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,108,108,109,109,109,109,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,109,110,109,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,252,109,252,109,252,109,252,109,252,109,252,252,252,109,252,252,252,252,252,252,252,252,252,109,252,109,252,109,109,109,252,109,252,109,252,252,252,252,252,252,252,252,109,108,109,108,109,109,109,109,109,109,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,109,110,109,110,109,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,109,109,109,109,109,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,109,109,109,252,252,252,252,252,252,252,252,252,107,107,107,107,107,109,109,109,109,109,109,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,109,110,109,110,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,109,252,109,109,109,252,109,252,109,252,252,252,252,252,252,252,108,107,107,109,107,109,107,109,109,109,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,15,16,110,109,110,109,110,109,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,108,109,109,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,109,252,109,252,252,252,252,252,252,252,108,108,107,107,107,109,109,109,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,110,109,110,109,110,109,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,109,252,109,252,252,252,252,252,109,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,252,109,252,109,252,252,252,252,252,252,252,108,108,108,109,107,109,107,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,16,15,15,15,109,110,109,110,109,110,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,109 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,108,109,109,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,252,109,252,252,252,252,252,252,252,108,108,108,108,108,109,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,109,110,109,110,109,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,109,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,252,109,252,109,252,109,252,252,252,252,252,252,107,107,109,107,109,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,110,109,110,109,110,109,110,252,110,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,108,109,109,109,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,109,252,252,252,252,252,108,108,107,107,107,107,107,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,110,109,110,109,252,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,109,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,108,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,252,109,252,109,252,109,252,108,252,108,252,107,109,107,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,15,15,15,14,15,15,15,15,109,110,109,110,252,110,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,109,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,252,109,252,252,252,107,107,107,107,107,107,107,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,109,110,109,110,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,109,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,252,109,252,109,252,109,252,107,107,107,252,107,252,107,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,14,15,15,15,14,15,14,15,110,109,110,109,109,252,109,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,109,109,109,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,109,109,252,107,107,107,107,107,107,107,252,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,110,109,252,252,252,252,252,252,252,252,252,252,252,252,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,252,107,107,107,107,107,107,107,252,106,107,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,109,110,252,109,252,109,252,252,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,109,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,107,107,107,107,107,107,107,107,106,107,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,252,252,109,109,109,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,107,107,252,107,252,107,252,106,107,106,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,110,110,109,109,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,109,109,109,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,107,107,107,107,106,107,107,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,15,15,15,14,110,110,109,109,109,109,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,109,107,252,107,252,107,106,106,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,15,252,110,109,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,109,108,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,107,107,107,107,107,107,107,107,107,106,106,107,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,110,109,110,109,109,109,109,252,110,252,109,110,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,108,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,109,252,109,107,107,107,107,109,107,107,109,252,106,107,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,109,110,252,110,252,109,252,109,109,110,252,110,110,110,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,109,108,109,108,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,109,109,109,107,107,107,107,107,107,109,107,109,106,106,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,15,14,14,14,14,110,109,110,109,110,109,109,252,252,109,109,109,110,110,110,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,108,252,108,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,107,109,107,109,109,107,107,109,107,107,107,109,107,109,107,106,106,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,252,110,109,110,252,109,252,109,252,109,109,110,109,110,110,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,108,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,109,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,109,109,109,109,109,107,107,107,107,107,107,107,107,107,106,106,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,110,110,109,110,109,110,109,252,252,109,109,109,110,110,110,110,252,109,109,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,107,109,107,109,109,109,107,107,107,107,107,109,107,109,107,109,106,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,14,15,110,109,110,252,110,252,252,252,109,252,109,109,110,110,110,252,109,109,109,252,109,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,109,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,108,109,109,109,109,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,109,109,109,109,107,107,107,107,107,107,107,107,107,107,106,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,110,110,109,110,109,252,252,252,252,109,109,109,109,110,110,109,252,109,109,109,109,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,109,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,107,109,107,109,107,109,109,109,107,107,107,109,107,107,107,109,107,106,106,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,14,14,15,14,15,14,15,14,110,110,252,110,252,110,252,109,252,109,252,109,109,109,109,110,252,109,252,109,252,109,109,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,109,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,109,109,109,109,109,107,107,107,107,107,107,107,107,107,109,106,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,110,109,110,109,110,109,252,252,252,252,109,109,109,109,110,110,110,252,109,109,109,109,109,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,107,107,109,107,109,109,109,109,107,107,109,107,107,107,109,107,109,107,106,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,14,14,14,14,15,14,14,14,110,110,252,110,252,110,252,109,252,109,252,109,252,109,110,110,252,109,252,109,109,109,109,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,108,109,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,109,109,109,109,109,107,107,107,107,107,107,107,109,106,106,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,110,109,110,109,110,252,252,252,109,252,109,109,109,109,110,252,110,252,109,109,109,109,109,109,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,108,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,107,107,109,107,109,109,109,109,109,109,107,107,107,107,109,107,109,106,106,106,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,110,110,252,110,252,110,252,252,252,109,252,109,252,109,109,110,252,110,252,109,109,109,252,109,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,108,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,109,109,109,109,109,109,107,107,107,107,107,107,107,106,106,106,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,110,109,110,109,110,109,110,252,252,252,109,252,109,109,109,110,110,109,110,109,109,109,109,109,109 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,109,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,107,107,109,107,109,107,109,109,109,109,109,107,107,107,109,107,109,106,107,106,106,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,110,252,110,252,110,252,110,252,252,252,109,252,109,252,109,109,110,110,110,252,110,252,109,109,109,109 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,108,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,109,109,109,109,109,109,109,109,107,107,107,107,107,106,106,106,106,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,110,110,109,110,109,110,252,110,109,252,252,109,252,109,109,109,109,110,252,110,109,110,109,109,109,109 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,108,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,107,107,109,107,109,107,109,109,109,109,109,109,109,107,109,107,107,106,107,106,106,106,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,110,109,110,252,110,252,110,252,252,252,109,109,109,252,109,252,109,110,110,252,110,252,110,252,109,109 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,108,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,109,108,109,109,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,109,109,109,109,109,109,109,109,109,109,107,107,107,106,106,106,106,106,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,110,109,110,109,110,109,110,109,252,109,109,109,109,252,252,252,109,109,109,252,110,252,252,109,252,109,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,109,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,109,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,107,107,109,107,109,107,109,109,109,109,109,109,109,109,109,107,107,106,107,106,107,106,106,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,109,110,109,110,109,110,252,110,252,109,252,109,109,110,109,252,252,109,109,252,252,252,252,252,109,252,109 +,252,252,252,252,252,252,252,252,252,252,252,252,109,252,108,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,108,108,108,108,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,107,109,109,109,109,109,109,109,109,109,109,109,109,107,107,106,106,106,106,106,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,14,14,13,14,110,109,110,109,110,109,110,109,252,109,109,109,109,110,110,109,110,110,252,252,252,252,252,252,252,109,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,109,107,109,107,109,107,109,109,109,109,109,109,109,109,109,109,106,106,106,106,106,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,109,110,109,110,252,110,109,252,252,109,252,109,109,110,110,252,252,252,252,252,252,252,252,252,252,252,109 +,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,108,108,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,107,107,109,109,109,109,109,109,109,109,109,109,109,109,109,109,107,106,106,106,106,106,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,13,14,14,14,13,14,13,14,110,109,110,109,110,109,252,109,252,109,109,109,109,110,110,110,252,252,252,252,252,109,252,252,252,109,252 +,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,108,252,108,252,108,252,252,252,252,252,108,252,108,252,108,252,252,252,252,107,107,252,107,109,107,109,107,109,107,109,109,109,109,109,109,107,107,109,109,109,107,106,106,106,106,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,110,109,110,109,110,252,109,252,109,252,109,109,109,110,252,252,252,252,252,252,252,252,252,252,252,109 +,252,252,252,252,252,252,252,252,252,252,109,252,108,252,108,252,252,252,252,252,252,252,252,252,108,252,108,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,108,252,108,252,108,108,108,108,108,252,108,108,108,252,252,252,107,252,252,107,107,107,107,107,107,109,109,109,109,109,109,109,109,107,107,107,107,109,107,107,107,106,106,106,106,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,110,109,110,109,252,109,252,109,252,109,110,110,252,252,252,252,252,252,252,109,252,109,252,109,252 +,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,108,108,252,108,252,108,252,108,108,108,252,108,108,108,252,107,252,107,252,107,252,107,107,107,107,107,109,107,109,107,109,107,109,109,109,109,107,107,109,107,109,107,109,107,109,106,106,106,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,110,252,110,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,108,252,108,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,108,108,108,252,252,108,108,108,108,108,108,108,108,107,107,252,107,252,107,252,107,107,107,107,107,107,107,109,107,109,109,109,109,109,109,109,107,107,107,109,107,107,107,107,106,106,106,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,13,14,13,13,13,14,13,14,110,109,110,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252 +,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,108,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,108,108,108,108,108,252,108,252,108,252,107,252,107,252,107,252,107,252,107,252,107,109,107,109,107,109,107,109,107,109,109,109,107,109,107,109,107,109,107,109,107,106,106,106,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109 +,252,252,252,252,252,252,252,252,109,252,108,252,252,252,252,252,252,252,252,252,108,252,108,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,108,108,108,108,108,108,108,108,108,107,107,252,107,107,107,252,107,252,107,252,252,107,107,107,107,107,107,109,109,109,109,109,109,107,107,109,107,107,107,107,107,106,106,106,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,109,110,109,110,109,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,109,252 +,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,108,108,252,108,108,108,252,107,252,107,252,107,252,107,252,107,252,107,252,107,107,107,109,107,109,107,109,107,109,109,109,109,109,107,109,107,107,107,106,106,106,106,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,109,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109 +,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,109,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,108,108,108,108,108,108,108,108,108,107,107,107,107,107,252,107,252,107,252,107,252,107,252,109,109,109,109,109,107,107,109,109,109,109,109,109,107,107,107,107,107,106,106,106,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,110,109,110,109,110,109,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252 +,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,108,108,108,108,252,108,252,108,252,107,252,107,252,107,252,107,252,107,252,107,252,107,252,107,109,107,109,107,109,107,109,107,109,109,109,109,109,109,109,106,109,106,106,106,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,13,14,110,109,110,252,110,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,109,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,108,252,109,252,108,108,108,108,108,108,108,108,108,107,107,107,107,252,107,107,107,252,107,252,107,252,252,252,109,109,109,109,109,109,109,109,109,109,109,109,109,108,106,108,106,106,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,109,110,109,110,252,110,252,252,252,252,252,252,252,252,252,252,109,252,252,252 +,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,109,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,108,252,108,252,252,108,108,108,108,108,108,252,108,252,107,252,107,252,107,252,107,252,107,252,107,252,107,252,107,109,107,109,107,109,109,109,107,109,109,109,109,107,106,107,106,106,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,14,13,13,13,109,110,109,110,252,110,252,252,252,252,252,252,252,252,252,252,109,252,252 +,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,109,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,108,108,108,252,252,252,108,108,108,108,108,108,108,108,107,107,107,107,107,252,107,252,107,252,107,252,252,252,109,109,109,109,109,109,109,109,109,109,109,109,107,107,107,107,106,106,106,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,110,109,110,109,110,252,252,252,252,252,252,252,252,252,252,109,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,109,108,252,108,252,108,252,252,108,108,108,108,252,108,252,108,252,107,252,107,252,107,252,107,252,107,252,107,252,107,109,107,109,107,109,109,109,109,109,109,107,107,107,107,107,106,107,106,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,110,109,110,252,110,252,252,252,252,252,252,252,252,252,252,109,252,252 +,252,252,252,252,108,252,109,252,252,252,252,252,109,252,109,252,108,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,108,108,108,109,108,252,252,252,108,108,108,108,108,108,108,107,107,252,107,107,107,252,107,252,107,252,252,109,107,109,109,109,109,109,109,109,109,109,109,109,107,107,107,107,107,106,106,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,109,110,109,110,109,110,252,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,108,108,252,108,252,108,252,109,252,252,108,108,252,108,108,108,252,107,252,107,252,107,252,107,252,107,252,107,109,107,109,107,109,107,109,109,109,109,109,109,107,107,107,107,107,107,106,106,106,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,109,110,252,110,252,110,252,252,252,252,252,252,252,252,252,252,252 +,252,252,252,252,108,252,252,252,252,252,252,252,109,252,109,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,108,108,252,108,109,109,252,252,252,108,108,108,108,108,107,107,107,107,107,107,252,107,109,107,109,107,109,109,109,109,109,109,109,109,109,109,109,109,109,109,107,107,107,107,107,106,106,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,110,109,110,252,110,252,110,252,252,252,252,252,252,109,252,252,252 +,252,252,252,108,252,252,252,252,252,252,252,109,252,109,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,108,108,252,108,252,108,109,108,252,109,252,252,108,108,108,107,252,107,252,107,252,107,252,107,109,107,109,107,109,107,109,107,109,107,109,109,109,109,109,109,109,109,107,107,107,106,107,106,106,106,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,110,109,110,252,110,252,110,252,252,252,252,252,252,252,252,252 +,252,252,108,252,252,252,252,252,252,252,252,252,109,252,108,252,108,252,108,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,108,108,108,109,109,109,109,252,252,252,108,108,108,107,107,107,107,107,107,252,107,107,107,109,109,109,107,109,109,109,109,109,109,109,109,109,109,109,109,109,107,107,106,107,106,106,106,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,110,109,110,252,110,252,110,252,252,252,252,252,252,252,252 +,252,252,252,108,252,252,252,252,252,252,252,109,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,108,108,252,108,109,108,252,108,252,252,252,252,108,108,252,107,107,107,252,107,252,107,109,107,109,107,109,107,109,107,109,107,109,109,109,107,109,109,109,109,109,107,107,106,107,106,106,106,106,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,110,252,110,252,110,252,110,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,109,252,108,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,109,108,108,109,109,109,109,252,252,252,252,252,108,108,108,107,107,107,107,107,107,107,107,109,107,109,107,109,109,109,109,109,109,109,109,109,109,109,109,109,107,107,106,107,106,106,106,106,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,12,13,13,13,13,13,109,252,110,252,110,252,252,252,252,252,252,252,252 +,252,252,252,108,252,252,252,252,252,252,252,109,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,109,252,252,252,108,252,108,252,109,252,252,252,252,108,108,108,107,252,107,252,107,109,107,109,107,109,107,109,107,109,107,109,107,109,109,109,109,109,109,109,107,107,106,107,106,107,106,106,106,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,109,252,110,252,110,252,109,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,108,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,108,252,108,109,108,109,252,109,109,108,252,252,252,252,252,252,252,108,108,108,107,107,107,107,107,107,109,107,109,107,109,109,109,107,109,109,109,109,109,109,109,109,109,107,107,106,107,106,107,106,106,106,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,13,13,12,13,109,252,110,252,252,252,252,252,252,252,252 +,252,252,252,108,252,252,252,252,252,252,252,109,252,252,252,108,252,252,252,252,252,252,109,252,252,252,109,252,252,252,252,252,252,108,252,108,252,109,109,252,109,252,108,252,108,252,108,252,252,252,252,252,108,252,107,107,107,109,107,109,107,109,107,109,107,109,107,109,107,109,107,109,109,109,109,106,107,109,106,107,106,107,106,106,106,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,252,110,252,110,252,110,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,109,252,252,109,108,252,109,252,252,252,252,252,252,252,252,108,108,107,107,107,107,107,107,107,107,109,107,109,107,109,109,109,109,109,109,109,107,109,107,107,106,107,106,107,106,106,106,106,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,252,110,252,252,252,252,252,252,252,252 +,252,252,252,108,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,109,109,252,252,252,109,252,108,252,108,252,252,252,252,252,252,252,108,108,107,252,107,109,107,109,107,109,107,109,107,109,107,109,107,109,109,109,107,109,107,107,106,107,106,107,106,106,106,106,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,252,110,252,109,252,109,252,252,109 +,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,108,109,108,109,252,252,252,252,252,252,252,252,252,252,252,252,108,107,107,107,107,107,107,107,109,107,109,107,106,107,106,107,109,107,109,107,109,107,109,107,107,106,107,106,106,106,106,106,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,110,252,252,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,109,109,109,252,109,252,109,252,108,252,252,252,108,252,252,252,252,252,107,107,107,107,107,109,107,109,107,107,107,107,107,109,107,109,107,109,107,109,107,109,107,107,106,107,106,106,106,106,106,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,109,110,252,110,252,252,252,109,252 +,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,108,109,108,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,107,107,252,109,109,107,109,107,107,107,107,107,106,107,109,107,109,107,109,107,107,109,107,106,107,106,106,106,106,106,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,109,110,252,252,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,252,109,252,109,252,109,252,109,252,109,252,107,252,252,252,252,252,252,107,107,252,107,109,109,109,107,107,107,109,107,109,107,109,107,109,107,109,107,107,107,107,106,107,106,106,106,106,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,13,12,252,110,252,109,252,252,252 +,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,108,109,108,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,107,107,107,109,109,109,107,107,107,107,107,107,107,109,107,109,107,109,107,106,106,107,107,107,106,106,106,106,106,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,252,110,252,252,252,252 +,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,252,109,109,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,107,107,252,107,109,109,107,107,107,107,109,107,109,107,109,107,109,107,107,106,107,107,107,107,107,106,106,106,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,12,12,13,12,252,110,252,109,252 +,252,252,252,252,252,252,252,252,252,252,108,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,108,109,108,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,109,109,109,107,107,107,107,107,109,107,109,107,109,107,106,106,107,107,107,107,107,106,106,106,106,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,110,252,252,252,252 +,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,109,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,107,252,107,109,107,109,109,107,107,109,107,109,107,109,107,109,107,107,106,107,106,107,107,107,107,106,106,106,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,214,214,201,201,216,12,12,12,12,12,12,12,12,12,12,110,252,252,252 +,252,252,108,252,252,252,252,252,252,252,108,252,109,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,108,109,108,109,252,109,252,109,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,107,107,107,109,109,109,107,107,107,109,107,109,107,109,107,106,106,107,106,107,106,107,107,107,106,106,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,202,202,202,214,201,201,216,216,216,216,216,216,216,12,12,12,12,12,252,252,252 +,252,252,252,252,252,252,252,252,252,108,252,109,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,108,109,252,109,252,109,252,109,252,109,252,109,252,252,252,109,252,252,252,107,107,107,252,107,107,107,109,107,109,107,109,107,109,107,109,107,109,107,109,106,107,106,107,106,107,107,107,107,106,106,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,202,202,202,202,203,214,201,201,201,216,216,216,216,216,216,216,216,216,12,252,110,252 +,252,252,252,252,252,252,252,252,252,252,108,252,109,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,108,109,108,109,252,109,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,107,109,107,107,107,109,107,106,107,109,107,109,107,109,107,109,106,107,106,107,107,107,107,107,106,107,106,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,202,202,202,202,202,203,202,202,214,214,201,201,216,216,216,216,216,216,216,216,216,216,252,252 +,252,108,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,107,252,107,109,107,107,107,109,107,106,107,109,107,109,107,109,107,109,106,107,106,107,106,107,106,107,107,107,106,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,202,202,202,202,202,203,202,202,202,203,202,214,201,201,216,216,216,216,216,216,216,216,216,216,252 +,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,109,108,109,108,109,108,109,108,109,252,252,252,109,252,252,252,252,252,252,252,252,252,107,252,107,109,109,109,109,109,107,106,107,106,107,109,107,109,107,109,106,107,106,107,106,107,107,107,107,107,106,106,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,202,202,202,202,202,203,202,202,202,203,202,203,203,214,201,216,216,216,216,216,216,216,216,216,216,252 +,252,108,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,108,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,107,252,107,109,107,109,109,106,107,109,107,109,107,109,107,109,106,107,106,107,106,107,107,107,107,107,106,106,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,202,202,202,202,202,202,203,202,202,202,203,202,203,203,203,214,201,201,216,201,216,216,216,216,216,216,216,216 +,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,108,252,252,252,108,109,108,109,108,109,108,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,107,252,109,109,109,109,109,106,107,106,107,109,107,109,107,109,106,106,106,107,106,107,107,107,107,106,106,106,106,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,202,202,202,202,203,203,203,203,202,202,202,202,203,202,203,202,214,201,201,216,214,201,216,201,216,216,216,216,216 +,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,108,252,252,252,252,252,108,109,108,109,108,109,252,109,252,109,252,109,252,109,252,252,252,252,252,107,252,252,252,109,109,107,109,109,109,107,109,107,109,107,109,107,107,106,107,106,107,106,107,107,107,107,106,106,106,106,106,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,202,202,202,202,203,203,202,202,203,202,202,202,202,203,203,203,203,202,202,214,201,216,214,214,201,216,201,216,216,216,216 +,108,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,108,252,252,252,252,252,252,252,108,109,108,109,109,109,109,109,252,252,252,252,252,252,252,252,252,252,107,107,106,107,109,107,109,106,106,106,106,107,109,107,109,106,106,106,107,106,107,106,107,107,107,107,106,106,106,106,106,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,11,202,203,203,203,202,202,202,202,203,203,203,202,202,202,203,203,203,202,202,202,214,201,214,214,214,214,201,216,201,216,216,216 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,109,108,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,107,107,107,109,107,109,107,107,106,107,107,109,107,109,106,106,106,107,106,107,106,107,107,107,107,107,106,106,106,106,106,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,202,202,202,203,202,202,202,203,202,203,202,203,202,202,202,203,202,203,202,203,202,203,214,201,214,204,203,214,201,201,216,201,216,216 +,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,108,252,252,252,252,252,252,252,108,109,109,109,109,109,252,109,252,252,252,252,252,252,252,252,107,107,252,107,109,107,109,107,109,106,107,106,107,106,107,107,107,107,107,106,106,106,107,107,107,106,107,106,106,106,106,106,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,203,202,203,203,202,202,202,202,202,202,203,203,202,202,202,202,203,202,203,203,202,202,203,202,203,214,214,203,204,204,214,201,201,216,201,216 +,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,108,252,252,252,252,252,252,252,252,252,109,109,252,109,252,109,252,109,252,252,252,252,252,252,107,107,252,107,109,107,109,107,109,107,107,106,107,106,107,106,107,106,107,106,107,106,107,106,107,106,107,106,106,106,106,106,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,203,202,203,202,202,202,202,202,203,202,203,202,203,202,202,204,203,202,203,202,203,203,203,202,203,202,203,202,214,203,204,203,204,214,201,216,201,216,201 +,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,252,109,252,109,252,252,252,252,252,252,107,107,107,107,107,107,109,107,109,107,109,106,106,106,107,107,107,106,107,107,107,107,106,107,107,106,107,106,106,106,106,106,106,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,12,11,12,12,202,202,203,202,202,202,202,202,202,202,203,202,203,202,203,203,202,202,202,202,203,202,203,203,203,202,202,202,202,202,203,203,203,203,204,204,214,201,201,216,201,216 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,109,109,109,252,109,252,109,252,252,252,252,252,107,107,107,109,107,109,107,109,107,109,107,107,106,107,106,107,106,107,106,107,106,107,107,107,107,107,106,107,106,106,106,106,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,203,202,202,202,203,202,203,202,203,202,203,202,203,202,203,202,203,203,202,202,202,202,203,202,203,203,203,203,202,202,203,202,203,202,203,203,204,203,204,214,201,201,201,216,201 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,108,252,252,109,109,109,252,252,252,252,252,252,252,107,252,107,107,107,107,107,109,107,109,107,109,106,107,106,107,106,107,107,107,107,107,107,107,107,107,106,107,106,106,106,106,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,202,202,202,202,202,202,202,202,202,203,202,203,202,203,203,203,203,203,203,202,202,202,202,202,202,203,203,203,204,204,202,202,202,203,203,203,203,204,204,204,204,204,214,214,201,201,216 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,109,109,252,109,252,109,252,252,252,252,252,107,107,107,109,107,109,107,109,107,109,107,107,106,107,106,107,106,107,106,107,107,107,107,107,106,107,106,106,106,106,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,202,203,202,203,202,202,202,202,202,203,202,203,202,203,202,203,202,203,203,202,202,202,214,214,214,201,202,203,203,203,214,214,214,202,202,203,202,203,203,204,203,204,203,204,204,214,214,214,201,201 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,252,252,252,252,252,252,252,252,252,107,107,107,107,107,109,107,109,107,109,107,107,107,107,107,107,107,107,106,107,106,107,106,107,106,106,106,106,106,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,202,202,202,202,202,202,202,202,202,202,202,202,203,203,203,203,203,203,202,202,202,202,203,214,214,214,214,214,203,203,214,201,201,201,214,202,202,202,203,203,203,204,203,203,204,204,204,204,214,214,201,201 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,108,252,252,109,252,109,252,252,252,252,252,252,252,107,107,107,109,107,109,107,109,107,109,107,107,106,107,107,107,106,107,106,107,106,107,106,107,106,106,106,106,106,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,202,202,203,202,202,202,203,202,203,202,203,202,203,202,203,202,202,202,203,202,202,202,203,202,204,203,204,203,204,203,204,214,214,201,216,201,214,202,203,202,203,204,204,203,204,203,204,204,204,204,214,214,201 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,109,252,252,252,252,252,252,109,252,252,107,107,107,109,107,109,107,109,107,109,107,107,107,107,106,107,106,107,106,107,106,107,106,107,106,106,106,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,202,202,202,202,202,202,202,202,202,202,202,202,203,202,202,202,202,202,202,202,202,202,203,203,203,204,204,203,204,204,204,202,214,201,214,216,201,214,202,202,203,204,204,204,203,203,204,204,204,204,204,214,214,214 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,107,107,107,109,107,109,107,109,107,109,107,107,106,107,106,107,106,107,106,107,106,107,106,107,106,106,106,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,12,11,202,202,203,202,202,202,202,202,203,202,203,202,203,202,202,202,203,202,203,202,203,202,203,202,203,203,204,204,204,203,204,202,203,202,214,214,201,216,201,202,204,203,204,203,204,203,204,203,204,203,204,204,204,214,214 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,252,252,252,107,106,107,106,107,109,107,109,107,107,106,107,106,107,106,107,106,106,106,107,106,107,106,106,106,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,202,202,202,202,202,202,202,202,202,202,202,202,203,202,202,202,203,203,203,202,203,203,202,202,203,203,203,203,204,204,204,203,202,202,203,203,214,214,214,201,214,203,203,203,204,204,203,203,204,204,204,204,204,204,204,214 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,109,107,252,109,252,107,106,107,252,107,109,107,109,107,109,106,107,106,107,106,107,106,107,106,107,106,106,106,107,106,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,11,12,11,11,202,203,202,202,202,203,202,202,202,203,202,203,202,203,202,202,203,204,202,203,202,202,202,203,203,204,203,204,204,204,203,202,202,203,202,203,203,214,214,214,201,214,203,204,203,204,204,203,204,204,203,204,203,204,204,214 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,109,107,109,109,252,109,106,107,106,107,109,107,109,107,109,106,107,106,107,106,107,106,106,106,106,106,107,107,107,106,106,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,202,202,202,202,202,202,202,202,202,202,202,202,202,202,203,203,204,204,202,202,202,202,203,203,203,203,204,204,204,203,203,202,202,202,203,203,203,203,203,214,214,201,214,203,203,204,204,204,204,204,204,204,204,204,204,204 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,107,109,107,252,107,252,107,252,107,252,107,109,107,109,106,107,106,107,106,107,106,106,106,107,106,107,106,107,106,106,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,202,202,202,202,203,202,202,202,203,202,202,202,203,202,203,203,204,204,202,202,202,202,203,203,204,203,204,204,204,203,204,202,203,202,203,202,203,203,203,203,204,203,214,214,214,203,204,204,204,204,204,203,204,203,204,204,204 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,109,109,109,109,252,252,252,107,106,107,109,107,109,107,107,106,107,106,107,106,106,106,106,106,107,107,107,106,106,106,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,202,202,202,202,202,202,202,202,202,202,202,202,202,203,203,202,202,204,204,203,202,202,203,203,203,204,204,204,204,203,203,202,202,203,202,203,203,203,203,203,203,204,204,204,214,214,203,204,204,204,203,204,204,204,201,201,201 +,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,107,252,107,252,107,252,107,252,107,106,107,252,107,109,107,107,106,107,106,107,106,106,106,107,106,107,106,107,106,106,106,106,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,202,202,202,203,202,203,202,203,202,202,202,202,202,203,202,202,202,203,203,204,204,203,202,203,203,204,204,204,203,204,202,202,202,203,202,203,202,203,203,203,203,204,203,204,203,204,204,204,204,204,214,214,201,201,201,201,216,216 +,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,109,107,109,107,109,109,109,109,252,252,106,107,252,107,109,106,107,106,107,106,107,106,106,106,106,106,107,107,106,106,106,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,202,202,202,202,202,202,202,202,202,202,202,202,202,202,203,202,203,203,203,203,204,203,202,202,203,203,204,204,204,202,202,202,202,202,203,202,203,203,203,203,203,203,204,203,204,204,204,204,203,214,201,201,201,216,216,216,216,216 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,109,107,252,107,109,107,252,107,252,107,252,109,252,107,252,107,252,106,107,107,107,106,107,106,106,106,107,106,107,106,106,106,106,106,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,202,202,203,202,202,202,203,202,202,202,203,202,202,202,203,202,203,202,203,203,204,204,204,203,204,203,202,204,204,204,202,202,202,202,203,202,203,202,203,203,203,204,204,203,204,204,204,203,202,214,201,201,201,216,201,216,216,216,216 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,107,107,109,107,109,107,109,109,109,109,252,109,252,109,106,107,106,106,107,107,107,107,107,106,106,106,107,106,107,107,106,106,106,106,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,202,202,202,202,202,202,202,202,202,202,202,202,202,202,204,202,202,202,202,203,203,204,204,204,202,204,204,204,204,204,204,204,202,202,202,202,202,203,202,203,203,203,203,204,204,204,204,204,204,204,214,214,214,214,201,201,216,201,216,216,216 +,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,109,107,252,107,109,107,252,107,252,109,252,109,252,107,252,106,107,106,107,106,107,106,107,106,107,106,107,106,106,106,106,106,106,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,202,202,202,203,202,203,202,203,202,203,202,203,202,202,202,204,202,202,202,203,202,203,203,204,202,204,203,204,203,204,204,204,204,202,202,203,202,203,202,204,203,203,203,204,203,204,204,204,203,204,203,202,202,203,214,214,201,201,216,201,216,216 +,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,108,108,108,108,108,109,107,109,107,252,109,109,109,109,109,109,109,252,252,106,106,106,106,107,106,107,107,107,107,107,107,106,107,107,106,106,106,106,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,202,202,202,202,202,202,202,202,203,202,202,202,202,202,203,204,202,202,203,203,203,203,204,204,202,203,204,204,204,204,204,204,204,202,202,202,203,202,203,204,203,203,203,203,204,204,204,204,204,203,202,202,203,203,203,203,214,201,201,216,201,216 +,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,108,108,108,108,108,252,107,109,107,252,107,252,107,109,107,109,107,252,107,252,109,252,109,107,106,107,106,107,106,107,106,107,107,107,106,107,106,106,106,106,106,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,202,202,202,203,202,203,202,203,202,202,202,202,202,202,203,204,202,203,202,203,203,204,203,204,202,203,204,204,204,204,204,204,202,202,202,202,202,203,203,204,203,203,203,204,203,204,204,204,203,202,202,203,202,203,203,204,214,201,201,216,216,201 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,108,108,108,108,109,107,107,107,109,107,109,107,109,109,109,109,252,109,252,109,109,106,107,106,107,107,107,107,107,106,107,106,107,106,106,106,106,106,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,202,202,202,202,202,202,203,202,202,202,202,202,202,202,204,204,202,202,203,203,203,203,204,204,202,203,204,204,204,204,204,204,202,202,203,202,203,203,204,204,202,203,203,203,204,204,204,204,203,202,202,202,203,203,203,203,203,214,201,201,201,216 +,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,108,108,108,252,108,107,107,252,107,109,107,252,107,109,107,252,107,252,109,252,107,109,109,252,106,107,107,107,106,107,106,107,106,107,106,106,106,106,106,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,203,202,202,202,203,202,203,202,203,202,202,202,203,202,203,203,204,202,203,202,203,203,204,204,204,202,204,203,204,203,204,204,203,202,202,202,202,202,203,203,204,203,204,203,204,203,204,204,204,202,203,203,204,202,203,203,204,203,214,214,201,201,201 +,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,108,108,108,108,108,107,107,107,109,107,109,107,109,107,109,109,109,109,109,109,109,109,109,109,107,106,107,106,107,106,107,106,107,106,106,106,106,106,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,10,11,11,11,202,202,202,202,202,203,203,202,202,202,202,202,202,202,203,203,204,203,203,203,203,203,203,204,202,203,204,204,204,204,204,204,202,202,202,202,202,203,202,204,204,203,203,203,203,204,204,204,203,202,202,203,202,203,204,204,204,204,214,214,214,201,201 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,108,108,108,109,107,109,107,252,107,252,107,109,107,252,107,252,107,109,109,252,109,252,109,107,106,107,106,107,106,106,106,106,106,106,106,106,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,202,202,203,202,202,202,203,202,202,202,202,202,203,202,203,203,204,202,203,202,203,203,204,203,202,203,204,203,204,204,204,204,202,202,202,202,202,202,204,202,203,203,204,203,204,204,204,204,204,202,203,202,202,202,203,203,204,204,204,204,214,214,201 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,108,107,107,107,107,107,107,109,107,109,107,109,109,109,107,109,109,109,109,109,109,109,109,107,106,107,106,106,106,106,106,106,106,106,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,11,11,10,11,202,202,202,202,202,203,203,203,202,202,202,202,202,203,203,204,202,203,203,203,203,203,203,202,203,203,204,204,204,204,204,204,202,202,202,203,202,203,204,203,203,203,203,204,204,204,204,204,203,202,202,203,202,203,203,204,204,204,204,204,204,214,214 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,107,107,107,252,107,109,107,252,107,252,107,252,107,252,107,252,107,109,109,252,109,252,106,107,106,106,106,107,106,106,106,106,106,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,203,202,202,202,203,202,203,202,202,202,202,202,202,202,203,203,204,202,203,203,204,203,202,202,203,203,204,203,204,203,204,204,202,202,203,202,203,203,204,203,203,203,204,203,204,204,204,204,204,202,202,202,202,202,203,203,204,203,204,204,204,204,204 +,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,108,107,107,107,107,107,107,107,109,107,109,107,109,109,109,109,109,109,109,109,109,106,107,106,106,106,106,106,106,106,106,106,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,202,202,202,202,202,203,203,202,202,202,202,202,202,203,203,204,202,203,203,203,203,204,202,203,203,204,204,204,204,204,204,202,202,202,202,203,203,203,203,204,203,204,203,204,204,204,204,204,202,203,203,204,202,203,203,204,204,204,204,204,204,204,204 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,252,107,109,107,252,107,252,107,252,107,109,107,109,107,109,109,252,109,252,106,107,106,106,106,107,106,106,106,106,106,106,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,202,202,202,202,203,202,203,202,202,202,202,202,203,203,204,204,203,202,203,203,204,202,202,202,204,204,204,203,204,204,204,202,202,202,203,202,203,203,204,203,204,203,204,203,204,203,204,202,203,202,204,203,204,202,204,204,204,203,204,204,204,204,204 +,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,107,107,252,108,108,108,107,107,107,107,109,107,107,107,252,109,109,109,109,109,109,109,109,109,107,106,106,106,106,106,106,106,106,106,106,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,202,202,202,202,202,202,203,203,203,202,202,202,202,202,203,203,204,204,202,202,204,202,203,204,202,204,204,203,204,204,204,204,202,202,202,202,203,203,203,203,203,203,204,204,204,202,202,202,203,203,203,203,204,204,204,203,204,204,204,204,203,204,204,204 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,252,252,252,108,108,107,109,107,109,107,252,107,252,107,252,107,109,107,252,107,109,109,252,106,106,106,107,106,106,106,106,106,106,106,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,202,203,202,203,202,203,202,203,202,202,202,202,202,203,203,204,203,204,204,202,202,203,203,204,202,204,203,204,203,204,203,204,202,203,202,203,203,203,203,203,203,204,203,204,204,202,202,203,202,203,203,204,203,204,204,204,204,204,203,204,204,204,204,204 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,107,252,252,252,252,109,108,107,107,107,107,107,107,109,107,252,107,109,109,109,109,109,109,109,109,106,106,106,106,106,106,106,106,106,106,106,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,202,202,202,202,202,202,203,203,202,202,202,202,202,202,204,203,203,203,202,202,203,203,204,203,202,203,204,204,204,204,204,204,202,202,203,203,203,203,203,203,204,203,204,204,204,202,202,202,203,203,203,203,204,204,204,204,204,204,204,204,203,204,204,204 +,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,108,108,252,107,252,252,109,109,107,108,107,107,252,107,252,107,252,107,252,107,109,107,109,109,252,109,107,106,106,106,106,106,106,106,106,106,106,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,202,202,202,203,202,203,203,203,202,202,202,203,202,203,202,203,203,202,202,203,203,204,204,204,202,204,203,204,203,204,204,202,202,203,202,203,203,204,203,204,203,204,204,204,202,203,202,202,202,204,204,204,203,204,204,204,203,204,203,204,204,204,204,204 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,107,252,252,109,109,252,252,107,107,107,107,109,107,107,107,252,109,109,109,109,109,109,109,107,106,106,106,106,106,106,106,106,106,106,106,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,202,202,202,202,203,203,203,202,202,202,202,202,202,202,203,203,203,202,202,203,203,204,204,203,204,203,204,203,204,204,202,202,203,202,203,203,203,203,203,203,204,204,204,204,202,202,202,203,203,204,204,204,204,204,204,204,204,204,204,204,203,204,204,204 +,252,252,252,252,252,108,252,252,252,252,252,252,252,252,108,108,108,252,107,109,109,252,109,252,107,252,107,107,107,252,107,252,107,109,107,109,109,252,109,107,106,107,106,106,106,106,106,106,106,106,106,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,202,203,202,203,202,203,203,203,202,202,202,202,202,203,202,203,203,202,202,203,203,204,204,204,203,204,203,204,203,204,203,202,202,203,202,203,203,203,203,204,203,204,203,204,202,202,202,203,203,204,204,204,203,204,204,204,203,204,203,204,204,203,204,204 +,252,252,252,252,108,252,252,252,252,252,252,252,252,252,108,107,108,107,109,109,109,109,252,252,252,107,107,107,107,107,252,107,252,109,109,109,109,109,109,106,106,106,106,106,106,106,106,106,106,106,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,202,202,202,202,203,203,203,202,202,202,202,202,202,202,203,203,204,202,203,203,204,204,203,203,204,203,204,204,204,204,202,202,203,203,203,203,204,203,203,203,204,204,204,204,202,202,203,203,203,204,204,204,204,204,204,204,204,199,199,199,203,204,204,204 +,252,252,252,252,252,252,252,252,252,252,252,252,252,108,107,252,108,109,109,252,109,252,109,252,252,252,107,107,107,252,107,252,107,109,107,109,109,252,109,106,106,106,106,106,106,106,106,106,106,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,11,10,10,10,202,202,202,202,203,202,203,203,203,202,202,202,202,202,203,203,204,203,202,202,203,203,204,203,204,203,204,203,204,203,204,202,203,202,203,203,203,203,204,203,204,203,204,204,204,202,203,203,204,203,204,204,204,203,204,204,199,199,233,233,201,201,201,201,201 +,252,252,252,252,108,252,252,252,252,252,252,252,252,107,108,108,252,109,109,109,252,109,252,252,252,252,107,107,107,107,107,107,252,109,109,109,109,109,109,106,106,106,106,106,106,106,106,106,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,202,202,202,202,202,203,203,203,202,202,202,202,203,203,203,203,203,202,202,203,203,204,204,203,203,204,204,204,204,204,202,202,202,203,203,203,203,204,203,203,203,204,204,204,204,202,203,203,203,204,204,204,204,204,199,199,233,233,233,200,200,200,200,200,200 +,252,252,252,252,252,252,252,252,252,252,252,252,107,252,108,252,108,252,109,252,109,252,109,252,252,107,107,252,107,252,107,252,107,252,107,109,109,252,106,106,106,107,106,106,106,106,106,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,11,10,10,10,10,10,202,202,202,202,203,202,203,203,203,202,202,202,203,202,203,202,203,202,203,202,204,203,204,203,204,203,204,203,204,202,203,203,203,203,203,203,204,203,204,203,204,204,204,204,204,202,203,203,204,203,204,204,199,199,233,233,200,200,200,200,200,201,201,201,201 +,252,252,252,252,252,252,252,252,252,252,252,252,108,108,108,108,109,109,109,109,252,109,252,252,107,107,107,107,107,107,252,252,109,109,109,109,109,109,107,106,106,106,106,106,106,106,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,202,202,202,202,202,203,203,203,202,202,202,203,203,202,202,203,203,202,202,203,203,204,204,203,203,204,203,204,204,204,202,203,203,203,203,204,204,204,204,204,204,204,204,204,204,203,203,203,203,204,199,199,233,233,233,233,200,200,200,194,194,234,234,234,234 +,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,109,108,252,109,252,109,252,109,252,107,107,107,252,107,252,107,252,107,109,109,252,109,107,106,106,106,106,106,106,106,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,202,202,202,202,203,202,203,202,202,202,202,202,203,203,204,202,204,202,203,203,204,204,204,203,204,203,204,203,204,202,203,203,203,203,204,203,204,203,204,203,204,203,204,204,203,202,203,203,199,199,199,233,233,233,200,200,200,233,234,234,233,201,201,201,201 +,252,252,252,252,252,252,252,252,252,252,252,252,108,108,108,108,109,109,109,109,252,252,252,252,107,107,107,107,252,252,252,252,109,109,109,109,109,106,107,106,106,106,106,106,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,202,202,202,202,202,203,203,202,202,202,202,203,203,203,203,202,204,204,202,203,203,204,204,203,203,204,204,204,204,202,203,203,203,203,203,203,203,204,204,204,204,204,204,204,202,203,199,199,199,233,233,233,233,200,200,200,233,234,234,233,200,200,200,200,233 +,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,109,109,252,109,252,109,252,109,252,107,252,107,252,107,252,107,109,109,252,109,109,106,107,106,107,106,106,106,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,202,202,202,202,203,203,203,202,202,202,202,202,203,202,202,203,204,203,202,202,204,204,204,203,204,203,204,203,202,203,204,203,203,203,204,203,204,203,204,204,204,204,204,199,199,199,234,234,233,233,234,233,200,200,200,233,234,234,233,200,200,233,234,233,233 +,252,252,252,252,252,252,252,252,252,252,252,108,108,108,109,109,109,109,252,109,252,252,252,252,107,107,107,107,109,109,109,109,109,109,109,109,107,106,252,106,106,106,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,202,202,202,202,202,202,203,203,202,202,202,202,203,202,202,202,203,203,204,203,202,204,204,204,204,203,204,203,204,204,203,203,203,203,203,203,204,203,204,204,204,204,199,199,234,234,234,233,233,233,234,233,200,233,233,233,234,233,233,200,200,234,234,234,233,233 +,252,252,252,252,252,252,252,252,252,252,252,108,108,109,108,252,108,252,109,252,109,252,252,252,107,252,107,109,107,109,109,109,109,109,109,252,106,252,106,106,106,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,202,202,202,202,202,203,202,203,202,202,202,202,203,202,202,203,203,204,204,203,203,204,203,204,204,204,203,204,203,203,203,203,203,204,204,204,203,204,203,204,204,199,234,234,234,233,233,234,233,234,233,200,233,234,192,234,233,200,200,200,200,200,233,233,234,234 +,252,252,252,252,252,252,252,252,252,252,108,108,108,108,109,109,252,109,252,109,252,252,252,107,107,107,252,107,109,109,109,109,109,109,109,107,107,106,106,106,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,202,202,202,202,202,202,203,202,202,202,202,202,202,202,203,203,203,203,204,203,203,203,204,204,204,203,204,204,204,203,203,203,203,203,204,203,204,203,204,199,234,234,234,199,234,234,234,234,234,234,234,234,234,234,234,233,200,233,200,200,200,234,233,234,234,234 +,252,252,252,252,252,252,252,252,252,108,108,109,108,252,108,252,109,252,109,252,109,252,109,107,107,252,107,109,109,252,109,107,109,107,107,107,106,107,106,106,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,202,202,202,202,202,203,203,202,202,202,202,202,202,202,202,203,203,204,203,204,203,204,203,204,204,204,203,204,203,203,203,204,203,204,204,204,203,204,199,192,199,192,192,199,192,193,192,192,193,193,234,234,234,234,234,234,234,200,234,233,234,233,234,234,234,233 +,252,252,252,252,252,252,252,252,108,108,108,108,109,108,109,109,252,109,252,252,252,252,107,107,107,107,252,109,109,107,107,106,107,106,107,106,107,106,106,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,10,10,10,10,10,10,10,9,202,202,202,202,203,203,203,202,202,202,202,202,202,202,202,202,203,203,204,204,204,204,204,204,204,203,204,204,204,203,203,203,204,204,204,203,204,199,192,199,192,192,199,199,192,192,193,192,193,193,193,234,200,192,234,234,234,234,234,234,233,234,234,194,234,233 +,252,252,252,252,252,252,252,108,108,109,108,252,108,252,109,252,109,252,109,252,252,252,107,252,107,252,252,109,107,109,106,107,107,107,106,107,106,106,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,202,202,203,202,202,203,202,202,202,202,202,203,202,202,202,203,203,204,203,204,203,204,203,204,203,204,203,204,203,203,203,204,203,204,204,204,203,199,192,192,192,193,199,192,192,193,192,193,193,193,192,234,234,200,233,234,234,234,234,234,234,234,194,234,233,233 +,252,252,252,252,252,252,108,108,108,108,108,108,252,109,252,109,252,252,252,252,252,252,107,107,252,252,252,107,106,106,107,107,107,106,107,106,107,106,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,10,9,10,10,202,202,203,202,203,203,202,202,202,202,202,202,202,202,203,203,203,203,204,204,204,203,204,204,203,203,204,204,204,203,203,203,204,204,204,203,199,192,199,192,192,192,199,192,192,192,193,193,193,192,192,192,234,234,234,234,234,234,234,234,234,194,194,234,233,233 +,252,252,252,252,252,252,108,108,108,252,108,252,109,252,109,252,109,252,109,252,252,252,252,107,107,252,107,106,107,106,107,107,107,107,106,107,106,107,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,202,202,203,202,203,202,203,202,203,202,202,202,203,202,203,202,203,203,204,203,204,203,204,204,204,203,204,203,204,203,203,203,204,203,204,204,204,199,192,192,193,192,192,199,193,192,193,193,193,192,192,192,192,192,192,192,234,192,193,193,234,193,194,194,234,234,233 +,252,252,252,252,252,252,108,108,108,108,109,109,252,109,252,252,252,252,252,252,252,252,252,107,252,107,106,107,106,107,109,109,107,106,107,106,106,106,106,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,202,202,202,203,203,203,203,202,202,202,202,202,202,202,202,203,203,203,203,204,204,204,204,202,203,204,203,204,204,203,203,203,203,204,204,204,199,192,199,192,192,193,199,199,192,193,193,193,193,192,192,192,192,192,192,193,192,193,193,193,193,194,194,194,194,194,234 +,252,252,252,252,252,252,108,252,108,252,108,252,108,252,109,252,252,252,252,252,252,252,109,252,252,106,107,106,107,107,107,252,107,107,106,107,106,106,106,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,202,202,203,202,203,202,203,202,202,202,202,202,202,202,203,202,203,203,204,204,204,203,202,204,204,203,204,203,204,203,204,203,204,203,204,199,192,199,193,192,192,199,193,192,192,192,193,192,193,192,193,192,192,192,193,192,193,192,193,193,194,193,194,194,194,194,194 +,252,252,252,252,252,108,108,108,109,108,109,109,252,252,252,252,252,252,252,252,252,107,107,107,106,109,109,107,106,107,252,109,107,107,107,106,106,106,106,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,202,202,202,203,203,203,202,202,202,202,202,202,202,202,202,203,203,203,204,204,204,202,203,204,203,203,203,204,204,203,203,204,203,204,204,199,192,192,192,199,199,199,192,193,193,193,192,192,192,193,192,192,193,192,192,192,192,192,192,193,193,194,194,194,194,194,194 +,252,252,252,252,252,108,108,109,108,252,108,252,109,252,109,252,252,252,107,107,107,106,106,252,107,109,107,107,107,107,107,252,107,107,106,106,106,106,106,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,202,202,203,202,203,203,202,202,203,202,202,202,202,202,203,203,204,203,204,204,202,202,204,204,204,203,204,203,204,203,203,203,204,203,199,192,199,199,193,199,193,192,193,192,193,192,192,192,193,192,192,192,193,192,193,192,193,193,194,193,194,194,194,194,194,194,194 +,252,252,252,252,252,108,252,108,108,108,109,252,252,252,252,252,108,107,107,107,107,107,252,107,109,109,252,106,107,107,252,252,107,107,106,106,106,106,106,106,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,202,202,202,203,203,203,202,202,202,202,202,202,202,203,203,203,203,204,204,204,202,203,203,204,203,204,203,204,204,203,203,203,203,204,199,192,192,193,192,192,192,193,192,193,193,192,192,192,192,193,192,192,192,192,192,193,193,193,193,194,194,194,194,194,194,194,194 +,252,108,108,252,108,252,108,252,108,109,108,252,109,108,108,252,108,252,107,252,107,252,107,109,107,252,109,107,107,252,107,109,107,107,106,106,106,106,106,106,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,10,9,202,202,203,202,203,203,202,202,202,202,202,202,203,202,203,203,204,203,204,202,203,203,204,204,204,203,204,203,204,203,204,203,204,199,192,192,199,192,193,192,193,192,193,193,193,192,192,192,193,192,193,192,192,192,193,193,194,193,194,193,194,194,194,194,194,194,194 +,108,108,108,108,252,252,108,108,252,108,109,109,252,108,108,108,252,107,107,107,252,252,252,109,109,109,109,106,107,106,252,109,107,107,106,106,106,106,106,106,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,202,202,202,202,203,203,203,202,202,202,202,202,202,204,203,203,203,203,204,204,202,202,203,203,204,203,203,203,204,204,203,203,204,199,192,199,192,192,192,192,193,192,193,194,193,193,192,192,192,192,192,192,193,192,192,192,193,193,194,193,194,194,194,194,194,194,194,194 +,108,252,108,252,252,252,108,108,108,252,108,252,108,252,108,252,108,252,107,109,107,252,107,109,109,252,107,107,106,252,107,109,107,107,106,106,106,106,106,106,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,202,202,202,203,202,203,203,202,202,203,202,202,202,204,202,203,203,204,203,202,202,203,203,204,204,204,203,204,203,204,203,204,203,199,192,192,192,192,192,193,192,193,193,194,193,192,192,193,192,193,192,193,192,193,192,193,193,194,193,194,194,194,194,194,194,194,194,194 +,108,108,252,252,108,108,252,252,109,108,108,108,108,108,108,108,108,107,109,107,109,109,109,109,109,109,252,106,107,106,252,109,107,106,106,106,106,106,106,106,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,202,202,203,203,203,202,202,202,202,202,202,202,202,204,203,203,203,203,204,202,202,203,203,204,204,203,204,203,204,204,203,203,199,192,199,192,192,192,193,194,193,193,193,193,194,192,192,192,192,193,193,192,192,192,193,193,193,193,194,194,194,194,194,194,194,194,194,194 +,108,252,108,252,108,252,108,109,109,108,108,252,108,252,108,252,108,109,107,252,107,109,107,252,107,252,109,107,106,252,107,252,106,107,106,106,106,106,106,106,106,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,9,9,9,10,202,202,202,203,203,202,202,203,202,203,202,203,202,203,204,204,203,204,202,203,202,203,203,204,204,204,203,204,203,204,203,204,199,192,192,192,192,193,193,194,193,194,194,194,192,192,192,192,192,193,192,193,192,193,192,193,193,194,193,194,194,194,194,194,194,194,194,194 +,108,108,252,108,252,108,252,109,109,108,108,108,108,108,108,108,252,107,109,107,252,109,109,109,252,109,252,107,107,106,252,106,107,106,107,106,106,106,106,106,106,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,202,202,203,203,203,202,202,203,202,202,202,202,202,203,204,203,204,204,202,202,203,203,204,204,203,203,203,203,204,204,203,199,192,199,192,192,193,193,193,193,193,193,194,194,194,192,192,192,192,192,193,193,192,192,193,193,193,193,194,194,194,194,194,194,194,193,194,194 +,252,108,108,252,108,252,108,252,109,108,108,108,108,252,108,252,108,109,107,252,107,109,107,109,109,252,109,107,106,107,106,107,106,107,106,106,106,106,106,106,106,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,10,9,9,202,203,203,202,202,202,202,203,202,203,202,202,202,203,204,203,203,204,202,203,203,204,203,204,203,204,203,204,203,204,203,199,192,192,192,192,192,193,192,193,193,194,193,194,194,192,192,192,192,193,192,192,192,193,192,193,193,194,193,194,194,194,193,194,194,194,194,194 +,252,108,108,108,252,108,252,252,109,109,108,108,108,108,108,108,109,107,109,109,252,109,109,109,109,109,252,107,107,106,107,106,107,106,107,106,106,106,106,106,106,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,202,203,202,202,202,202,202,202,203,202,202,202,202,203,204,204,203,203,202,202,203,203,204,204,203,203,204,203,204,204,203,199,192,192,192,192,192,192,193,193,193,193,194,194,192,192,192,192,192,192,193,192,192,192,193,193,193,194,194,194,194,194,194,193,194,194,194,194 +,252,108,108,252,108,252,108,252,252,109,108,108,108,252,108,252,108,109,107,252,107,109,107,252,109,252,109,252,106,107,106,107,106,107,106,107,106,106,106,106,106,106,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,202,202,203,202,203,202,202,202,203,203,202,202,203,202,203,203,204,203,202,202,203,203,204,203,204,203,204,203,204,203,204,203,199,192,193,193,194,193,194,192,193,193,194,193,194,192,193,192,193,192,193,192,192,192,193,192,193,193,194,193,194,193,194,194,193,194,194,194,194 +,252,108,108,108,252,252,252,252,252,252,109,108,108,108,108,108,109,107,107,107,252,109,109,109,252,109,252,109,107,252,252,109,107,106,107,106,106,106,106,106,106,106,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,202,203,203,202,202,202,202,202,203,202,204,202,202,203,203,204,204,204,202,202,202,203,203,204,204,204,203,204,203,204,204,199,192,192,192,193,193,193,193,194,194,193,193,194,193,192,192,192,192,193,193,192,192,192,192,193,193,193,193,194,194,194,194,194,193,194,193,194,194 +,108,252,108,252,108,252,108,252,252,252,252,109,108,252,108,108,108,252,107,252,107,109,107,252,107,252,107,107,107,252,252,109,109,107,106,107,106,106,106,106,106,106,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,202,202,203,202,202,202,202,202,202,203,204,202,202,202,203,203,204,203,202,202,203,203,204,204,204,203,204,203,204,204,204,199,192,192,193,192,194,193,194,193,194,193,194,194,194,192,192,192,193,192,193,193,192,193,194,192,193,193,194,193,194,193,194,193,194,194,194,194,194 +,108,108,108,108,252,252,252,252,252,252,252,252,109,108,108,108,108,107,107,107,252,107,109,109,109,109,252,107,107,252,252,109,109,109,107,106,107,106,106,106,106,106,106,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,202,202,202,202,202,202,202,202,202,203,204,202,202,203,203,204,204,204,202,203,203,203,203,204,203,204,203,204,204,204,204,199,192,192,192,192,193,192,194,193,194,194,194,194,194,192,192,192,192,193,193,192,192,193,194,194,193,193,193,194,194,194,193,194,194,194,193,194,194 +,108,108,108,252,108,252,108,252,252,252,108,252,252,109,108,108,108,109,107,252,107,252,107,252,107,252,109,107,107,252,252,109,109,107,109,107,106,107,106,106,106,106,106,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,202,202,202,202,202,203,202,202,202,202,203,204,202,202,202,203,203,204,202,202,202,203,203,204,204,204,203,204,203,204,204,204,199,193,192,193,192,192,193,193,193,193,194,194,194,193,192,193,192,193,192,193,192,193,193,194,193,194,193,194,194,194,193,194,193,194,193,194,194,194 +,108,108,108,108,252,252,252,252,252,108,252,252,252,108,109,109,108,107,107,107,252,107,252,107,109,109,252,109,107,252,109,109,107,107,109,109,107,106,107,106,106,106,106,106,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,202,202,202,202,202,202,203,202,202,202,203,204,202,202,203,203,204,203,203,202,202,203,203,204,204,203,204,204,204,204,204,203,199,192,193,192,192,193,192,193,193,194,193,194,194,193,192,192,192,192,193,193,192,192,193,193,194,194,194,194,194,194,194,194,194,194,194,193,194,194 +,108,252,108,252,108,252,108,252,252,252,108,252,108,252,252,109,109,107,107,107,107,252,107,252,107,252,107,252,107,252,109,109,107,252,107,109,107,107,106,107,106,107,106,106,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,202,202,202,202,203,202,202,202,202,202,202,203,204,202,202,202,204,204,203,202,203,202,203,203,204,203,204,203,204,203,204,203,204,199,192,192,192,192,192,193,193,193,193,194,194,194,193,192,193,192,193,192,193,192,193,192,193,193,194,194,194,194,194,193,194,193,194,193,194,195,194 +,108,108,108,108,252,108,252,252,252,108,252,108,108,252,252,252,109,107,107,107,109,109,252,252,109,109,252,107,107,109,109,109,107,107,109,109,109,109,107,106,107,106,106,106,106,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,9,9,9,9,8,9,9,9,202,202,202,203,202,202,202,202,202,202,202,203,204,202,202,203,203,204,203,202,202,203,203,204,204,204,204,204,204,204,204,203,199,199,192,193,192,192,193,192,193,193,194,194,194,194,192,192,192,192,192,193,193,192,192,193,193,194,194,194,194,194,194,193,193,194,193,194,194,194,194 +,108,108,108,252,108,252,108,252,252,108,108,252,108,252,108,252,252,109,107,252,107,252,107,252,109,252,107,252,107,109,109,109,109,107,107,252,107,109,109,107,106,107,106,106,106,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,202,202,202,202,203,203,202,203,202,202,202,202,204,202,202,203,203,204,202,203,202,203,203,204,204,204,203,204,203,204,204,204,203,199,199,193,192,192,193,193,193,193,194,193,194,194,193,192,192,193,192,193,193,193,192,193,193,194,193,194,194,194,194,194,193,194,193,194,193,194,195,194 +,108,108,108,108,252,252,252,252,252,108,108,108,108,108,252,252,252,252,107,107,252,109,252,252,252,252,107,107,107,107,109,107,109,109,107,107,109,109,109,107,107,106,107,106,106,106,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,9,9,9,8,202,202,202,202,203,202,202,202,203,202,202,202,204,204,202,202,204,204,203,202,203,203,203,203,204,204,204,204,204,204,204,204,204,199,192,192,192,193,192,193,192,193,193,194,193,194,192,192,192,192,193,193,193,193,192,192,193,193,194,194,194,194,194,193,193,194,194,194,194,194,194,194 +,108,252,108,252,108,252,108,252,252,252,108,108,108,252,252,252,252,252,107,107,107,252,107,252,252,107,107,109,107,109,107,109,107,252,107,109,107,109,107,109,109,107,106,107,106,106,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,202,202,203,202,203,203,203,202,203,202,203,202,202,204,204,202,203,203,204,202,202,202,203,203,204,204,204,203,204,204,204,203,204,203,199,192,193,192,192,192,192,193,193,193,193,194,194,192,192,192,193,192,193,192,193,192,193,192,194,193,194,194,194,194,194,193,195,194,194,193,194,195,194 +,108,108,108,108,252,252,252,252,252,252,252,108,108,107,252,252,252,252,107,107,107,107,252,252,252,107,107,107,107,109,109,109,109,109,107,109,107,107,109,109,109,109,107,106,107,106,106,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,202,202,202,202,202,202,203,202,202,202,202,202,202,204,204,202,202,203,203,204,202,202,203,203,204,204,204,204,204,204,204,204,204,204,204,199,192,192,192,193,192,193,193,194,193,194,194,194,192,192,192,192,193,192,193,193,192,192,193,194,194,194,194,194,194,194,194,194,195,194,194,195,195,194 +,108,108,108,252,108,252,108,252,252,252,252,252,108,252,252,252,107,252,107,252,107,252,107,252,107,252,107,107,107,109,107,109,107,109,109,107,109,107,107,109,107,109,109,107,106,107,106,106,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,202,202,202,202,202,203,203,203,202,203,202,202,202,204,204,202,202,202,203,204,202,202,202,203,203,204,203,204,203,204,204,204,204,204,199,199,192,192,192,192,193,193,193,193,194,194,194,194,192,192,192,193,192,193,193,194,193,192,193,194,193,194,193,194,195,195,194,195,194,194,194,195,194,194 +,108,108,108,108,252,252,109,252,252,252,252,252,252,252,108,107,252,252,252,107,107,107,252,107,252,109,109,107,109,109,107,107,109,109,109,109,109,107,107,107,109,109,109,109,109,106,107,106,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,153,154,154,154,154,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,202,202,202,202,202,202,202,203,203,202,202,202,202,203,203,204,202,203,202,204,203,203,202,203,203,204,204,204,204,204,204,204,204,204,203,199,192,192,193,192,193,192,193,193,194,193,194,193,194,194,192,192,192,193,193,193,193,193,193,194,194,194,194,194,194,194,194,194,194,195,194,194,194,195,194 +,252,108,108,252,108,252,108,252,252,252,109,252,252,252,109,252,107,252,252,108,107,109,107,252,107,252,107,252,109,109,107,109,107,252,107,109,109,109,107,107,107,109,107,109,109,107,106,106,106,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,153,153,153,153,153,153,154,154,154,153,154,154,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,202,202,202,202,203,202,203,203,203,202,202,202,203,203,204,204,202,203,203,203,203,203,202,202,203,203,204,203,204,203,204,204,204,204,204,199,192,192,192,193,193,193,193,193,193,193,193,194,194,194,193,192,193,192,193,193,193,193,194,193,194,194,194,194,194,195,194,194,195,193,194,194,195,195,194 +,109,108,108,108,109,108,252,252,252,252,252,252,252,252,252,252,108,107,252,107,108,107,252,107,109,109,109,109,252,109,107,107,109,107,109,109,109,109,109,107,107,109,109,109,109,107,107,106,106,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,153,153,153,153,152,152,152,152,152,153,153,154,153,154,154,154,154,154,154,153,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,202,202,202,202,202,202,203,203,203,203,203,202,203,203,204,204,202,203,204,203,203,203,202,202,203,203,204,204,204,204,204,204,204,204,204,203,199,192,192,193,192,193,192,193,192,194,193,194,193,194,194,192,193,192,193,193,193,193,193,193,194,194,194,194,194,193,194,194,194,194,195,194,195,194,195,194 +,252,108,108,252,108,252,252,252,252,252,109,252,109,252,252,252,107,252,107,108,107,252,107,109,107,252,107,252,109,252,107,109,107,109,107,109,107,109,107,109,107,107,107,109,107,109,107,107,106,106,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,8,9,153,153,152,152,152,157,157,155,156,157,157,152,153,153,153,153,153,153,154,154,154,154,154,154,154,154,8,9,8,9,8,9,8,9,8,9,8,9,202,202,202,202,202,203,202,203,202,203,202,202,202,204,204,202,202,204,204,203,203,204,202,203,203,204,204,204,203,204,204,204,204,204,204,204,199,192,192,192,193,192,193,192,193,194,194,193,194,192,193,194,192,192,192,193,193,194,193,194,193,194,194,194,194,193,194,195,194,195,194,194,195,195,195,194 +,109,252,108,108,252,252,109,252,252,252,252,252,252,252,252,252,108,107,108,252,107,107,107,107,109,109,109,109,252,252,107,107,109,107,109,107,109,109,109,107,107,107,109,109,109,109,109,107,107,106,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,152,157,156,156,155,155,157,157,156,155,156,156,157,152,153,153,152,152,153,153,153,153,153,154,154,154,154,154,154,154,154,8,8,8,8,8,8,8,8,202,202,202,202,203,203,203,202,203,202,204,202,202,202,202,202,203,203,204,204,203,202,202,203,203,204,204,204,204,203,204,204,204,204,204,199,192,192,192,193,192,193,192,193,193,194,193,194,193,192,193,194,192,194,193,193,193,193,193,193,194,194,194,194,194,193,194,194,195,195,195,194,195,195,195,194 +,252,252,108,108,108,252,108,252,252,252,109,252,252,252,252,252,108,252,107,252,107,252,107,109,107,252,107,252,109,252,107,109,107,252,107,109,107,252,107,107,107,109,107,109,107,109,109,107,107,106,106,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,152,157,157,157,156,156,155,157,156,156,155,157,156,157,156,152,153,157,156,152,152,153,153,154,153,153,154,153,154,154,154,154,154,154,154,154,8,9,8,8,202,202,203,204,202,203,202,202,202,203,204,203,202,202,202,203,203,204,203,204,203,204,202,203,203,204,204,204,203,204,203,204,204,204,204,199,192,192,192,192,193,192,192,193,193,194,194,193,192,193,193,194,193,194,192,193,193,194,193,194,193,194,194,194,195,194,194,195,194,195,194,195,194,195,195,195 +,109,252,109,108,108,252,252,252,252,252,252,252,252,252,252,252,108,107,108,109,107,107,107,107,109,107,109,109,252,109,107,107,107,107,109,107,109,107,109,107,107,107,109,107,109,109,109,107,107,106,106,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,157,157,157,157,156,156,155,155,157,157,156,156,155,156,156,156,156,152,157,157,156,156,152,153,153,153,154,154,154,154,153,154,154,154,154,154,154,154,154,154,202,202,203,204,202,202,202,202,202,203,203,204,202,202,202,203,203,203,203,204,204,204,203,203,204,204,204,204,204,204,204,204,204,204,204,204,199,192,192,192,193,192,193,192,193,193,194,194,194,192,193,194,194,193,194,193,193,193,193,194,194,194,193,194,194,195,194,194,194,195,195,195,195,195,195,195,195 +,252,109,252,108,252,252,252,252,252,252,252,252,252,252,252,108,107,108,109,252,252,107,107,109,107,252,107,252,107,252,109,252,107,109,107,252,107,252,107,107,107,109,107,109,107,109,109,109,107,107,106,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,9,8,8,8,157,157,157,156,157,155,156,155,157,156,156,155,155,156,157,156,156,155,157,156,157,155,152,153,153,153,153,153,153,154,154,154,154,154,154,154,154,154,154,154,202,202,204,202,202,202,202,202,203,203,204,204,203,202,203,202,203,203,204,203,204,204,203,203,202,204,204,204,204,204,204,203,204,203,204,204,199,192,192,192,192,192,192,193,193,193,193,194,192,192,193,193,194,194,193,194,193,193,194,193,194,193,194,194,195,194,195,195,195,195,195,194,195,195,195,194,192 +,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,107,108,107,109,109,252,107,107,107,109,109,109,109,252,109,252,107,252,107,107,107,109,107,109,107,107,107,107,107,109,109,109,109,107,106,106,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,157,157,157,157,156,156,155,155,157,157,156,156,155,155,157,156,155,157,157,156,156,156,156,152,153,153,153,153,153,153,153,153,153,154,153,154,154,154,154,154,202,202,202,202,202,203,202,202,203,203,204,204,202,202,202,203,203,203,203,204,204,204,203,202,203,204,204,204,204,204,204,204,204,204,204,204,192,192,192,192,193,192,193,192,193,193,194,192,192,193,193,193,193,194,194,194,194,194,194,194,194,193,193,194,194,195,195,195,195,195,195,195,194,195,194,192,199 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,108,107,252,109,252,252,252,107,109,107,252,107,252,109,252,109,107,107,252,107,252,107,252,107,107,107,109,107,109,107,109,107,109,107,107,106,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,8,9,8,157,157,157,156,156,155,156,155,157,156,156,155,156,155,157,157,157,156,157,156,156,155,156,152,153,153,152,152,152,152,152,152,153,153,153,153,154,153,154,153,202,202,203,202,203,202,202,202,203,203,204,203,204,202,203,202,203,203,204,203,204,204,202,202,204,204,204,203,204,204,204,203,204,204,204,199,192,192,192,192,192,192,192,193,193,193,193,192,193,192,193,193,194,194,194,194,194,193,194,193,194,194,194,193,195,194,195,193,195,194,195,194,194,195,192,199,192 +,109,252,109,252,109,252,252,252,252,252,252,252,252,252,108,107,108,107,252,252,252,107,107,107,107,107,109,109,252,109,252,107,107,107,252,107,252,107,109,107,107,107,107,107,109,107,109,109,107,106,106,106,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,157,157,157,156,156,156,155,155,157,157,156,156,156,155,155,155,157,157,157,156,156,156,202,202,202,152,152,202,202,203,202,202,203,152,152,152,152,153,153,153,154,202,202,202,202,202,202,202,203,203,203,203,204,204,202,202,203,203,203,203,203,203,204,202,203,203,204,204,204,204,204,204,204,204,204,204,199,192,192,192,192,192,192,193,192,193,193,194,192,192,193,193,193,194,194,194,194,193,194,194,194,194,193,193,195,194,195,195,195,195,194,194,195,195,192,199,192,193 +,252,109,252,252,252,252,252,252,252,252,252,252,252,108,107,109,107,252,107,252,109,107,107,252,107,252,107,252,107,252,109,107,109,252,107,252,107,252,107,109,107,107,107,109,107,109,107,109,106,107,106,106,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,157,157,157,157,156,156,155,155,157,157,156,156,155,156,155,155,156,202,202,202,202,202,202,202,202,202,202,202,202,203,202,203,202,203,203,204,152,153,153,154,202,203,202,203,202,202,202,203,202,203,203,204,203,204,202,203,202,203,202,203,203,204,202,203,203,204,204,204,204,204,204,204,204,204,204,204,199,193,192,192,192,192,192,192,193,193,194,192,192,193,192,193,193,194,195,194,194,194,193,194,194,194,195,193,193,195,194,195,195,194,195,195,195,192,199,192,192,192 +,109,252,109,252,252,252,252,252,252,252,252,252,252,107,108,107,109,109,252,109,252,252,107,107,109,107,109,109,252,107,252,109,107,107,107,107,252,107,109,107,109,107,107,107,109,109,109,109,107,106,107,106,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,157,157,157,157,156,156,156,155,157,156,157,156,156,155,202,202,202,202,202,202,202,202,202,202,202,202,202,202,203,203,204,204,203,203,203,204,204,152,153,153,202,202,203,202,202,202,202,202,203,203,203,203,204,204,202,202,202,202,203,203,203,202,203,203,203,203,204,204,204,204,204,204,204,204,204,204,192,192,193,192,192,192,192,193,193,194,192,192,193,193,193,193,194,195,195,195,194,194,194,195,195,195,193,193,195,195,195,195,195,194,194,195,192,199,192,192,193,192 +,252,252,252,252,252,252,252,109,252,252,252,252,252,108,107,109,107,252,107,252,252,252,109,107,107,252,107,107,107,252,107,252,107,252,107,252,107,252,107,109,107,109,107,107,107,109,107,109,106,107,106,106,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,157,157,157,157,156,156,155,155,157,157,156,157,155,156,202,202,202,202,202,202,202,202,203,202,202,203,202,203,203,204,204,203,202,203,203,204,203,204,152,153,202,203,202,202,202,202,202,203,202,203,203,204,203,204,202,203,202,203,203,202,202,203,203,204,203,204,204,204,203,204,204,204,203,204,204,204,192,192,192,192,192,192,193,193,193,192,192,193,192,193,193,194,194,195,195,194,195,195,194,195,193,195,193,195,195,195,195,195,195,194,195,192,199,192,192,192,192,192 +,109,252,109,252,252,252,109,252,252,252,252,252,252,107,108,107,109,107,252,252,252,252,252,252,107,107,107,107,109,252,252,107,107,107,107,107,107,107,252,107,109,107,107,107,109,107,109,109,107,106,107,106,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,7,8,8,8,157,157,157,157,156,156,156,155,155,157,157,156,156,156,155,202,202,202,202,202,202,203,203,202,202,202,202,203,203,204,204,204,203,203,203,203,203,204,204,155,152,203,202,202,202,202,202,202,202,203,203,203,203,204,204,202,202,203,202,202,202,203,203,203,203,204,204,204,204,204,204,204,204,204,204,204,204,192,193,192,193,192,193,192,193,192,192,192,192,193,193,193,194,195,195,195,195,194,195,195,195,195,195,194,195,195,195,195,195,194,195,192,199,192,192,192,192,193,192 +,252,109,252,252,252,252,252,252,252,252,252,252,107,108,107,252,108,252,107,252,109,252,109,252,107,107,107,252,107,252,109,252,107,252,107,252,107,252,107,109,107,109,107,109,107,109,107,109,106,107,106,106,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,157,157,157,157,157,156,156,155,155,156,157,156,156,155,156,202,203,202,203,202,203,202,202,202,203,202,203,203,204,203,204,204,203,203,204,203,204,203,204,155,155,202,202,202,202,202,202,202,203,202,203,203,204,203,204,202,203,202,202,202,203,202,203,203,204,203,204,203,204,204,204,204,204,204,204,204,199,192,193,192,192,192,192,193,192,192,193,192,193,193,194,194,195,194,195,195,194,195,195,195,195,195,195,195,195,194,195,195,195,195,192,199,199,192,193,192,193,192,193 +,252,252,109,252,252,252,109,252,252,252,252,252,108,107,108,107,109,109,252,109,252,252,252,109,252,107,107,107,252,252,252,107,107,107,107,107,252,107,107,107,109,109,107,107,109,109,109,109,107,106,107,106,106,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,7,7,7,8,157,157,157,157,156,156,155,155,157,157,156,156,156,156,202,202,202,202,202,203,202,202,202,203,203,203,203,203,203,204,204,204,203,203,203,204,204,204,204,203,155,202,202,202,202,202,202,202,202,203,203,203,203,204,204,202,202,203,202,202,203,203,203,204,204,204,204,204,204,204,204,204,204,204,204,204,192,199,192,192,192,192,193,192,192,192,192,193,193,193,193,195,195,195,195,194,195,195,195,195,195,195,194,195,194,195,195,195,195,192,199,192,192,192,192,192,192,193,192 +,252,109,252,252,252,109,252,252,252,252,252,252,108,252,107,109,108,252,107,252,109,252,252,252,109,107,107,252,107,252,107,107,107,252,107,252,107,252,107,252,107,252,107,107,107,109,107,109,106,107,106,106,106,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,157,157,157,156,156,155,155,156,157,156,157,156,156,155,202,202,203,202,202,202,203,202,203,203,204,203,204,203,204,203,204,203,204,203,204,203,204,203,202,202,155,202,202,202,202,202,202,202,203,202,203,203,204,204,202,202,203,202,202,202,203,203,204,203,204,203,204,204,204,203,204,204,204,204,204,204,192,192,192,192,192,192,192,193,192,192,192,192,193,192,193,194,195,194,195,195,195,195,195,195,195,195,195,194,195,194,195,195,192,199,192,192,193,192,193,192,193,192,193 +,252,252,109,252,109,252,252,252,252,252,252,252,108,108,108,108,109,109,252,252,252,252,252,109,252,107,107,107,252,252,107,107,107,107,107,107,107,107,252,107,109,109,109,107,107,107,109,109,107,106,107,106,106,106,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,157,157,157,157,156,155,155,156,157,157,157,156,156,155,155,202,202,202,203,202,202,203,204,203,203,203,203,203,204,204,204,204,203,203,203,203,204,204,202,202,202,202,202,202,203,203,202,202,202,202,203,203,204,204,204,202,202,204,202,202,203,203,204,204,204,203,204,204,204,204,204,204,204,204,204,204,204,192,192,192,192,193,192,193,192,192,192,192,192,192,193,194,195,195,195,195,194,195,194,195,195,195,195,194,195,195,195,195,195,199,192,192,192,192,192,192,192,192,193,192 +,252,109,252,252,252,252,252,252,252,252,252,252,108,108,108,252,108,252,109,252,109,252,252,252,109,252,107,252,252,107,107,252,107,252,107,252,107,252,107,109,107,109,107,109,107,109,107,107,106,107,106,106,106,106,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,202,206,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,157,157,157,157,156,156,155,157,156,157,156,157,156,156,155,202,202,203,202,203,202,202,202,204,204,203,203,204,203,204,204,204,203,203,203,204,202,202,202,202,202,202,202,203,202,203,202,202,202,203,203,204,203,204,202,202,203,204,202,204,202,203,203,204,203,204,203,204,203,204,203,204,204,204,204,204,199,192,192,193,192,192,192,192,193,192,192,192,192,193,193,195,195,194,195,194,195,195,195,195,195,195,195,195,194,195,195,195,199,192,192,192,192,192,192,193,192,193,192,193 +,252,252,109,252,109,252,252,252,252,252,252,252,108,108,108,108,252,109,252,109,252,252,252,252,252,252,107,107,252,252,107,107,107,107,107,107,252,107,109,107,109,109,109,109,109,107,109,106,107,106,106,106,106,106,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,202,203,203,206,207,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,157,157,157,157,156,155,157,156,157,157,156,156,156,156,202,202,202,202,202,202,202,202,203,203,204,203,203,203,204,204,204,204,203,203,202,202,202,202,202,202,202,202,203,203,203,203,202,202,203,203,204,204,203,203,202,202,203,203,204,202,203,203,203,203,204,203,204,204,204,204,204,204,204,204,204,204,192,192,192,192,193,192,192,193,192,192,192,193,192,192,193,195,194,194,194,194,194,195,194,195,195,195,195,194,195,195,195,199,199,192,192,192,192,192,192,192,192,192,193,192 +,252,252,252,109,252,252,252,252,252,252,252,252,108,109,108,109,252,252,109,252,109,252,109,252,109,252,107,252,107,252,107,107,107,252,107,252,107,109,107,109,107,252,107,109,109,107,107,107,106,107,106,106,106,106,106,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,202,203,202,203,203,204,206,207,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,7,7,6,7,157,157,157,157,155,157,156,157,157,157,156,156,156,156,202,202,202,202,202,202,202,203,203,204,204,204,203,204,203,204,204,203,202,203,202,203,202,203,202,203,203,203,202,203,203,203,202,202,203,204,202,203,202,203,202,203,203,204,202,203,202,203,202,203,203,204,203,204,203,204,204,204,204,204,204,204,192,192,192,193,192,192,192,192,192,192,192,192,193,193,192,194,194,194,194,194,195,194,194,195,195,195,195,195,195,195,199,199,192,193,192,192,192,193,192,193,192,193,192,193 +,252,252,109,252,109,252,252,252,252,252,252,252,108,108,109,252,109,109,252,252,252,252,252,252,252,252,107,107,252,252,107,107,107,107,107,107,252,107,109,107,109,109,109,109,109,107,109,106,107,106,106,106,106,106,106,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,202,202,203,203,202,202,203,203,206,207,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,157,157,157,157,156,155,156,157,157,157,156,156,156,156,155,202,202,202,202,202,202,203,203,203,204,204,203,204,204,204,204,202,202,202,202,203,202,202,202,203,203,203,203,203,203,203,203,202,202,204,202,202,202,202,202,203,203,204,204,203,202,203,203,203,203,203,203,204,204,204,204,204,204,204,204,204,199,192,192,192,192,192,192,193,192,192,193,192,193,193,194,194,194,194,194,194,192,193,194,195,195,195,195,195,195,195,199,199,192,192,192,192,192,192,192,193,193,193,192,193,193 +,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,252,108,252,109,252,109,252,252,252,109,252,252,107,107,252,109,252,107,252,107,252,107,109,107,252,107,252,107,109,107,107,107,109,106,106,106,106,106,106,106,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,202,203,202,203,202,202,202,203,203,204,206,207,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,157,157,157,157,155,156,157,156,157,156,157,156,156,155,156,202,203,202,203,202,203,202,203,203,204,204,204,203,204,203,202,202,203,202,203,202,203,202,203,203,203,202,203,203,203,202,202,202,203,203,204,203,204,202,203,202,204,203,204,202,203,202,203,203,204,203,204,203,204,203,204,204,204,204,204,204,199,192,192,192,192,192,193,192,192,192,192,193,193,193,193,194,194,194,194,192,194,194,195,195,195,194,195,195,195,199,199,192,192,192,192,192,193,192,193,192,193,192,193,192,193 +,252,252,109,252,109,252,252,252,252,252,252,252,108,108,108,108,252,109,252,109,252,252,252,252,252,252,252,107,107,107,109,109,107,107,107,107,109,107,109,107,109,109,109,109,107,107,107,109,107,106,106,106,106,106,106,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,202,202,202,202,202,202,203,202,204,202,202,203,203,206,207,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,6,7,6,7,6,7,6,6,157,157,157,157,157,157,156,155,156,157,156,156,156,156,202,202,202,202,202,202,202,203,203,203,204,204,202,203,203,202,202,202,202,203,202,203,202,203,203,203,203,204,204,204,202,202,202,203,203,203,203,204,202,203,203,203,203,204,202,202,202,203,203,203,203,203,203,203,199,199,204,204,204,204,204,204,192,192,192,192,192,193,193,193,193,192,193,192,193,193,194,193,194,194,192,193,194,195,195,195,195,195,195,195,199,192,192,192,192,192,192,192,192,193,192,193,192,193,193,193,193 +,252,109,252,252,252,252,252,252,252,252,252,252,107,252,108,252,252,252,109,252,109,252,109,252,252,252,109,107,107,252,107,252,107,252,107,252,107,109,107,109,107,252,107,107,107,109,107,109,106,106,106,106,106,106,106,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,202,202,202,202,203,203,204,202,204,202,203,203,204,206,207,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,157,157,157,156,156,155,155,157,157,156,157,156,156,155,202,202,202,202,203,202,203,203,204,203,204,202,203,202,202,202,203,202,203,202,203,202,203,203,203,203,204,204,204,202,203,202,203,202,203,203,204,202,203,203,204,203,204,202,203,202,203,202,203,202,203,203,199,199,192,193,204,203,204,204,192,199,192,192,193,192,192,192,193,193,194,192,192,193,193,194,194,194,192,192,193,192,194,193,195,195,195,195,195,195,199,192,192,192,192,192,193,192,193,192,193,192,193,192,193,192,193 +,252,252,109,252,109,252,252,252,252,252,252,252,108,108,109,252,109,109,252,252,252,252,252,252,252,252,252,107,107,107,109,109,252,107,252,107,107,107,109,107,109,109,109,107,107,107,107,109,107,106,106,106,106,106,106,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,202,202,202,202,203,203,204,204,202,204,202,202,203,203,206,207,207,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,157,157,157,156,156,156,155,155,157,157,157,156,156,155,155,202,202,202,202,202,203,203,203,203,204,204,202,202,202,202,203,203,203,203,203,203,203,203,203,203,204,204,202,202,202,202,203,203,203,203,204,204,202,202,203,203,204,204,202,202,203,202,203,203,203,199,199,193,192,194,194,204,204,204,199,199,199,192,193,193,192,192,193,193,193,193,192,193,192,194,193,194,192,192,193,193,193,193,195,195,195,195,195,194,195,199,192,192,193,192,192,192,192,192,192,192,193,193,193,193,193,193 +,252,109,252,252,252,252,252,252,252,252,252,109,107,109,108,252,108,252,109,252,109,252,252,252,252,252,252,107,107,109,107,252,109,252,107,109,107,109,107,252,107,252,107,252,107,109,107,107,106,106,106,106,106,106,106,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,202,203,202,202,202,203,203,204,202,204,202,203,203,204,206,207,207,207,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,6,7,6,6,157,157,157,157,156,156,155,155,156,157,156,156,155,156,155,202,202,203,202,203,202,203,203,204,203,204,202,202,202,203,202,203,203,203,202,203,203,203,204,204,204,204,202,202,202,203,202,203,203,204,203,204,202,202,202,203,203,204,199,199,199,203,202,199,199,192,192,193,193,194,194,194,193,199,199,193,193,194,193,192,192,193,192,193,193,194,192,192,193,193,194,192,192,193,192,193,194,195,194,195,194,195,195,195,195,199,199,192,192,192,192,193,192,192,192,193,193,194,193,193,193,193 +,109,252,109,252,252,252,252,252,252,252,252,252,108,108,108,108,252,109,252,109,252,252,252,252,252,252,252,107,107,107,107,107,252,109,107,107,109,107,109,107,109,109,107,107,109,109,107,106,107,106,106,106,106,106,106,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,202,202,202,202,202,203,203,204,203,202,202,203,204,203,206,207,207,207,206,207,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,157,157,157,156,156,155,156,155,157,156,156,156,156,155,202,202,202,202,202,202,203,203,203,204,204,204,203,203,203,203,203,203,204,203,204,204,204,204,204,204,204,202,202,202,202,202,203,203,203,203,204,204,202,202,203,203,204,199,199,192,193,192,192,192,192,192,192,193,194,193,194,194,192,192,193,193,193,193,194,192,192,192,193,193,193,193,192,193,194,192,192,192,192,192,193,194,194,195,195,195,195,195,195,195,199,199,192,199,192,192,192,192,192,192,193,192,193,193,193,192,193,193 +,252,252,252,252,252,252,252,252,252,252,252,252,107,252,108,252,252,252,109,252,109,252,109,252,252,252,109,107,107,109,107,109,107,252,109,109,107,252,107,109,107,252,106,107,107,107,106,107,106,106,106,106,106,106,106,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,202,202,203,202,203,202,203,202,203,204,204,203,202,202,203,204,204,206,207,207,207,207,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,145,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,5,6,6,6,157,157,156,157,155,156,155,155,156,157,156,156,155,156,202,203,202,202,202,203,202,203,203,204,204,202,202,203,202,203,203,204,203,204,204,204,203,204,204,204,204,202,202,203,202,203,203,204,203,204,204,204,202,202,202,204,204,199,192,193,192,193,193,194,194,192,192,193,193,194,194,192,193,194,192,193,193,194,193,192,192,193,193,194,193,194,192,194,193,192,192,193,192,193,193,194,194,195,195,195,194,195,195,195,199,192,199,193,192,192,192,193,192,193,192,193,193,194,193,193,193,193 +,109,252,109,252,252,252,252,252,252,252,252,252,108,107,109,252,109,109,252,109,252,252,252,252,252,252,252,107,107,107,109,107,109,109,109,107,109,107,109,107,109,109,106,107,107,106,107,106,107,106,106,106,106,106,106,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,202,202,202,202,202,203,202,203,204,202,203,204,204,202,202,203,204,204,206,207,206,207,207,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,145,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,157,157,157,156,156,156,155,155,157,157,156,156,156,156,155,202,202,202,202,203,203,203,203,204,204,202,202,202,202,203,203,203,203,204,204,204,204,204,204,204,204,202,202,203,203,203,203,203,203,204,204,202,202,203,202,203,204,199,199,192,192,193,193,193,193,194,194,192,192,193,193,192,193,194,194,193,193,193,193,194,192,192,192,193,193,194,194,192,193,193,192,192,192,193,193,194,194,193,194,194,194,195,195,195,195,199,192,199,192,193,192,192,192,192,192,192,193,193,193,193,193,194,193 +,252,109,252,252,252,252,252,252,252,252,252,252,107,109,108,252,108,252,109,252,109,252,109,252,252,252,252,107,107,107,107,252,107,252,109,109,107,109,107,252,107,252,107,107,106,107,106,107,106,107,106,106,106,106,106,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,202,202,203,202,202,202,203,202,203,203,204,202,204,204,203,202,203,204,204,206,207,206,207,207,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,145,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,157,157,157,156,156,155,156,155,157,156,157,156,156,155,156,202,202,202,203,202,203,203,204,204,202,202,204,202,203,203,204,203,204,203,204,204,204,204,204,203,204,202,203,202,203,203,204,203,204,204,203,202,203,202,203,202,204,199,193,192,193,192,193,193,193,192,194,193,194,193,192,192,193,193,195,195,193,193,194,193,192,192,193,192,194,193,194,194,193,192,192,192,193,193,194,194,193,194,195,194,195,195,195,195,195,199,192,192,193,192,192,192,192,192,192,193,194,193,194,193,194,193,193 +,109,252,109,252,252,252,252,252,252,252,252,252,108,107,108,108,252,109,252,109,252,252,252,252,252,252,252,107,107,107,107,107,109,109,109,107,109,107,109,107,109,109,107,107,107,106,107,106,107,106,106,106,106,106,106,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,202,202,202,202,203,202,202,203,204,202,204,203,204,202,204,202,202,203,204,206,207,205,206,206,207,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,145,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,5,6,5,6,6,6,5,6,157,157,156,157,156,156,155,155,157,156,156,156,156,156,202,202,202,202,202,203,203,204,204,202,203,203,204,203,203,203,203,203,203,204,204,204,204,204,204,204,204,202,202,203,203,203,203,204,204,204,202,203,203,203,203,203,199,199,192,192,192,193,193,193,193,192,193,194,194,192,192,193,193,194,193,195,195,193,193,194,192,192,192,193,193,193,194,194,192,193,192,192,192,192,193,193,193,194,194,195,195,195,195,195,195,199,192,192,192,193,193,192,192,192,192,193,194,194,193,193,193,193,194 +,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,109,252,252,109,252,109,252,109,252,252,252,108,107,107,252,107,107,107,252,107,109,107,109,107,109,107,252,107,107,106,107,106,107,106,107,106,106,106,106,106,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,202,203,202,203,202,203,202,203,204,202,202,203,203,204,204,202,204,203,204,206,207,205,205,207,207,207,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,145,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,157,157,157,156,156,155,156,155,157,156,156,156,156,155,202,202,203,202,203,203,204,202,202,202,203,203,204,202,203,203,204,203,204,203,204,204,204,204,204,204,204,202,203,202,203,203,204,203,204,202,203,202,203,202,203,203,199,192,192,192,193,192,193,192,193,193,194,194,192,192,193,192,194,194,194,195,195,193,194,192,192,192,193,193,194,193,194,192,193,192,192,192,193,192,193,193,194,193,195,194,195,195,195,194,195,192,192,192,193,192,193,193,192,192,193,193,194,193,194,193,194,193,192 +,252,252,109,252,109,252,252,252,252,252,252,252,109,108,108,252,109,109,252,109,252,109,252,252,252,252,108,107,107,107,107,107,109,107,109,109,107,107,109,107,109,109,109,107,106,106,107,106,107,106,107,106,106,106,106,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,202,202,202,202,202,203,204,203,202,204,202,203,202,203,203,204,202,204,203,204,206,207,205,206,206,207,207,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,145,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,157,157,157,157,156,156,156,155,155,157,157,156,156,155,155,202,202,202,202,204,203,202,202,202,203,203,204,204,203,203,204,204,204,204,203,204,204,204,204,204,204,204,202,202,203,203,204,204,204,202,202,202,203,203,203,203,199,199,192,192,192,192,192,192,193,193,194,194,192,192,193,194,194,193,194,193,195,195,195,192,193,192,192,193,193,193,194,194,194,192,192,192,192,192,193,193,193,193,194,195,195,195,195,195,194,199,192,192,192,192,193,193,193,192,192,193,193,193,194,194,194,193,193,192 +,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,252,252,252,109,252,109,252,109,252,252,252,108,107,107,107,107,252,107,109,109,109,107,109,107,252,107,252,107,107,106,106,106,107,106,107,106,106,106,106,106,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,108,252,108,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,202,202,203,202,202,203,204,203,204,204,202,202,204,203,204,202,203,203,204,204,206,207,205,205,207,207,207,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,145,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,157,157,157,157,156,156,155,156,155,157,156,156,155,156,202,203,202,204,204,203,202,202,202,203,202,203,203,204,204,204,203,204,204,203,203,204,203,204,204,204,204,155,155,203,202,204,203,204,202,202,202,203,202,203,203,204,199,192,192,193,192,192,192,193,193,194,193,192,192,193,192,194,192,194,194,195,193,194,194,193,192,192,192,193,193,194,193,194,193,192,192,193,192,193,192,193,193,194,193,194,194,195,194,195,195,199,192,192,192,193,192,193,193,192,192,193,193,194,193,194,193,193,192,192 +,252,252,252,252,109,252,109,252,252,252,252,252,109,108,108,108,252,109,109,109,252,252,252,252,252,252,108,107,107,107,107,107,252,109,109,109,109,107,109,107,109,109,109,106,107,106,106,106,107,106,107,106,107,106,106,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,108,108,108,108,109,109,109,107,109,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,202,202,202,202,202,204,204,204,203,202,202,203,204,204,204,202,202,203,203,204,206,207,205,206,206,207,207,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,150,144,144,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,157,157,157,157,157,156,157,156,156,155,155,157,156,156,202,202,202,202,203,203,204,203,202,202,202,202,203,203,203,204,204,203,204,204,204,204,204,204,204,204,204,155,155,155,155,202,203,203,204,202,202,202,203,203,203,203,203,199,199,192,192,192,192,192,193,193,194,194,192,192,193,193,194,194,194,194,195,192,193,193,193,193,194,193,192,192,193,194,194,194,192,192,192,193,193,194,194,193,194,194,194,194,195,195,195,195,195,199,192,192,193,193,193,193,193,192,192,192,193,193,194,194,193,192,192,192 +,252,252,252,109,252,252,252,252,252,252,252,252,252,109,108,109,252,252,109,252,109,252,109,252,252,252,108,107,107,252,107,107,107,109,107,109,107,109,107,109,107,252,107,106,107,107,106,106,106,107,106,107,106,107,106,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,108,252,108,252,108,109,109,109,107,109,107,109,107,109,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,202,202,202,202,203,203,204,204,204,202,203,203,204,203,204,202,203,202,204,204,205,206,205,206,207,206,207,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,150,144,144,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,157,157,157,155,156,157,157,157,156,156,155,155,157,203,202,202,202,203,202,203,203,204,204,203,202,202,202,203,203,204,203,204,204,204,203,204,203,204,203,204,204,204,204,156,155,155,155,202,203,204,202,202,202,203,202,203,203,204,203,199,192,192,192,193,192,193,193,194,193,192,192,193,192,193,192,194,194,194,194,192,192,193,193,193,194,194,192,193,193,194,193,194,192,192,192,193,193,194,193,194,194,194,193,194,195,195,195,195,195,199,192,192,192,193,192,193,192,193,192,193,193,194,194,192,192,192,192,192 +,252,252,252,252,109,252,252,252,252,252,252,252,252,107,108,252,109,109,109,109,252,109,252,252,252,252,108,107,107,107,107,107,107,107,109,109,109,107,109,109,109,109,106,107,107,106,107,106,106,106,107,106,107,106,106,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,108,108,108,252,108,252,109,109,109,107,107,109,107,109,107,109,109,107,107,107,107,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,202,202,202,202,203,203,204,204,204,202,203,203,204,204,202,202,203,203,204,204,205,205,206,205,206,207,207,207,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,150,150,144,146,144,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,157,157,157,157,157,156,156,155,155,157,157,156,156,155,157,202,202,202,202,202,203,203,204,204,204,202,202,202,203,203,203,203,204,204,204,204,204,203,203,204,204,204,204,204,204,155,155,155,155,202,202,202,202,202,202,202,203,203,203,203,199,199,192,192,192,192,193,193,193,193,194,192,192,192,194,194,194,194,194,194,192,192,193,193,193,193,195,194,192,192,194,193,193,193,192,192,192,192,193,193,194,194,194,193,194,194,195,195,195,195,195,199,199,192,193,193,193,193,192,192,193,193,193,194,194,192,192,193,192,193 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,109,252,252,109,252,109,252,109,252,109,252,108,252,107,107,107,107,107,109,109,109,107,109,107,109,107,252,107,107,107,107,107,107,106,107,106,107,106,107,106,106,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,108,108,252,252,252,108,252,252,109,107,109,107,109,107,109,107,109,107,109,107,109,107,107,107,107,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,202,202,202,202,202,203,203,204,203,204,203,204,204,202,202,203,203,204,203,204,204,205,206,205,206,207,206,207,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,150,150,149,146,144,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,157,156,157,157,157,157,157,156,157,155,156,155,155,156,156,155,155,157,202,202,203,202,203,203,204,203,204,204,202,202,203,202,203,203,204,203,204,204,204,203,204,203,204,204,204,203,204,204,156,155,155,202,203,202,202,202,203,202,203,203,204,203,204,199,192,192,193,192,193,192,193,193,192,192,193,192,193,192,194,194,193,194,192,192,193,193,193,194,195,193,194,192,192,194,193,193,192,192,193,192,193,192,193,193,194,193,194,193,194,194,195,195,195,195,199,192,199,192,193,193,194,192,193,192,193,193,194,192,193,192,193,193,193 +,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,109,109,109,109,252,109,252,109,252,252,108,252,107,107,107,107,252,109,109,107,109,107,109,107,109,106,106,107,107,107,107,107,107,106,106,106,107,106,107,106,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,108,108,252,108,252,252,252,252,109,109,107,107,107,107,107,107,107,109,107,107,107,109,107,107,107,107,107,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,202,202,203,202,203,203,204,204,203,203,204,203,204,202,203,203,203,203,204,204,205,205,207,205,206,207,206,207,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,150,150,150,149,146,147,144,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,5,5,4,5,157,157,156,157,156,156,157,157,157,156,156,156,155,155,155,157,156,156,155,202,202,202,202,203,203,203,203,204,204,204,202,202,202,203,203,203,203,203,203,204,204,204,204,204,204,204,204,204,204,204,155,155,155,202,202,202,202,202,202,203,203,203,203,204,199,199,192,192,192,192,192,193,193,192,192,193,193,193,193,195,195,194,194,192,192,193,193,193,194,194,193,195,194,192,192,193,193,192,192,193,193,193,193,193,193,194,194,194,193,193,194,195,195,195,195,195,199,192,192,193,193,193,193,192,192,193,193,194,194,192,192,193,193,194,192 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,109,252,252,109,252,109,252,109,252,252,252,108,252,107,107,107,107,107,109,109,109,107,109,107,109,106,106,107,107,107,107,107,107,106,107,106,106,106,107,106,106,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,108,108,252,252,252,252,252,252,252,109,252,109,109,107,109,107,109,107,109,107,109,107,109,107,107,107,107,107,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,202,202,202,202,202,204,204,204,203,204,204,204,204,203,203,204,203,204,203,204,204,205,206,205,205,206,206,207,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,150,150,150,150,149,146,147,144,144,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,157,157,157,156,157,156,156,156,157,157,157,156,156,156,156,155,155,156,156,155,155,202,202,202,203,202,203,203,204,203,204,204,202,203,203,202,203,203,204,203,204,204,204,203,204,203,204,204,204,204,204,155,156,155,155,202,202,202,203,202,203,202,203,203,204,203,199,192,192,192,193,192,193,193,194,192,193,192,193,193,195,195,194,194,192,192,193,193,193,193,194,195,195,195,194,192,193,192,193,192,193,193,194,193,194,194,194,193,193,193,194,193,195,194,195,194,195,195,199,192,192,192,193,193,194,192,193,192,193,193,192,192,194,193,193,193,192 +,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,107,109,109,109,109,109,109,252,252,252,252,108,252,107,107,107,107,107,107,109,107,109,107,109,107,106,107,107,107,107,106,107,106,106,107,107,106,107,106,107,106,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,108,108,252,108,252,252,252,252,252,252,252,109,109,107,109,107,107,107,107,109,107,107,107,109,107,107,107,107,107,107,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,202,202,202,202,202,203,204,204,203,203,204,204,203,204,202,203,203,204,204,204,204,205,205,206,205,205,206,206,207,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,150,148,148,148,146,146,147,147,147,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,5,4,4,4,157,157,157,157,157,156,156,156,157,157,156,155,157,156,156,155,155,155,156,156,155,156,202,202,202,202,203,203,203,203,204,204,204,202,202,203,203,203,203,203,204,204,204,204,204,204,204,204,204,204,204,204,156,155,155,155,202,202,202,202,203,203,203,203,203,203,199,199,192,192,192,192,193,193,193,199,193,194,194,194,195,195,194,194,192,192,194,193,193,193,194,195,195,193,195,195,194,192,193,193,194,192,192,192,193,193,193,193,193,193,193,193,194,195,195,195,195,194,195,199,192,199,193,193,193,192,192,192,193,193,192,192,193,193,193,194,194,192 +,252,252,252,252,252,252,252,109,252,252,252,252,252,252,107,109,107,252,109,252,109,252,109,252,109,252,252,107,107,107,107,252,107,107,107,109,107,109,107,106,107,106,107,252,107,107,106,106,106,107,107,107,106,107,106,106,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,252,108,108,252,252,252,252,252,252,252,252,109,109,109,107,109,109,107,109,107,109,107,109,107,109,107,107,107,107,107,107,107,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,202,202,202,202,203,202,204,204,203,203,204,204,204,204,203,202,204,203,204,204,205,204,205,206,207,205,205,206,207,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,150,150,149,149,149,149,149,144,147,4,5,4,5,4,5,4,5,4,5,4,5,4,5,150,145,145,145,145,145,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,157,157,157,157,156,157,156,157,156,156,155,157,156,157,155,156,155,155,156,156,155,202,202,202,202,203,202,203,203,204,203,204,204,202,202,203,203,204,203,204,203,204,204,204,204,204,203,204,204,204,204,204,155,156,155,155,202,202,202,203,202,203,202,203,203,204,199,192,192,192,192,193,192,193,199,193,193,194,193,195,194,195,195,192,193,192,193,194,193,194,193,195,195,195,193,195,194,192,194,193,192,193,192,193,192,193,192,193,193,194,193,194,194,195,195,195,195,194,195,199,192,192,192,193,193,192,192,193,193,194,192,193,193,194,193,194,192,192 +,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,107,109,107,109,109,252,109,252,109,252,252,252,107,107,107,107,107,107,107,107,107,109,107,109,106,107,106,107,107,107,107,106,106,107,107,107,107,107,106,107,106,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,108,108,108,252,108,252,252,252,252,252,252,252,252,109,109,109,107,109,109,109,107,109,109,107,107,107,109,107,107,107,107,107,107,107,107,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,202,202,202,203,203,202,204,204,203,203,203,204,204,202,202,203,202,204,204,204,204,205,205,206,205,205,205,206,206,207,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,150,150,150,150,150,150,150,145,144,147,144,144,4,4,4,4,4,4,4,4,4,4,4,4,4,150,149,144,146,147,147,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,157,157,157,157,157,156,157,156,156,155,155,156,156,156,156,155,155,155,156,155,156,202,202,202,202,202,203,203,203,203,204,204,204,202,203,203,204,203,204,203,204,204,204,204,204,204,204,204,204,204,204,204,155,155,155,155,202,202,202,202,203,203,203,203,204,199,199,192,192,192,193,193,193,192,193,193,193,193,195,195,195,195,195,192,192,193,194,194,193,193,195,195,195,195,195,195,194,192,193,192,192,192,193,193,193,193,194,193,194,194,194,194,194,195,195,194,195,194,195,199,192,199,193,193,193,192,193,193,193,193,192,192,193,193,193,192,192,192 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,109,252,109,252,109,252,109,252,109,107,107,252,107,107,107,107,107,109,107,109,106,107,107,109,107,252,107,107,107,107,106,107,106,107,107,107,106,106,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,109,109,107,109,109,109,109,109,109,107,109,107,109,107,109,107,107,107,107,107,107,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,202,202,202,202,202,203,204,204,203,203,204,202,203,204,203,203,202,203,204,204,205,205,213,205,207,205,213,206,214,207,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,150,232,150,232,149,149,232,149,144,232,147,232,144,232,4,4,4,4,4,4,4,4,4,4,4,4,150,148,148,148,148,148,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,157,157,157,157,157,156,157,157,157,156,156,155,157,156,156,155,156,155,155,156,155,202,202,202,203,202,203,203,203,203,204,203,204,204,202,202,203,203,204,203,204,203,204,204,204,203,204,203,204,204,204,204,204,155,155,155,203,202,202,202,203,202,203,203,204,203,199,192,192,192,193,192,193,192,199,192,193,193,194,195,195,194,195,192,192,192,194,193,194,193,195,193,195,193,195,193,195,194,193,193,192,192,193,193,194,194,193,192,193,193,194,193,194,194,195,195,195,194,195,195,199,192,192,192,193,193,192,192,193,192,192,192,193,193,194,192,192,192,192 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,109,107,109,109,109,109,252,109,252,252,252,107,107,107,107,107,107,107,107,107,109,107,106,106,107,107,252,107,252,107,107,107,106,106,107,107,107,107,107,106,106,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,108,108,108,252,108,252,108,252,252,252,252,252,252,252,252,109,109,109,109,109,109,109,107,109,109,107,107,107,109,107,109,107,107,107,107,107,107,107,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,202,202,202,202,203,202,203,204,203,203,203,202,203,204,204,204,202,202,204,204,204,204,205,205,206,205,205,205,206,206,206,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,150,150,145,145,145,145,145,145,145,4,4,4,4,150,150,150,150,149,150,149,149,144,144,144,144,147,147,144,144,4,4,4,4,150,145,145,145,145,145,4,4,150,149,146,147,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,157,157,157,157,156,156,157,157,156,156,155,155,156,156,156,156,155,155,155,156,155,202,202,202,202,203,203,203,203,203,203,204,204,204,202,203,203,204,203,204,204,204,204,204,203,204,204,204,204,204,204,204,204,155,155,155,202,202,202,203,203,203,203,203,203,199,199,192,192,192,192,193,193,192,199,193,193,194,195,195,195,195,195,192,192,193,193,194,194,193,193,193,193,195,195,195,195,194,192,193,193,194,193,193,192,192,192,193,193,193,193,194,194,194,194,195,195,195,195,195,199,192,199,193,193,193,192,192,192,193,192,193,193,194,192,192,192,193,193 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,109,109,252,109,252,109,252,109,252,109,107,107,107,107,252,107,252,107,252,107,107,106,107,107,109,107,252,107,107,107,107,106,107,106,107,107,107,106,106,106,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,108,252,108,108,252,108,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,109,109,109,107,109,109,109,107,109,107,109,107,107,107,107,107,107,107,107,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,202,202,202,202,202,202,202,204,204,203,202,203,203,204,204,204,203,204,203,204,204,205,205,205,205,213,206,205,205,206,206,207,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,150,150,150,149,144,146,146,147,147,4,3,4,150,150,150,150,150,150,145,145,145,146,146,146,146,146,146,147,147,147,3,4,3,150,149,232,146,232,147,4,3,150,149,146,150,150,150,145,145,145,145,145,145,4,3,4,3,4,3,4,3,4,3,4,3,157,157,157,157,156,156,157,156,156,155,155,156,157,156,156,155,156,155,155,156,155,202,203,202,203,202,203,202,203,202,204,203,204,202,203,202,203,204,204,203,204,204,204,203,204,203,204,203,204,204,204,204,204,155,155,155,202,202,203,202,203,203,204,203,204,199,192,192,192,192,193,192,199,199,193,193,194,193,195,194,195,195,193,192,193,193,194,194,195,195,195,193,195,193,195,195,195,195,194,194,193,193,193,192,193,192,193,192,193,193,194,193,194,193,194,194,195,195,195,195,199,192,193,192,193,193,194,192,193,192,192,192,192,192,193,192,193,192,193 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,109,107,109,109,252,109,109,109,252,252,252,107,107,107,107,107,107,107,107,107,107,107,107,106,107,107,109,107,252,107,107,107,107,106,107,107,107,107,107,106,106,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,108,108,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,109,107,107,109,109,107,109,109,107,107,107,107,107,107,107,107,107,107,107,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,202,202,202,202,203,202,203,203,204,202,203,203,204,202,204,204,204,204,204,204,204,204,205,205,205,205,213,205,213,206,206,206,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,4,4,4,3,150,150,150,149,144,146,146,147,147,4,4,3,150,150,232,149,232,149,232,149,232,144,232,146,232,146,232,147,232,147,150,145,145,145,145,145,145,145,145,3,4,150,149,146,150,149,149,149,144,146,146,147,147,4,4,3,4,4,4,3,4,4,4,3,4,157,157,157,157,156,157,157,157,156,155,155,157,156,156,156,156,155,155,155,155,202,202,202,202,202,203,203,203,202,204,203,204,204,202,202,203,203,204,203,204,204,204,203,204,204,204,204,204,204,204,204,204,155,155,155,155,202,202,202,203,203,203,203,204,199,199,192,192,199,199,199,199,192,193,193,193,193,194,195,195,195,195,192,193,193,193,193,195,195,193,193,195,195,195,195,195,195,195,194,194,193,193,192,192,192,192,192,193,193,193,193,194,194,194,194,195,195,195,195,195,199,192,192,193,193,193,193,192,192,192,192,192,192,192,192,193,192,193,192 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,109,252,109,252,109,252,109,252,109,107,107,107,107,107,107,252,107,252,107,107,106,107,107,109,107,252,107,107,107,107,106,107,106,107,106,107,106,107,106,106,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,108,108,252,108,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,109,252,109,109,109,109,107,107,107,109,107,109,109,109,107,109,107,107,107,107,107,107,107,107,107,107,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,202,203,202,202,202,202,202,203,203,202,202,204,204,204,203,204,203,204,203,204,204,215,205,205,205,215,205,213,205,213,206,214,206,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,149,149,148,148,148,148,148,3,4,3,4,150,150,232,149,232,149,232,149,232,144,232,146,232,146,232,147,232,147,149,144,144,144,149,149,149,149,149,145,145,150,149,146,150,149,149,149,144,146,146,147,147,4,3,4,3,4,3,4,3,4,3,4,157,157,157,157,157,157,156,157,156,156,155,155,156,157,156,156,155,156,155,157,155,203,202,202,202,203,202,203,202,204,203,204,204,204,202,203,203,204,204,204,203,204,204,204,203,204,204,204,203,204,203,204,155,155,155,155,155,202,202,203,203,204,203,204,203,199,199,193,199,192,192,192,192,193,192,193,193,194,193,195,195,195,192,193,193,195,193,195,195,193,192,193,193,195,193,195,195,195,193,194,193,193,192,192,192,192,192,193,193,194,193,194,193,194,194,195,195,195,195,195,199,199,192,199,192,193,193,194,192,193,192,193,192,193,192,193,192,193,193,193 +,108,252,252,252,252,252,252,252,109,252,252,252,252,252,252,107,109,107,109,109,109,109,252,109,252,252,252,107,107,107,107,107,107,107,252,107,107,107,107,107,107,107,252,107,252,107,107,106,106,106,107,106,107,107,107,107,106,106,3,4,3,4,3,4,3,3,3,4,3,4,3,4,3,3,3,4,3,108,252,108,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,107,107,107,107,109,109,109,107,109,107,109,107,107,107,107,107,107,107,107,107,107,4,3,4,3,4,3,3,3,4,3,4,3,4,3,3,3,4,3,4,3,4,3,3,3,4,3,4,3,4,3,3,3,4,3,4,3,4,3,3,3,4,3,4,3,4,3,3,3,4,3,4,3,4,3,3,3,4,3,4,3,4,3,3,3,4,3,4,3,4,3,3,3,4,3,4,3,4,3,3,3,4,3,4,3,4,3,3,3,4,3,4,3,4,3,3,3,4,3,4,3,4,3,3,3,4,3,4,3,4,3,3,3,4,3,4,3,4,3,3,3,4,3,4,3,4,3,3,3,4,3,4,3,4,3,3,4,3,3,3,4,3,4,3,4,3,3,3,4,3,4,3,4,3,3,3,4,3,4,3,4,3,3,3,4,3,4,3,4,3,3,3,4,3,4,3,4,3,3,3,4,3,4,3,4,3,3,3,4,202,202,202,202,202,202,202,202,203,203,202,203,203,204,203,204,204,204,204,204,204,205,204,205,205,205,205,205,213,205,205,213,206,206,3,4,3,3,3,4,3,4,3,4,3,3,3,4,3,4,3,4,3,3,3,4,3,4,3,4,3,3,3,4,3,4,3,4,3,3,3,4,3,4,3,4,3,3,3,4,3,4,3,4,3,3,3,4,3,4,3,4,3,3,3,4,3,4,3,4,3,3,3,4,3,4,3,4,3,3,3,4,3,4,3,4,3,3,3,4,3,4,3,4,3,3,150,150,149,144,146,146,147,148,148,150,150,150,150,150,150,150,150,150,149,149,144,144,144,146,146,146,147,147,147,149,146,146,144,146,144,144,144,149,149,149,150,149,146,232,150,148,148,148,148,148,148,4,3,4,3,3,3,4,3,4,3,4,157,157,157,157,157,157,157,157,157,157,156,156,155,157,156,156,156,156,155,155,157,155,202,202,202,202,202,203,202,203,204,204,204,203,203,202,202,203,204,204,204,204,204,203,203,204,204,204,204,204,204,156,156,155,155,155,155,155,202,202,202,203,203,204,204,199,199,199,199,192,192,193,192,192,192,193,193,193,193,195,195,195,195,192,193,193,193,195,195,193,193,193,193,195,195,195,195,195,195,194,194,193,192,192,192,192,192,192,192,193,193,194,194,194,194,195,195,195,195,195,199,199,192,192,192,192,192,193,193,194,192,192,192,192,192,193,193,193,193,193,193 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,109,109,252,109,252,109,252,109,252,109,107,107,107,107,252,107,252,107,252,107,107,106,107,107,252,107,252,107,107,107,106,106,107,106,107,106,107,107,107,106,106,106,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,108,108,252,108,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,107,107,109,107,109,107,109,109,109,107,109,107,107,107,107,107,107,107,107,107,107,107,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,202,202,203,202,203,202,202,202,203,203,202,202,204,204,204,203,204,203,204,203,204,204,215,205,215,205,215,205,213,206,215,206,214,206,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,150,150,149,144,146,146,147,144,144,144,144,144,144,144,144,144,144,144,147,149,144,144,144,146,146,146,147,147,147,149,146,232,146,232,146,232,146,232,144,144,150,149,146,147,150,149,149,144,146,146,147,3,4,3,4,3,4,3,4,3,4,157,157,157,157,157,157,157,156,157,157,156,156,155,155,156,157,156,156,155,156,155,157,202,202,202,203,202,203,202,203,204,204,204,203,202,203,202,203,203,204,203,204,204,204,203,204,203,204,204,204,203,157,155,156,155,155,155,155,155,202,202,203,203,204,203,199,199,199,199,193,192,193,192,192,192,193,193,194,193,194,195,195,195,195,192,193,193,195,193,195,195,193,192,193,193,195,193,195,195,195,194,193,192,193,192,193,192,193,192,193,192,193,193,194,195,195,195,195,195,195,199,199,192,193,199,193,192,193,193,194,193,194,194,192,192,193,192,193,192,193,193,193 +,108,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,109,107,109,109,252,109,252,109,252,252,252,107,107,107,107,107,107,107,107,107,107,107,107,106,107,107,252,107,107,107,106,106,106,106,107,106,107,107,107,106,106,106,106,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,108,108,108,252,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,107,107,107,107,107,107,107,109,109,109,107,109,107,107,107,107,107,107,107,107,107,107,107,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,202,202,202,202,202,202,202,202,203,202,203,203,204,204,204,203,203,204,204,204,204,205,205,205,205,213,205,205,205,214,206,205,205,214,206,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,150,150,145,145,145,145,145,146,150,150,149,144,146,232,147,144,144,144,144,144,144,144,144,144,144,144,144,147,149,144,144,144,146,146,147,147,147,149,147,147,147,147,147,147,147,147,147,147,150,149,146,147,150,149,149,144,146,232,147,3,3,3,3,3,3,3,3,3,3,157,157,157,157,157,157,157,156,157,156,156,156,155,155,157,156,156,156,156,155,155,156,202,202,202,202,202,202,203,203,204,202,202,202,203,203,202,203,204,203,204,204,203,203,203,203,204,204,204,204,204,156,156,155,155,155,155,155,155,202,203,203,204,204,204,199,199,192,192,192,193,193,192,192,193,193,193,193,194,194,195,195,195,195,192,193,193,195,195,192,192,192,193,193,193,193,195,195,195,194,193,192,192,192,192,192,193,193,192,192,193,193,194,195,195,195,195,195,199,199,192,192,193,193,193,193,193,192,193,193,194,194,192,192,193,192,193,193,193,193,193,193 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,109,252,109,252,109,252,109,252,109,107,107,252,107,107,107,252,107,252,107,107,106,107,107,107,107,107,107,107,106,106,106,107,106,107,107,107,106,107,106,106,106,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,108,108,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,107,252,107,109,107,252,107,109,107,109,107,109,107,107,107,107,107,107,107,107,107,107,107,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,202,202,202,203,202,203,202,202,202,203,202,203,203,204,204,204,203,204,203,204,203,215,204,215,205,215,205,215,205,213,213,214,206,214,206,206,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,4,3,3,3,150,150,150,149,144,144,146,147,150,150,149,144,146,146,147,144,144,232,144,232,144,232,144,232,144,144,144,144,147,147,144,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,150,150,149,149,144,146,146,147,3,4,3,3,3,4,4,4,4,4,157,157,157,157,157,157,156,156,156,157,156,156,155,155,156,157,156,156,155,156,155,157,202,203,202,202,202,203,203,204,202,202,202,203,203,204,203,204,204,204,204,203,203,204,203,204,203,204,203,204,156,157,155,156,155,155,155,155,202,203,202,203,203,204,199,199,199,193,192,193,192,193,192,193,192,193,193,194,193,194,195,195,195,192,192,193,193,195,195,192,192,193,192,193,193,195,195,195,194,193,192,192,192,193,192,193,192,193,193,192,194,194,193,195,195,195,195,199,199,192,199,193,199,193,192,193,192,193,194,194,192,193,192,193,192,193,192,193,193,194,193,193 +,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,109,109,109,109,109,252,109,252,252,252,107,107,107,107,107,107,107,107,107,107,107,107,106,107,107,252,107,107,107,106,106,107,106,107,107,107,106,107,106,106,106,106,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,108,252,108,108,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,107,107,107,107,107,109,109,109,107,109,107,109,107,107,107,107,107,107,107,107,107,107,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,202,202,202,202,203,202,202,202,203,203,202,203,203,204,203,203,204,203,204,204,204,204,205,205,215,205,205,205,213,205,213,213,213,213,214,206,206,206,3,3,215,206,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,150,150,150,149,149,144,146,147,150,150,232,144,146,146,147,144,144,144,144,232,144,232,144,144,144,144,144,144,144,144,147,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,149,232,144,146,152,152,153,153,153,153,153,153,154,153,154,154,157,157,157,157,157,156,156,157,157,156,156,155,155,155,157,156,156,156,156,155,155,202,202,202,202,202,203,203,204,202,202,202,202,202,203,203,204,204,204,204,204,203,204,203,204,204,204,204,204,204,157,156,156,155,155,155,155,155,202,202,203,203,204,199,199,199,192,192,193,192,193,193,192,192,193,193,193,193,194,194,195,194,195,192,192,193,193,193,195,195,192,193,193,193,195,195,195,194,193,192,192,192,192,192,193,193,193,194,194,193,194,195,195,195,195,195,199,192,192,192,193,193,193,193,193,192,193,193,192,192,192,192,193,193,193,193,193,193,193,193,193,193 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,252,109,252,109,252,109,252,108,252,107,107,107,252,107,252,107,252,107,107,107,107,107,107,107,107,107,107,106,106,106,107,107,107,106,106,106,106,106,106,106,106,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,108,108,108,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,107,109,107,107,107,252,109,109,107,109,107,109,107,109,107,107,107,107,107,107,107,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,202,202,202,203,202,204,202,202,202,203,202,203,204,204,203,204,203,204,203,204,204,215,204,215,205,215,205,215,205,215,205,213,206,214,206,206,206,215,205,213,206,214,206,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,148,148,148,148,148,148,148,150,150,149,144,146,146,147,144,144,144,144,144,144,144,144,144,144,144,232,144,144,144,144,147,146,146,232,146,146,146,232,146,146,146,232,146,146,146,146,146,232,146,146,146,146,149,149,152,152,157,156,157,157,156,152,152,153,153,153,153,154,157,157,157,157,157,157,156,157,156,157,156,156,155,157,155,157,156,156,155,156,155,202,202,203,202,203,203,204,204,203,202,202,202,203,203,204,204,204,203,204,204,204,203,204,203,204,203,204,204,204,156,156,155,156,155,155,155,155,202,203,203,204,204,199,199,193,192,193,192,193,192,192,192,193,192,193,193,194,193,194,195,195,192,192,192,193,192,193,193,195,195,193,193,195,195,195,195,194,192,193,192,192,192,193,192,193,194,194,194,194,193,195,195,195,195,199,199,192,192,193,192,193,192,193,192,193,192,192,192,193,192,193,192,193,192,193,193,194,193,194,194,193 +,108,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,109,252,252,108,252,107,107,107,107,107,107,107,107,107,107,107,106,107,106,107,107,107,106,106,106,107,107,107,106,106,106,107,106,106,106,106,106,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,108,108,108,108,252,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,107,107,109,107,109,107,109,107,109,107,109,107,107,107,107,107,107,107,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,202,202,202,202,202,204,202,203,202,202,203,203,204,202,203,203,203,203,204,204,204,204,215,205,205,205,213,205,205,205,215,205,205,205,213,205,205,205,213,213,214,206,206,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,150,150,149,149,149,149,149,150,150,149,144,146,232,147,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,147,147,147,147,147,147,147,147,147,147,147,146,146,146,232,146,232,146,232,146,146,149,157,157,156,156,157,157,157,156,155,156,155,155,152,152,157,157,157,157,157,157,156,156,157,156,156,156,155,157,156,155,156,156,156,156,155,202,202,202,202,202,202,204,204,203,202,203,203,204,204,204,204,203,203,204,204,204,203,204,204,204,204,204,204,204,204,157,156,156,155,155,155,155,155,203,203,204,204,199,199,192,192,192,192,192,192,193,192,192,192,193,193,193,193,194,194,195,195,192,192,192,192,193,193,193,193,195,195,193,193,195,195,194,194,192,192,192,192,192,192,193,193,194,194,194,195,195,195,195,195,199,199,192,192,193,192,193,193,193,193,192,192,192,192,192,192,193,193,193,193,193,193,193,193,193,193,193,193 +,252,252,108,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,109,109,109,252,109,252,252,252,108,252,107,107,107,107,107,252,107,252,107,107,107,107,106,107,107,107,107,106,106,107,106,107,107,106,106,107,106,106,106,106,106,106,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,108,252,108,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,252,109,107,109,252,107,109,107,109,107,109,107,109,107,109,107,107,107,107,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,202,202,202,203,202,203,202,202,202,202,203,204,204,204,203,204,203,204,203,204,203,215,204,215,205,215,205,215,205,215,205,213,205,213,205,215,205,213,205,213,205,214,206,206,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,150,232,149,149,149,149,149,150,150,149,144,146,146,147,144,144,113,114,114,114,114,114,114,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,147,147,146,146,146,146,146,146,146,146,157,157,156,156,155,157,157,157,156,155,156,156,155,156,156,157,157,157,157,157,156,156,157,157,156,156,155,156,157,156,155,157,156,156,155,156,202,202,202,203,202,203,203,202,202,203,203,204,203,204,203,204,203,204,204,204,203,204,203,204,203,204,204,204,204,204,156,157,155,156,155,155,155,155,203,203,203,204,199,199,192,193,192,193,192,193,193,192,192,193,192,193,193,194,194,194,194,195,192,192,192,193,193,195,193,195,193,195,193,195,193,194,194,192,192,193,192,192,192,193,192,194,194,194,194,195,194,195,194,195,199,199,192,193,192,193,192,193,193,193,192,193,192,193,192,193,192,193,192,193,193,194,193,194,193,194,193,194 +,252,252,108,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,109,109,109,109,252,252,252,252,108,252,107,107,107,107,107,107,252,107,107,107,107,107,107,106,107,107,107,106,106,106,107,107,106,106,107,106,107,106,106,106,106,106,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,108,108,252,252,252,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,107,109,107,109,109,107,109,107,109,107,109,109,109,109,109,107,107,107,107,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,202,202,202,202,202,204,203,202,202,202,203,203,204,203,203,203,204,204,204,204,215,204,215,205,215,205,213,205,215,205,215,205,215,205,215,205,215,205,213,206,215,214,206,206,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,150,150,149,149,149,149,149,150,150,232,144,146,146,147,144,113,113,113,113,113,113,113,114,114,114,114,114,114,114,114,113,113,114,114,114,114,114,144,144,144,144,144,144,144,147,146,146,146,146,146,157,157,157,157,156,156,155,157,157,157,156,155,156,155,155,156,156,157,157,157,157,157,157,156,157,157,156,156,156,155,157,156,156,155,156,156,156,155,202,202,203,203,204,204,203,202,202,203,203,203,204,204,203,203,204,204,204,203,204,203,204,204,204,204,204,204,204,157,157,156,156,155,155,155,155,202,203,203,204,199,199,192,192,192,192,192,193,193,193,192,192,192,193,193,193,193,194,194,195,195,192,192,192,192,193,193,195,195,195,193,195,193,195,194,194,192,192,192,192,193,192,192,193,193,194,194,195,195,195,194,195,195,199,192,192,192,193,192,193,193,193,193,192,192,192,192,192,192,193,192,193,193,193,193,193,193,193,193,193,193 +,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,108,109,252,109,252,108,252,107,107,107,252,107,252,107,252,107,252,107,106,107,107,107,107,107,106,106,107,106,107,106,106,106,107,106,106,106,106,106,106,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,108,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,107,109,107,109,252,107,109,107,252,107,109,107,109,107,109,107,107,107,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,202,202,202,203,202,203,204,202,202,203,203,204,204,204,203,204,204,204,205,215,205,215,205,215,205,213,205,215,205,215,205,213,205,213,205,213,205,213,205,213,206,214,214,206,206,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,150,150,149,232,149,149,149,150,150,149,144,146,146,147,144,115,115,115,115,116,115,115,115,116,115,113,113,113,113,113,113,113,113,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,157,157,157,157,156,156,155,157,157,157,156,155,155,156,155,156,156,157,157,157,157,157,156,156,157,157,156,156,155,157,156,156,155,155,156,156,155,202,202,203,202,203,203,204,202,202,202,203,203,204,204,203,203,204,203,204,199,192,193,194,203,204,203,204,203,204,204,157,156,156,155,156,155,155,202,203,203,204,202,199,199,192,192,193,192,193,192,193,192,192,192,193,192,193,193,194,193,194,195,195,192,192,192,193,192,195,193,195,195,195,193,195,194,194,192,192,192,193,192,193,192,193,192,193,194,195,194,195,195,195,193,195,199,192,192,193,192,193,192,193,193,193,192,193,192,192,192,193,192,193,192,193,193,194,193,192,193,194,194,193 +,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,109,109,252,107,252,252,252,252,108,252,107,107,107,107,107,107,107,107,252,107,252,107,106,107,106,107,106,106,107,106,107,107,106,106,107,106,107,106,106,106,106,106,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,108,252,252,252,252,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,107,107,107,109,109,107,107,107,109,109,109,107,109,107,107,107,107,107,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,202,202,202,202,203,202,203,202,204,202,203,203,204,203,204,204,215,205,215,215,215,205,213,215,215,205,215,215,215,205,215,215,215,205,215,215,215,205,213,213,213,205,206,214,206,206,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,150,145,147,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,150,150,149,149,149,149,149,150,150,113,113,113,113,113,116,115,116,115,116,116,116,116,116,116,116,116,117,117,117,117,117,117,116,116,113,113,113,113,113,114,114,114,114,114,114,114,114,114,114,114,157,156,157,156,156,156,155,157,155,157,156,155,156,156,155,156,156,157,157,157,157,157,156,155,155,157,156,156,156,157,157,156,156,155,156,155,156,202,202,202,203,203,203,203,202,202,203,203,204,204,204,204,204,204,203,199,192,192,193,193,194,204,204,204,204,204,204,157,157,156,156,155,155,203,203,203,204,202,199,199,192,192,192,192,193,193,193,193,192,192,192,192,193,193,193,193,194,194,195,195,192,192,192,192,193,193,193,195,195,193,195,195,194,194,192,192,192,192,192,193,192,192,192,192,193,194,195,195,195,195,195,199,199,192,192,192,193,193,193,193,193,193,192,192,192,192,192,192,193,193,193,192,193,193,193,193,194,194,194,193 +,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,109,109,109,108,109,252,252,252,108,252,107,252,107,107,107,252,107,252,107,252,107,252,107,106,107,106,106,106,106,107,107,107,106,107,106,107,106,106,106,106,106,106,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,108,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,107,252,109,107,107,252,109,109,109,252,109,252,107,109,107,109,107,109,107,107,107,107,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,202,202,203,202,203,202,203,203,202,202,202,202,204,204,204,204,215,204,215,205,215,205,215,205,213,205,215,205,215,205,215,214,214,205,2,205,213,205,215,205,213,206,214,205,206,214,206,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,150,144,147,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3,113,113,113,113,113,113,113,113,115,116,115,116,115,116,116,116,116,116,116,117,116,117,116,117,116,117,117,117,116,117,116,117,116,117,116,117,116,117,116,113,113,113,113,113,113,113,113,113,113,157,157,156,157,157,156,156,155,157,157,157,155,155,156,156,155,155,156,157,157,157,157,157,156,156,155,157,156,156,155,157,156,156,155,156,155,202,202,202,202,203,203,204,203,202,202,203,202,203,203,204,204,204,204,199,199,192,192,193,193,194,193,194,203,204,204,204,204,204,156,157,155,156,192,194,194,204,204,203,199,192,199,193,192,193,192,193,192,193,192,193,192,193,193,194,193,194,194,194,195,192,192,193,192,193,193,195,193,195,195,195,193,194,194,192,192,192,192,192,192,192,192,193,192,193,193,195,195,195,194,195,195,199,192,193,192,193,192,193,192,193,193,194,192,193,192,193,192,193,192,192,192,193,193,194,193,194,193,194,193,193 +,252,252,252,252,252,252,252,108,109,252,252,252,252,252,252,252,252,252,109,109,109,108,252,252,252,252,252,252,107,107,107,107,107,107,252,107,252,107,252,107,252,107,106,107,106,106,107,106,107,107,106,106,107,106,107,106,106,106,106,106,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,252,108,252,252,252,252,252,108,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,252,109,252,107,107,252,107,109,107,109,252,109,252,107,252,252,109,109,107,107,107,107,107,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,202,202,202,202,202,203,202,202,204,202,203,202,204,204,204,215,204,215,215,215,205,213,215,213,215,215,215,215,213,215,213,214,214,215,2,2,205,215,215,215,215,213,213,215,213,206,214,206,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,150,144,147,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,113,113,115,115,115,115,115,115,115,115,115,116,115,116,116,116,116,116,116,116,116,116,116,117,117,117,117,117,117,116,116,116,116,116,116,117,116,117,116,117,117,117,117,117,117,117,117,117,117,117,117,117,157,157,156,157,156,156,156,157,157,156,155,155,156,156,155,155,155,157,157,157,157,157,156,156,155,155,156,157,155,156,157,157,156,156,155,202,202,202,202,202,202,203,203,204,202,202,202,203,203,203,204,204,199,199,192,192,192,193,193,193,193,194,194,204,204,204,204,204,204,157,156,192,192,193,193,194,194,194,199,199,192,192,192,193,193,194,192,193,193,192,192,193,193,193,193,194,194,194,195,195,192,192,192,193,193,193,193,195,195,195,193,194,194,194,192,192,192,192,192,193,192,192,193,193,195,195,194,195,195,195,195,195,199,192,192,193,192,193,193,193,193,193,193,192,192,192,192,192,192,192,192,193,193,193,193,194,194,194,193,194,194 +,252,252,252,252,252,252,108,109,252,252,252,252,252,252,252,252,252,252,109,252,108,252,108,252,109,252,252,252,252,107,107,252,107,252,107,252,107,252,107,252,107,252,107,106,107,106,107,107,107,107,106,106,106,107,106,106,106,106,106,106,2,1,2,1,2,1,2,2,2,1,2,1,2,1,2,108,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,109,107,107,252,109,252,109,107,109,252,109,252,252,252,252,252,107,109,107,107,107,107,2,1,2,1,2,1,2,2,2,1,2,1,2,1,2,2,2,1,2,1,2,1,2,2,2,1,2,1,2,1,2,2,2,1,2,1,2,1,2,2,2,1,2,1,2,1,2,2,2,1,2,1,2,1,2,2,2,1,2,1,2,1,2,2,2,1,2,1,2,1,2,2,2,1,2,1,2,1,2,2,2,1,2,1,2,1,2,2,2,1,2,1,2,1,2,2,2,1,2,1,2,1,2,2,2,1,2,1,2,1,2,2,2,1,2,1,2,1,2,2,2,1,2,1,2,1,1,2,1,2,2,2,1,2,1,2,1,2,2,2,1,2,1,2,1,2,2,2,1,2,1,2,1,2,2,2,1,2,1,2,1,2,2,2,1,2,1,2,1,2,2,2,1,2,1,2,1,202,202,203,202,203,202,202,203,204,203,204,203,204,203,204,204,215,215,215,205,215,205,213,205,215,205,215,205,213,213,214,214,2,2,2,205,213,205,213,205,213,205,213,213,215,214,206,206,2,2,2,1,2,1,2,1,2,2,2,1,2,1,2,1,2,2,2,1,2,1,2,1,2,2,2,1,2,1,2,1,2,2,2,1,2,1,2,1,2,2,2,150,144,147,2,1,2,2,2,1,2,1,2,1,2,2,2,1,2,1,2,113,113,113,116,113,113,113,115,115,117,117,117,117,117,116,117,116,117,117,116,115,116,116,117,116,117,116,117,116,117,116,116,116,117,116,117,116,117,116,117,116,117,116,117,116,117,116,117,116,117,116,117,116,117,117,117,117,117,117,157,157,156,157,157,156,156,157,157,156,156,155,156,155,156,155,155,157,157,157,157,157,157,156,156,155,157,156,155,157,157,156,156,155,202,202,202,202,202,202,203,202,203,202,202,202,203,202,203,203,204,199,199,192,192,192,193,193,193,193,194,193,194,194,204,204,204,204,204,192,192,192,193,193,194,193,194,193,199,192,199,192,193,192,194,194,193,192,193,192,193,192,193,193,194,193,194,194,195,195,193,192,193,192,193,193,195,195,195,193,195,193,194,192,193,192,192,192,193,192,192,192,193,193,195,195,195,194,195,194,195,193,199,192,193,192,193,192,193,193,194,193,194,192,193,192,192,192,192,192,193,192,193,193,194,193,194,194,194,194,194 +,252,252,252,252,252,252,108,108,252,252,252,252,252,252,252,252,252,252,109,109,108,108,252,109,252,252,252,252,252,107,107,107,107,107,107,107,252,107,252,107,252,107,252,107,106,107,252,107,107,107,106,106,107,106,107,106,106,106,106,106,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,252,108,252,252,252,252,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,252,252,252,107,109,109,109,109,252,109,252,109,252,252,252,252,252,252,107,107,107,107,107,107,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,2,202,202,202,202,203,203,203,202,202,204,203,202,204,204,204,204,215,204,215,215,215,215,213,215,215,215,213,205,213,213,213,213,2,2,2,1,215,215,215,215,213,213,213,205,213,213,214,214,206,214,2,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,150,144,147,2,2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,2,115,115,116,117,115,115,115,115,116,116,117,117,117,116,117,117,117,117,116,116,117,117,117,116,117,117,116,116,117,117,117,116,116,116,116,116,117,116,116,116,117,116,116,116,117,117,117,116,117,117,117,117,117,117,117,117,117,117,117,157,157,156,157,156,156,155,157,156,156,155,155,156,156,155,156,155,157,157,157,157,157,156,156,155,155,156,156,155,157,157,156,156,156,202,202,202,202,202,202,202,203,202,202,202,203,203,203,203,204,199,192,192,192,192,193,193,193,193,193,193,194,194,194,194,204,204,192,192,193,193,193,193,193,194,194,194,199,199,192,192,193,192,193,193,194,193,193,192,192,192,193,193,193,193,194,194,194,194,195,192,192,192,193,193,195,195,193,193,195,194,194,192,192,192,193,192,192,192,192,192,193,194,193,194,195,194,195,195,195,195,199,199,192,192,192,192,193,193,193,193,194,194,192,192,192,192,192,192,192,192,193,193,194,194,194,194,193,194,194,193 +,252,252,252,252,252,252,108,109,252,252,252,252,252,252,252,252,252,252,109,109,108,252,108,252,252,252,252,252,252,107,107,107,107,252,107,252,107,252,107,252,107,252,107,252,107,106,107,252,107,252,106,106,106,107,106,107,106,106,106,106,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,108,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,107,107,107,252,109,252,109,252,109,252,109,252,109,252,252,252,107,107,107,109,107,107,107,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,202,203,202,203,202,203,202,202,202,203,204,204,203,204,203,204,204,215,215,215,215,215,205,215,205,215,205,213,213,214,213,214,1,2,1,2,215,215,205,215,205,213,205,213,213,214,205,206,214,206,214,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,150,149,149,144,147,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,115,115,116,117,115,115,115,116,116,117,117,117,116,117,116,117,117,117,116,116,116,117,116,117,117,117,116,117,117,116,117,116,116,117,116,117,116,117,116,117,113,113,113,114,113,114,114,114,114,114,114,114,114,114,114,114,114,114,157,157,156,156,157,157,156,156,157,157,156,156,155,156,156,156,156,155,157,157,157,157,157,157,155,155,156,156,155,155,156,157,156,156,155,203,202,202,202,203,202,202,202,202,202,202,202,203,203,204,199,192,192,192,192,193,192,193,193,194,193,194,193,194,194,194,192,192,192,193,193,193,193,194,193,194,193,194,199,192,192,192,192,193,193,194,194,193,192,192,192,193,192,193,193,194,193,194,194,194,195,193,193,192,193,195,192,195,193,195,193,194,194,192,192,193,192,192,192,193,192,193,192,195,193,195,195,195,194,195,195,195,192,192,192,193,192,193,193,194,193,194,192,194,192,193,192,193,192,193,192,193,192,193,193,194,193,194,194,194,193,193 +,252,252,252,252,252,252,108,108,109,252,252,252,252,252,252,252,252,252,109,109,108,108,252,109,252,252,252,252,252,252,252,107,107,107,252,107,252,107,252,107,252,107,252,107,252,107,252,107,107,107,106,106,106,106,107,106,106,106,106,106,1,2,1,2,1,2,1,2,1,2,1,2,1,2,108,252,108,252,252,252,252,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,107,107,252,109,109,109,109,109,252,109,252,252,252,252,252,252,252,107,107,107,107,107,107,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,202,202,202,202,203,203,202,203,204,202,204,203,204,204,204,204,204,215,215,215,215,215,213,215,215,215,215,213,213,213,214,214,2,1,2,1,2,215,215,215,215,215,215,215,213,213,215,214,214,206,214,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,150,149,149,149,144,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,115,115,115,116,117,115,115,116,115,116,116,117,117,116,116,117,117,117,116,116,116,116,116,117,117,117,117,117,117,117,115,116,117,113,113,113,113,113,113,113,113,113,116,116,116,116,116,116,116,116,116,116,116,116,116,117,117,117,117,157,157,156,156,157,156,156,157,157,156,156,155,155,156,156,155,156,157,157,157,157,157,157,156,155,156,156,156,156,155,157,156,156,156,156,202,202,202,202,202,202,202,202,202,203,202,202,202,203,203,199,192,192,192,193,193,193,193,193,193,194,194,194,194,194,192,192,192,193,193,193,193,193,193,194,194,194,199,192,199,192,192,193,193,193,194,194,193,192,192,193,192,193,193,193,193,194,194,194,194,195,192,193,192,195,193,193,193,195,195,194,194,192,192,192,192,192,192,192,192,193,193,194,194,195,195,194,194,195,195,195,195,192,192,192,192,193,193,193,193,194,192,193,193,194,192,192,192,192,192,193,193,193,193,193,193,194,194,194,193,194,193 +,252,252,252,252,252,108,108,252,108,252,252,252,252,252,252,252,252,252,109,252,107,252,108,252,108,252,252,252,252,252,107,252,107,252,107,252,107,252,107,252,107,252,107,252,107,252,107,252,107,252,107,106,107,106,106,107,106,106,106,106,2,1,2,1,2,1,2,1,2,1,2,1,2,1,252,108,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,252,109,107,107,107,107,252,109,252,109,252,109,252,252,252,252,252,107,107,107,109,107,109,107,107,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,202,202,203,202,203,202,203,203,202,204,202,203,204,203,204,203,204,204,204,215,215,215,213,215,215,215,213,215,213,213,214,213,214,1,2,1,2,1,215,215,215,215,213,215,213,215,213,205,214,213,214,206,214,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,115,115,112,113,113,113,2,1,2,1,2,1,2,1,2,1,2,1,2,1,115,115,115,117,115,115,115,115,116,116,117,117,116,116,117,117,117,117,116,116,117,116,117,117,117,116,117,117,115,115,116,116,115,117,115,115,116,115,116,116,117,116,117,116,117,157,151,152,152,115,116,115,116,116,116,116,117,116,117,157,157,156,155,157,157,156,157,156,156,155,156,155,156,156,157,157,157,157,157,157,157,156,155,156,157,156,156,155,156,155,157,156,156,202,202,202,202,202,202,202,202,202,203,202,202,202,204,204,199,192,193,192,193,192,193,193,193,193,194,193,194,193,194,194,192,192,193,192,193,192,193,193,194,193,194,194,199,192,192,192,193,192,193,193,194,194,193,192,193,192,193,193,194,193,194,193,194,194,194,194,193,192,193,192,193,193,195,193,194,193,194,192,193,192,193,192,192,192,193,192,194,194,195,194,195,194,195,194,195,195,193,192,193,192,193,192,193,193,192,192,193,193,194,193,194,192,192,192,193,192,193,193,193,193,194,193,194,193,194,193,193 +,252,252,252,252,252,108,108,108,252,252,252,252,252,252,252,252,252,252,109,109,108,108,108,108,252,252,252,252,252,252,252,107,252,107,107,107,252,252,252,252,109,107,252,107,252,107,252,107,252,107,107,106,107,107,106,106,107,106,106,106,1,1,1,1,1,1,1,1,1,1,1,1,1,1,108,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,252,107,107,107,109,109,252,109,252,109,252,252,252,252,252,252,252,107,107,107,107,107,109,107,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,202,202,202,202,202,203,203,204,204,203,202,203,203,204,203,204,203,204,204,204,215,215,215,215,215,215,215,213,213,214,214,214,214,1,1,1,1,1,215,215,215,215,213,213,213,215,213,214,214,214,214,214,214,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,115,115,115,117,112,113,113,1,1,1,1,1,1,1,1,1,1,1,1,1,1,115,115,115,117,115,116,115,116,116,116,117,117,116,117,117,116,116,117,116,117,116,117,117,117,117,117,117,117,115,115,116,116,117,116,116,116,116,117,117,115,115,116,116,117,157,157,156,151,152,115,115,115,115,116,116,116,116,117,117,157,156,156,155,157,157,157,157,156,155,156,155,155,157,157,157,157,157,157,157,157,156,156,155,157,156,156,156,156,155,155,156,156,155,202,202,202,202,202,202,203,202,202,203,202,204,203,203,199,192,192,192,192,192,193,193,193,193,193,193,193,193,194,194,194,192,193,192,193,193,193,193,193,193,194,194,199,192,192,192,193,192,193,193,193,193,194,193,192,192,193,193,193,193,194,192,193,193,194,194,194,192,193,193,193,193,195,193,195,194,194,192,192,192,193,193,192,192,193,194,194,194,194,195,195,194,195,195,195,195,195,192,199,192,193,193,193,193,192,192,193,193,193,193,194,194,194,192,192,192,193,193,193,193,194,194,197,193,193,193,194,193 +,252,252,252,252,252,108,108,252,108,252,252,252,252,252,252,252,252,252,109,252,107,252,108,252,108,252,108,252,252,252,252,252,107,252,107,252,107,252,107,109,109,252,107,252,107,252,107,252,107,252,107,107,107,107,106,106,106,106,106,106,1,1,2,1,1,1,2,1,1,1,2,1,1,1,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,107,107,107,252,107,252,109,252,109,252,109,252,109,252,252,252,107,252,107,109,107,107,107,107,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,202,202,203,202,202,202,203,203,204,203,202,203,204,203,204,203,204,203,204,203,204,215,215,215,215,215,213,215,213,213,214,214,214,1,2,1,1,1,215,215,215,215,213,215,213,215,213,214,213,214,214,213,214,214,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,1,1,1,2,115,116,115,116,112,112,113,113,1,1,1,2,1,1,1,2,149,112,112,112,1,115,115,116,115,116,115,116,115,116,116,117,117,116,116,117,116,117,117,117,116,117,116,117,116,117,117,117,115,116,116,117,116,117,116,115,116,117,116,117,116,117,117,115,157,157,157,156,151,151,152,115,115,117,117,116,115,116,116,117,157,157,155,155,157,157,157,157,156,155,155,155,157,157,157,157,157,157,157,157,157,157,155,155,156,157,156,156,155,155,155,156,155,156,202,203,202,202,202,203,202,203,202,203,202,203,203,199,199,192,192,193,192,193,192,193,192,193,193,194,193,194,193,194,194,192,192,193,192,193,193,194,193,194,194,194,199,192,192,192,192,193,192,193,193,194,194,193,192,193,192,193,192,193,192,193,192,194,193,194,193,195,192,193,192,193,193,195,193,194,192,193,192,193,192,192,192,193,192,194,194,194,194,195,195,195,194,195,195,195,195,192,192,193,192,193,193,192,192,193,192,193,193,194,193,194,194,194,192,193,192,193,193,194,196,193,196,193,193,193,193,194 +,252,252,252,252,109,108,108,108,252,252,252,252,252,252,252,252,252,109,109,252,252,107,108,108,252,108,252,252,252,252,252,107,252,107,252,107,107,107,109,109,109,109,252,107,252,107,252,107,109,107,252,107,107,107,107,106,106,106,106,106,1,1,1,1,1,1,1,1,1,1,1,1,1,1,108,252,252,252,252,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,107,107,107,109,109,109,109,252,109,252,109,252,252,252,252,252,107,107,107,107,107,107,107,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,202,202,202,202,202,203,203,204,204,203,202,203,203,203,203,204,203,204,204,204,215,204,215,215,215,215,215,213,213,213,214,214,1,1,1,1,1,1,215,215,215,215,215,213,213,215,213,214,215,213,214,214,214,214,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,115,115,115,115,116,112,116,112,113,1,1,1,1,1,1,149,149,149,149,149,112,115,115,115,115,115,115,116,116,116,116,116,116,117,116,117,116,116,116,117,116,117,117,117,117,117,117,115,115,116,116,116,117,117,116,115,116,117,117,117,116,117,117,117,157,157,157,157,156,156,151,152,115,116,115,116,116,116,116,116,157,157,156,156,157,157,157,157,157,156,155,155,157,157,157,157,156,157,157,157,157,156,156,155,157,157,156,156,156,156,155,155,156,156,155,202,202,202,202,202,202,202,202,203,202,203,203,199,199,192,192,192,192,193,192,193,193,193,193,193,193,194,194,194,194,194,192,192,192,193,193,193,193,194,194,194,199,192,192,192,192,193,192,193,193,194,194,194,193,193,192,192,192,193,193,192,192,193,193,194,194,195,195,193,192,193,193,193,193,194,192,192,192,193,192,192,192,193,193,193,193,194,194,195,195,195,195,195,195,195,195,194,192,192,192,193,193,192,192,192,192,193,193,193,193,194,194,194,194,193,193,193,193,196,196,193,193,193,193,194,193,194,194 +,252,252,252,252,252,108,108,252,108,252,252,252,252,252,252,252,252,109,109,252,252,108,107,252,108,252,108,252,108,252,252,252,107,252,107,252,252,109,109,252,109,107,107,252,107,252,107,109,107,107,107,252,107,107,107,107,106,107,106,106,19,19,19,19,19,19,19,19,19,19,19,19,19,19,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,252,107,252,107,252,109,252,109,252,109,252,109,252,109,252,252,252,107,107,107,109,107,109,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,202,202,202,203,202,202,202,203,203,204,203,202,202,203,202,203,203,204,203,204,204,204,215,215,215,215,215,213,215,214,213,214,213,19,19,19,19,19,215,215,215,212,215,215,215,213,215,213,213,214,213,214,213,215,214,214,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,115,115,115,117,117,112,117,116,112,112,19,19,19,19,149,149,149,149,115,115,112,112,112,115,115,115,116,115,116,116,116,116,117,116,117,117,117,116,117,116,117,116,117,117,117,115,115,115,116,116,117,116,117,115,116,115,116,116,117,116,115,117,117,157,157,157,157,157,156,155,151,152,116,115,116,115,116,115,116,115,157,156,156,157,155,157,157,157,156,155,155,157,157,157,157,156,156,157,157,156,157,155,157,157,157,156,157,156,156,155,156,155,156,155,202,202,203,202,203,202,203,202,203,202,202,203,204,199,192,192,192,192,192,192,193,192,193,192,194,192,194,193,194,193,194,192,193,192,193,193,192,192,193,193,194,194,192,192,192,192,193,192,193,192,193,193,194,194,194,193,194,192,193,193,193,192,193,192,194,193,194,195,195,192,193,193,195,193,194,193,192,192,193,192,192,192,193,192,193,193,193,194,194,194,195,195,195,194,195,194,195,194,192,192,193,192,192,192,193,192,193,192,193,193,194,193,194,193,194,192,193,192,193,196,193,196,193,193,194,193,194,194,194 +,252,252,252,252,109,108,108,108,252,252,252,252,252,252,252,252,252,252,109,109,109,107,108,108,252,108,252,107,252,252,252,252,252,107,252,107,109,107,109,109,252,109,252,107,252,107,252,107,109,107,107,107,252,109,109,107,107,106,107,106,106,20,20,20,20,20,20,20,20,20,20,20,20,252,252,252,252,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,107,109,107,109,109,252,109,109,109,252,252,252,252,252,252,252,107,252,107,107,107,107,107,107,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,202,202,202,202,202,202,203,203,204,204,202,202,202,202,203,203,203,203,204,204,204,215,204,215,215,215,215,215,213,213,214,214,214,20,20,20,20,215,215,215,215,215,215,215,213,213,215,213,213,215,213,213,214,205,214,214,214,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,115,115,115,115,117,115,117,112,117,112,112,112,112,112,116,115,116,116,117,116,115,115,116,116,115,115,115,115,116,116,116,116,117,116,117,117,117,117,117,117,117,117,117,117,115,115,115,115,116,116,116,116,117,115,116,117,116,116,116,116,115,117,117,157,157,157,157,157,157,156,156,151,151,155,115,115,116,116,116,116,117,157,156,157,157,156,155,157,157,155,155,157,157,157,157,157,157,156,157,156,157,155,157,157,157,157,157,156,156,156,156,155,155,155,155,202,202,202,202,202,203,203,202,202,203,202,204,199,192,192,192,192,192,192,192,192,192,192,192,192,194,194,194,194,194,192,192,192,192,192,193,193,193,193,194,194,199,192,192,192,192,192,193,192,193,193,194,194,194,192,193,192,193,192,193,192,193,192,194,193,194,194,195,195,193,193,193,193,194,194,192,192,193,192,193,192,192,192,193,193,193,193,194,194,195,195,195,195,195,195,195,195,199,192,192,192,193,192,192,192,193,193,193,193,193,193,194,193,194,194,192,192,193,192,193,193,193,193,194,193,194,193,194,194 +,252,252,252,252,252,108,108,252,108,252,252,252,252,252,109,252,252,252,109,109,109,252,107,108,108,252,108,252,107,252,109,252,252,252,107,252,107,109,107,109,109,252,109,107,107,252,107,252,107,107,107,252,109,109,107,109,107,107,106,106,106,106,20,20,20,20,20,20,20,20,20,20,20,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,107,107,252,107,252,109,252,109,252,109,252,109,252,109,252,109,252,107,107,107,107,107,109,107,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,202,202,202,203,202,203,202,203,203,204,202,203,202,203,203,204,203,204,204,204,204,204,215,204,215,215,213,215,214,215,215,214,214,20,20,20,215,215,215,212,215,213,215,215,215,215,215,215,215,215,214,214,214,215,213,214,214,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,115,115,116,115,116,117,115,116,112,116,117,112,116,115,115,115,116,116,117,115,117,115,116,115,117,115,116,115,116,116,117,116,117,116,117,116,117,115,117,115,116,116,117,115,115,115,115,115,116,115,115,115,117,115,116,116,117,115,116,116,117,115,117,157,157,157,157,155,151,157,156,155,156,151,152,116,117,116,117,116,117,117,157,155,157,156,156,155,157,156,155,155,157,157,157,157,157,156,157,156,157,155,157,156,157,157,157,156,157,156,156,155,156,155,155,155,202,202,203,202,203,202,203,202,203,202,202,199,199,192,192,192,193,193,192,192,194,192,193,192,193,193,194,193,194,193,192,192,192,192,193,192,193,193,194,193,194,192,192,192,192,192,193,192,193,193,194,194,194,192,192,192,193,192,193,192,193,192,194,193,194,194,194,195,195,192,193,193,194,193,192,192,193,192,193,192,192,192,193,192,193,193,194,193,194,194,195,194,195,195,195,195,194,193,193,192,193,192,197,192,193,192,193,192,193,193,198,193,194,194,198,192,193,193,197,192,193,193,194,193,194,193,194,193,194 +,252,252,252,252,109,108,108,108,109,252,252,252,252,252,252,252,252,252,109,109,109,109,109,107,108,108,252,252,252,252,252,252,252,107,252,107,252,107,109,109,109,109,109,107,107,107,252,107,109,109,107,107,107,109,109,107,107,107,107,106,106,106,106,20,20,20,20,20,20,20,20,20,20,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,107,107,107,109,109,109,109,252,109,252,109,252,252,252,252,252,252,252,107,107,107,107,107,107,107,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,202,202,202,203,203,204,203,204,203,202,204,202,202,203,203,203,203,204,204,204,204,204,204,204,215,215,215,215,215,213,214,215,213,214,20,20,20,215,215,215,215,212,215,215,215,215,215,213,215,213,215,214,213,214,215,213,213,214,213,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,115,115,115,115,115,115,116,116,115,117,112,117,112,116,115,115,115,116,116,116,115,117,117,116,116,117,115,115,115,116,116,116,117,117,117,116,116,117,115,116,116,117,115,115,115,115,115,116,115,115,115,115,115,116,115,117,116,117,117,117,116,116,115,116,157,157,157,157,156,156,155,151,156,156,156,155,151,155,116,117,117,117,157,156,156,157,156,156,155,155,157,155,156,157,157,157,157,157,156,157,157,156,156,155,156,157,157,157,157,157,156,155,156,157,156,156,155,155,202,202,202,202,202,203,203,202,202,203,199,199,192,192,192,192,192,193,193,193,192,192,192,193,193,192,193,194,194,194,192,192,192,193,193,193,193,193,193,194,192,192,192,193,192,193,193,193,193,193,194,194,192,192,192,192,192,193,192,194,193,193,193,194,194,194,195,195,195,195,193,193,194,192,192,193,192,192,192,193,192,193,193,193,193,193,194,194,194,195,195,195,195,195,195,195,194,192,192,193,192,192,192,193,192,193,193,193,193,193,193,194,194,192,192,192,193,193,193,193,193,193,193,194,193,194,194,194,194 +,252,252,252,252,252,108,108,252,108,252,252,252,252,252,109,252,252,252,252,109,109,109,109,252,107,252,109,252,109,252,252,252,109,252,252,252,107,252,107,109,109,252,109,108,107,252,107,252,109,252,107,107,107,252,107,107,107,107,107,107,106,106,106,20,21,20,20,20,21,20,21,20,21,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,109,107,252,107,252,107,252,109,252,109,252,109,252,109,252,109,252,107,109,107,107,107,107,107,107,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,202,202,202,203,202,203,203,204,204,202,203,202,202,203,202,203,203,204,204,204,203,204,204,204,204,204,215,215,202,215,213,214,215,215,214,21,20,215,215,212,215,212,215,215,215,213,213,213,213,212,205,213,211,213,213,215,205,214,213,214,211,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,115,115,115,115,116,115,115,115,116,116,117,116,112,117,116,115,116,115,116,116,117,115,116,117,117,116,117,115,116,115,115,115,116,116,117,117,116,115,117,115,115,115,116,115,116,115,116,115,116,115,115,115,117,115,116,115,116,116,117,116,117,117,117,117,117,117,157,157,157,156,156,157,155,151,156,155,156,155,155,151,117,117,117,156,157,156,157,156,157,155,156,155,157,156,157,157,157,156,157,157,157,156,157,156,156,155,157,157,157,156,156,155,156,155,155,156,156,155,155,202,202,202,203,202,203,203,204,203,202,196,199,192,192,192,192,192,193,192,193,193,192,192,193,192,192,194,194,193,194,192,192,192,193,192,193,193,194,193,194,193,192,192,193,192,193,193,193,193,193,194,194,192,192,192,192,193,192,192,193,193,194,194,194,194,194,195,195,195,195,195,193,193,192,192,193,192,193,192,192,192,193,193,193,193,193,194,195,194,195,194,195,194,195,197,195,194,194,192,197,192,197,192,193,192,196,192,197,193,197,193,194,193,198,192,197,192,197,193,193,193,197,193,197,193,194,193,197,194,194 +,252,252,252,252,109,108,108,108,252,252,109,252,252,252,252,252,252,252,252,109,109,109,109,109,252,109,252,109,252,252,252,252,252,252,252,252,108,108,252,107,109,109,109,109,107,107,109,109,252,109,252,107,107,109,107,107,107,107,107,107,107,107,106,106,20,20,20,20,20,20,20,20,20,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,107,107,107,109,107,252,109,109,109,252,252,252,109,252,252,252,252,252,107,109,107,107,107,107,107,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,202,202,202,202,202,203,203,203,203,204,204,203,202,202,204,203,202,203,203,203,203,204,204,204,204,204,204,202,204,204,204,215,214,214,215,215,20,20,215,215,215,215,215,215,215,215,215,215,215,213,212,215,215,211,214,213,215,212,213,213,213,213,211,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,80,83,86,89,92,95,115,115,115,116,116,117,116,117,112,116,115,115,115,116,116,116,116,117,117,116,116,117,115,115,116,116,115,116,117,116,116,117,115,116,115,115,115,115,115,115,115,116,116,116,115,115,115,115,115,116,115,115,116,116,117,117,116,117,117,117,117,157,157,156,155,155,157,156,151,155,151,156,155,155,151,151,155,157,157,156,156,156,157,157,156,156,155,155,157,157,157,157,157,157,157,157,155,157,157,156,155,155,157,157,156,156,156,156,155,155,155,156,155,156,155,202,202,202,202,202,203,203,204,204,203,199,192,192,192,192,192,192,192,193,193,193,192,192,192,192,194,193,193,193,192,192,192,193,192,193,193,193,193,194,194,192,192,193,192,193,192,193,193,193,194,194,193,192,192,193,192,193,192,193,192,194,193,194,194,194,195,195,195,195,193,195,193,192,192,193,192,193,192,192,192,193,192,193,193,193,194,195,194,195,195,195,195,195,193,195,195,194,196,193,193,193,192,193,192,193,192,193,193,193,193,194,193,194,194,192,192,193,192,193,193,193,193,193,193,194,193,194,194,193,194 +,252,252,252,252,252,109,108,108,108,252,108,252,252,252,109,252,252,252,252,252,109,252,109,109,109,252,109,252,109,252,109,252,252,252,252,252,107,108,108,109,109,252,109,108,107,252,107,252,107,252,109,109,109,252,107,107,107,107,107,107,107,107,107,106,106,20,21,20,21,20,21,20,21,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,107,107,252,107,252,107,252,107,252,109,252,109,252,109,252,109,252,252,109,107,107,107,107,107,107,107,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,202,203,202,203,202,203,203,204,203,204,204,202,202,204,204,203,202,203,203,204,209,202,203,204,209,204,202,202,203,203,203,204,203,213,214,204,215,215,20,215,215,215,215,212,215,212,215,215,215,215,215,213,212,215,212,211,213,215,205,212,212,213,211,213,211,21,20,20,20,20,20,20,35,38,41,44,46,32,34,37,38,41,42,45,46,32,33,48,51,54,57,60,62,44,45,47,32,33,34,36,48,50,51,54,55,58,59,62,62,48,53,58,62,37,38,41,41,44,48,50,51,53,54,57,57,60,61,63,115,115,115,116,115,116,115,116,115,115,115,115,115,116,115,116,115,116,116,117,117,117,117,117,157,157,157,157,156,156,157,157,156,156,155,151,155,156,155,155,155,151,156,157,199,199,199,193,156,156,155,156,157,157,157,157,156,157,157,157,156,155,157,157,156,156,155,157,156,157,156,156,155,156,155,155,155,156,155,155,202,202,202,203,202,203,203,204,202,199,192,193,192,193,192,193,192,193,193,193,193,192,192,192,193,194,193,194,192,192,192,193,192,193,193,194,194,194,193,192,192,193,192,193,192,193,192,194,194,194,194,192,192,193,192,193,192,193,193,193,193,194,194,194,194,195,195,195,195,195,194,194,192,192,193,192,192,192,193,192,193,193,193,193,194,195,194,195,194,192,192,195,193,195,194,195,193,196,192,197,192,197,193,197,192,197,193,197,193,197,194,198,194,198,192,197,193,197,193,197,193,197,193,197,193,197,194,193,194,194 +,252,252,252,252,252,252,108,108,108,108,109,252,252,252,252,252,252,252,252,252,109,109,109,109,109,109,252,109,252,109,252,252,252,252,252,252,252,252,108,107,109,109,109,109,107,107,109,107,109,109,252,109,109,109,109,107,107,107,107,107,107,107,107,106,106,20,20,21,20,20,20,20,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,107,107,109,107,109,109,252,109,252,109,252,252,252,252,252,252,109,107,109,107,107,107,107,107,107,20,20,20,20,20,21,20,20,20,20,20,20,20,21,20,20,20,20,20,20,20,21,20,20,20,20,20,20,20,21,20,20,20,20,20,20,20,21,20,20,20,20,20,20,20,21,20,20,20,20,20,20,20,21,20,20,20,20,20,20,20,21,20,20,20,20,20,20,20,21,20,20,20,20,20,20,20,21,20,20,20,20,20,20,20,21,20,20,20,20,20,20,20,21,20,20,20,20,20,20,20,21,20,20,20,20,20,20,20,21,20,20,20,20,20,20,20,21,20,20,20,20,20,20,20,21,20,20,20,20,20,20,20,21,20,20,20,20,20,20,20,21,20,20,20,20,20,20,20,21,20,20,20,20,20,20,20,21,20,20,20,20,20,20,202,202,202,202,202,203,203,210,208,208,208,208,210,209,209,203,209,203,203,203,203,209,204,209,209,204,203,202,203,203,203,204,204,208,204,211,214,204,215,20,215,215,212,212,215,212,215,215,215,215,215,215,215,213,211,212,215,211,213,215,215,212,212,213,211,213,211,211,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,33,34,35,37,38,39,40,41,42,44,45,46,47,32,34,35,37,39,40,42,44,45,47,32,33,33,34,35,35,36,37,38,38,39,39,40,41,42,42,43,44,44,45,46,48,50,52,55,56,59,61,63,157,157,157,157,157,157,156,156,157,155,156,156,156,151,151,151,151,156,155,155,151,157,192,199,193,197,193,198,156,156,155,157,157,157,157,156,156,155,157,156,155,157,156,155,157,155,156,157,156,156,156,156,155,155,155,156,155,155,155,203,202,203,202,203,203,204,202,199,192,196,192,193,192,196,192,193,192,193,193,192,192,192,193,194,193,193,193,193,192,193,193,193,192,193,194,194,194,192,192,193,192,193,192,193,193,196,193,194,194,197,192,193,192,193,192,193,193,197,193,194,193,194,194,195,195,195,195,197,194,193,192,192,193,192,193,192,192,192,193,193,193,193,194,198,194,195,194,192,192,193,193,193,193,195,194,197,196,193,193,193,193,192,193,193,193,193,193,193,194,194,193,194,192,192,193,193,193,193,193,193,193,193,193,194,194,193,194,198,194 +,252,252,252,252,252,252,107,109,108,252,108,252,108,252,252,252,109,252,252,252,252,109,109,252,109,252,109,252,109,252,109,108,109,252,252,252,252,252,252,108,252,109,109,109,109,108,107,252,107,252,109,252,109,109,109,109,109,107,107,107,107,107,107,107,107,107,21,20,21,20,21,20,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,107,252,107,252,107,252,109,252,109,252,109,252,109,252,252,252,107,109,107,109,107,107,107,107,107,107,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,202,202,208,202,202,202,209,210,208,203,208,203,208,208,209,202,209,203,203,203,208,208,211,209,208,209,202,210,203,209,203,209,208,209,208,208,211,214,215,20,212,212,212,212,212,215,212,215,215,212,215,215,215,205,213,205,211,212,211,213,215,205,212,212,213,211,213,212,211,211,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,21,36,37,40,32,34,35,37,38,40,41,43,44,46,47,45,45,46,46,47,46,47,157,157,157,157,156,157,156,156,157,157,156,156,155,156,155,156,155,155,151,151,155,155,151,199,193,196,193,193,198,198,198,198,156,156,155,156,155,155,155,157,156,156,155,155,157,156,155,157,156,156,155,156,155,156,155,155,155,156,155,203,202,203,202,203,203,204,202,199,192,196,192,196,193,193,196,196,193,194,193,194,192,193,193,194,192,193,192,193,192,193,192,193,193,193,193,194,194,195,192,192,192,193,192,193,193,194,194,194,194,194,192,192,192,192,193,193,193,193,193,193,193,194,194,194,195,195,195,198,194,193,192,192,193,192,193,192,192,192,193,192,193,193,194,198,194,195,194,192,192,193,192,193,193,195,194,195,195,196,193,197,192,197,193,196,192,197,193,197,194,198,194,198,193,198,192,197,193,197,193,197,193,197,193,197,193,198,194,198,194,194 +,252,252,252,252,252,252,108,108,108,108,109,108,252,252,252,109,252,252,252,252,108,107,108,107,109,107,109,107,252,109,252,109,252,252,252,252,252,252,252,109,108,252,252,252,109,107,108,107,107,107,107,107,107,107,107,107,109,109,107,107,107,107,107,107,107,107,107,20,20,21,20,21,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,107,107,107,107,252,109,109,109,252,252,252,252,252,252,252,107,109,107,109,107,109,107,107,107,107,107,107,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,21,20,20,20,21,20,21,20,202,210,210,210,208,210,210,209,209,208,208,203,203,203,208,208,208,203,203,209,208,208,208,208,211,209,210,209,210,208,203,209,208,208,209,209,208,208,211,214,215,212,212,212,215,212,215,212,212,212,215,212,212,215,212,215,215,212,211,211,211,213,212,215,212,212,211,211,211,211,211,211,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,21,21,20,21,21,21,20,21,21,21,20,21,21,21,21,21,21,21,21,21,21,21,41,42,43,44,45,46,47,43,43,45,45,46,47,156,156,156,156,156,156,156,155,155,156,156,155,155,156,155,155,155,155,155,151,151,155,155,155,155,199,196,193,196,193,193,198,198,198,156,156,156,156,156,155,155,155,156,155,155,156,156,155,155,156,156,156,156,156,156,155,155,155,155,155,155,202,203,202,203,203,204,202,199,192,196,192,196,193,196,193,196,193,193,194,194,192,193,193,194,194,193,192,193,192,193,193,193,193,194,194,194,194,194,192,192,192,193,192,193,193,196,194,197,193,196,193,192,192,193,192,193,193,197,193,197,193,197,193,194,195,195,195,198,198,193,194,192,193,193,194,194,192,192,193,193,193,193,193,198,198,197,194,192,192,192,192,193,193,193,194,195,194,196,196,197,193,193,193,196,193,193,193,197,194,194,194,198,194,194,192,197,192,193,193,197,193,193,193,197,194,194,194,194,194,194,194 +,252,252,252,252,252,252,107,108,108,252,108,252,108,252,252,252,252,252,252,108,107,252,107,108,107,252,107,252,107,252,107,252,109,252,107,252,252,252,109,252,109,252,109,252,107,252,107,108,107,252,107,107,107,252,107,109,107,252,107,252,107,107,107,107,107,107,107,106,107,20,21,20,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,107,252,107,252,107,252,107,252,109,252,109,252,252,252,109,109,107,109,107,109,107,107,107,107,107,107,107,107,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,210,210,209,209,208,209,210,210,209,209,208,210,203,203,208,209,208,208,203,203,208,209,208,209,208,211,208,209,209,209,210,210,208,209,208,209,208,209,208,215,211,214,212,212,212,212,212,212,212,212,212,212,212,212,212,212,215,215,212,212,211,211,211,212,211,215,215,205,211,211,211,211,211,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,21,21,45,46,46,47,32,38,37,38,38,39,38,39,40,156,156,156,156,156,156,156,155,156,155,156,156,156,155,155,155,155,155,155,155,155,155,155,155,151,151,151,192,196,193,196,197,193,193,198,198,198,198,156,155,156,155,156,155,156,155,156,155,156,155,156,155,157,156,156,155,156,155,156,155,155,155,155,155,203,203,203,202,203,203,203,199,196,193,196,193,196,196,196,196,193,193,194,193,193,193,194,194,192,192,193,196,193,193,193,193,194,193,194,194,195,192,192,192,193,192,193,193,193,194,197,193,196,194,192,192,192,192,193,193,193,193,197,193,193,193,194,194,195,195,198,195,193,193,192,193,192,193,193,194,192,193,192,193,193,193,194,194,193,194,192,192,193,192,193,193,195,193,195,194,197,196,196,193,197,193,196,193,197,193,197,194,198,194,198,194,198,193,197,193,197,193,197,193,197,193,197,193,197,193,198,194,198,194,198 +,252,252,252,252,252,252,108,107,108,108,109,252,109,252,252,252,252,252,108,107,108,107,108,107,108,107,109,108,109,107,109,109,109,109,252,252,252,252,252,252,252,109,252,107,252,107,252,107,252,107,107,107,107,107,107,107,107,107,109,107,252,107,107,107,107,107,107,107,106,107,21,21,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,107,109,107,252,109,252,252,252,252,252,252,109,107,109,107,109,107,109,107,107,107,107,107,107,107,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,202,202,209,209,209,209,208,210,209,209,208,210,210,210,209,209,208,208,208,203,209,209,208,209,208,208,211,208,209,209,208,210,209,209,208,208,209,209,208,208,208,215,211,211,212,212,212,212,212,212,212,212,212,215,212,215,215,212,212,212,212,212,211,211,212,212,211,212,212,212,212,211,211,211,211,20,21,20,21,20,21,21,21,20,21,20,21,20,21,21,21,20,21,20,21,20,21,21,21,20,21,20,21,20,21,21,21,20,21,20,21,20,21,20,21,20,21,20,21,20,44,20,45,20,32,34,36,37,40,41,43,45,32,33,34,35,37,38,39,40,41,47,47,53,54,56,57,59,60,62,63,48,49,51,52,54,55,57,58,60,61,63,48,50,52,58,60,61,63,48,50,52,54,55,199,193,196,193,193,193,197,198,198,197,198,198,155,155,155,155,155,155,155,155,155,155,155,155,155,156,156,156,156,155,155,155,155,155,155,155,155,202,203,202,203,203,203,199,196,193,196,196,196,197,196,196,197,197,194,194,193,193,193,193,196,192,193,196,193,193,193,193,193,193,194,195,195,193,192,192,193,192,193,193,196,196,197,194,197,196,193,194,192,193,193,193,192,193,197,193,197,193,196,194,195,194,198,195,197,193,193,192,192,192,192,193,192,193,193,193,193,193,194,194,198,194,192,192,193,192,193,193,193,193,195,195,197,197,196,196,196,193,196,193,193,193,197,193,197,194,198,194,194,194,197,193,197,192,197,193,193,193,197,193,197,193,198,194,198,194,198,194 +,252,252,252,252,252,252,252,108,107,109,108,252,108,252,252,252,252,252,108,108,107,108,107,109,107,252,107,109,108,109,108,252,107,109,109,252,109,252,252,252,252,252,252,252,107,252,107,252,252,252,109,252,107,107,107,252,107,252,107,109,107,252,107,107,107,107,107,107,107,106,107,107,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,109,107,252,107,252,107,252,109,252,109,252,109,252,107,109,107,109,107,109,107,109,107,107,107,107,107,107,107,21,20,21,20,21,21,21,20,21,20,21,20,21,20,21,20,21,21,21,20,21,20,21,20,21,20,21,20,21,21,21,20,21,20,21,20,21,20,21,20,21,21,21,20,21,20,21,20,21,20,21,20,21,21,21,20,21,20,21,20,21,20,21,20,21,21,21,20,21,20,21,20,21,20,21,20,21,21,21,20,21,20,21,20,21,20,21,20,21,21,21,20,21,20,21,20,21,20,21,20,21,21,21,20,21,20,21,20,21,20,21,20,21,21,21,20,21,20,21,20,21,20,21,20,21,21,21,20,21,20,21,20,21,20,21,20,21,21,21,20,21,20,21,20,21,20,21,20,21,21,21,20,21,20,21,20,210,210,209,210,209,209,208,208,208,208,209,210,209,209,208,208,209,210,203,203,209,209,209,209,208,209,208,209,211,209,208,209,208,209,209,208,208,209,208,209,208,208,208,215,211,212,212,212,212,212,212,212,212,212,212,215,211,215,215,212,212,212,212,212,211,211,211,212,212,212,212,212,211,212,211,212,211,211,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,47,32,34,35,38,39,42,43,45,32,35,37,40,42,45,47,62,63,48,49,52,53,56,57,60,61,63,48,50,51,54,55,58,59,61,63,48,49,52,53,56,57,60,61,63,199,196,193,196,193,197,197,198,197,198,197,198,198,156,155,155,155,155,155,156,156,156,155,155,155,156,155,155,155,155,155,155,155,155,155,155,203,203,203,203,203,203,196,192,196,196,196,196,196,196,196,197,196,193,197,194,194,193,193,192,192,193,196,193,196,193,193,194,193,194,194,195,195,192,192,193,192,193,193,197,193,196,194,197,196,196,194,192,193,192,193,194,194,196,193,197,193,197,194,194,194,195,195,197,193,193,192,193,193,192,193,193,193,193,193,193,194,194,194,198,194,193,194,193,192,193,193,195,193,195,194,195,194,197,196,197,193,197,193,197,193,198,193,196,194,197,194,198,194,198,193,197,193,197,193,197,193,197,193,197,193,198,193,198,194,198,194,198 +,252,252,252,252,252,252,252,252,108,107,108,108,109,252,109,252,252,252,252,108,108,107,108,107,108,107,108,108,109,108,109,108,252,109,109,109,252,252,252,252,252,252,252,252,252,252,252,107,252,107,252,109,252,107,107,107,107,107,107,107,252,107,252,107,252,252,107,107,108,107,106,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,107,252,109,252,109,252,252,252,252,252,252,109,107,109,107,109,107,109,107,107,107,107,107,107,107,107,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,210,210,209,209,209,209,208,208,209,209,208,210,209,209,208,210,209,209,209,209,209,209,209,209,209,209,209,209,208,208,208,209,208,208,211,209,208,209,209,209,208,208,208,211,211,208,211,212,212,212,212,212,212,212,212,212,212,212,212,211,212,212,212,212,212,212,211,211,212,212,212,212,211,211,211,211,211,211,211,211,21,21,21,20,21,21,21,20,21,21,21,20,21,21,21,20,21,21,21,20,21,21,21,20,21,21,21,20,21,21,21,20,21,21,21,20,21,21,21,20,21,21,21,20,21,21,21,20,21,21,21,20,41,20,42,43,20,44,45,45,47,47,32,33,34,35,36,37,38,32,33,34,35,36,37,38,40,41,21,42,44,45,46,47,58,58,59,59,60,60,61,61,62,62,63,63,196,196,196,196,197,197,197,197,198,198,198,198,198,198,75,75,76,77,78,78,79,53,53,53,54,156,156,155,156,155,155,155,155,155,155,155,203,202,203,203,203,196,192,196,196,196,196,196,198,198,193,193,193,193,198,194,194,197,192,196,193,196,193,196,193,193,193,193,194,195,195,195,192,192,193,192,193,193,197,193,196,193,196,193,196,193,192,193,194,193,196,193,197,193,197,193,194,193,194,195,195,198,198,193,193,192,193,192,192,193,193,193,193,193,193,198,193,198,198,194,193,192,192,194,193,193,193,193,195,195,195,194,197,196,196,193,197,193,197,193,197,193,197,194,198,194,198,194,197,194,197,193,197,193,197,193,197,193,196,193,197,194,198,194,198,194,198,194 +,252,252,252,252,252,252,252,252,252,108,107,109,108,252,108,252,252,252,252,108,108,109,107,108,107,109,107,109,108,252,108,252,108,252,108,252,109,252,107,252,109,252,109,252,252,252,252,252,107,252,107,252,109,252,107,107,107,252,107,252,107,252,107,252,107,252,107,107,252,108,107,107,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,252,107,252,107,252,107,252,109,252,109,252,252,252,107,109,107,109,107,109,107,107,107,109,107,107,107,107,107,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,210,209,210,209,209,208,208,210,210,208,209,208,210,209,210,209,210,210,210,210,210,210,210,209,209,208,209,208,209,208,208,209,209,208,209,211,209,208,209,208,209,208,209,208,211,211,208,211,212,212,212,212,212,212,212,212,212,212,212,211,211,212,212,212,212,211,212,211,211,211,212,212,212,211,211,211,211,211,212,211,211,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,33,20,34,20,35,35,37,37,38,38,39,39,40,40,42,42,43,43,44,44,45,45,47,47,32,33,35,35,37,37,39,40,42,42,44,44,46,47,63,48,50,51,54,55,58,59,62,62,59,199,196,196,196,196,197,197,198,197,198,197,198,198,198,198,198,69,71,71,72,73,74,74,76,76,78,78,79,52,53,52,54,53,55,54,55,203,203,203,203,196,199,196,196,196,196,196,196,197,198,198,197,193,198,197,194,194,196,196,193,196,193,196,193,196,194,193,194,193,195,195,196,192,193,193,193,193,197,193,196,196,196,194,196,196,197,193,197,193,196,193,197,197,197,193,197,194,194,194,194,195,198,197,193,192,193,193,193,193,193,193,193,193,193,198,194,198,198,194,193,194,196,194,193,196,193,197,195,193,195,194,197,196,196,193,197,193,197,193,197,193,198,193,198,194,198,194,198,194,197,193,197,193,197,193,197,193,197,193,197,193,198,193,198,194,198,194,194 +,252,252,252,252,109,252,252,252,252,252,108,107,109,108,109,252,109,252,252,108,108,107,108,107,108,107,108,108,109,108,109,108,109,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,107,252,107,252,109,109,109,108,107,107,107,107,107,252,107,252,252,107,107,252,252,108,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,109,107,107,107,107,109,107,252,252,252,252,252,252,252,252,109,109,109,107,109,107,109,107,107,107,107,107,107,107,107,107,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,140,141,209,209,209,208,208,208,210,208,209,208,208,209,210,210,210,210,210,209,210,209,209,208,208,208,209,209,209,209,209,208,209,209,209,208,211,209,209,208,208,208,209,208,208,211,211,208,208,211,212,212,212,212,212,212,212,212,212,212,212,211,211,212,212,212,212,212,212,211,211,212,212,212,212,212,211,211,211,211,211,211,211,21,21,21,21,21,21,21,21,32,34,37,39,42,44,47,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,32,34,36,38,41,42,45,47,33,33,34,34,35,35,36,36,37,37,38,38,39,39,40,40,41,42,42,43,43,44,44,45,46,46,47,47,32,33,35,36,37,38,40,41,42,43,45,46,47,53,54,54,196,196,196,196,197,197,197,197,198,198,198,198,198,198,198,198,198,62,63,63,64,65,67,68,69,70,72,73,74,75,77,78,79,51,52,52,203,203,203,203,199,196,196,196,196,196,197,193,193,193,198,198,193,197,195,198,194,196,196,196,196,196,193,196,193,197,194,195,195,195,195,192,193,196,193,196,193,193,197,193,198,194,197,196,197,193,197,193,196,193,197,194,197,193,194,193,194,194,195,195,198,197,193,196,193,193,193,193,193,193,193,193,193,198,194,198,198,198,198,193,193,196,192,196,193,197,193,193,195,195,196,196,196,193,197,193,197,193,197,193,197,193,198,193,198,194,198,194,197,194,197,193,197,193,197,193,196,193,197,193,197,193,198,194,198,194,198,194 +,252,252,252,252,252,252,252,252,252,252,107,108,108,109,252,252,108,252,108,252,108,252,109,252,107,109,108,109,108,252,108,252,108,252,108,252,108,252,107,252,108,252,109,252,252,252,252,252,109,252,107,252,107,252,107,252,108,252,252,252,108,252,108,252,108,252,108,252,252,108,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,107,107,252,107,252,107,252,107,252,109,252,252,252,252,109,109,109,107,109,107,107,107,109,107,109,107,107,107,107,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,21,21,20,21,21,21,20,21,20,21,21,21,20,21,21,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,21,21,21,21,20,21,20,21,21,21,21,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,21,21,20,21,21,21,20,21,20,21,21,21,20,21,21,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,20,21,20,21,21,21,21,21,20,21,21,21,20,21,21,21,21,21,20,21,139,203,140,209,209,208,208,209,209,208,209,208,208,209,210,210,210,209,210,209,210,209,209,208,209,208,209,211,208,211,209,208,209,209,209,208,209,211,209,211,209,208,208,208,209,208,208,211,211,211,211,211,211,48,49,50,51,52,53,54,55,56,57,32,34,37,38,41,42,45,47,211,211,211,32,34,34,36,37,39,40,42,42,45,45,47,20,21,21,21,20,21,21,21,20,21,21,21,20,21,21,21,20,21,21,21,20,21,21,21,20,21,21,21,20,21,21,21,20,21,21,21,20,21,21,21,20,21,21,21,20,21,21,21,20,21,21,21,20,32,32,33,33,34,34,35,35,36,36,37,37,38,38,39,39,40,40,41,41,42,42,43,43,44,44,45,45,46,46,47,47,48,48,49,49,50,50,196,196,196,196,197,196,197,197,198,197,198,198,198,198,198,198,198,198,198,60,199,192,196,62,63,64,65,65,67,67,69,69,71,199,196,72,203,203,203,203,199,196,196,196,196,196,193,193,198,197,198,197,198,197,195,197,198,194,196,196,196,196,193,196,194,197,194,197,195,195,195,192,193,196,193,193,193,193,197,197,196,194,198,196,196,193,197,197,196,193,197,194,197,193,197,197,194,194,195,195,198,198,194,197,196,197,193,197,193,197,193,197,193,198,194,198,198,194,198,198,193,194,193,196,193,197,193,197,195,197,195,196,197,193,197,193,197,193,197,193,197,193,198,193,198,194,198,194,198,193,197,193,197,193,197,193,197,193,197,193,198,193,198,193,198,194,198,198,198 +,252,252,252,252,109,252,252,252,252,252,252,108,108,108,109,108,252,252,252,252,252,252,252,252,108,107,108,108,108,108,108,108,252,108,109,108,252,252,252,107,252,252,252,252,252,252,252,252,252,252,252,107,252,107,108,107,252,252,252,252,252,252,108,108,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,107,107,109,107,109,107,252,252,252,252,252,252,252,252,109,107,109,107,109,107,107,107,107,107,109,107,107,107,21,21,21,21,20,21,21,21,21,21,21,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,21,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,21,21,21,21,21,21,20,21,21,21,21,21,21,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,21,21,21,21,21,21,20,21,21,21,21,21,21,21,21,21,21,21,20,21,21,21,21,21,21,20,21,21,21,40,20,48,50,51,54,55,57,59,61,63,63,139,61,62,208,48,209,209,208,208,209,50,51,210,210,210,210,210,209,209,209,209,208,208,208,209,208,208,208,211,211,209,209,209,209,208,208,208,208,211,211,209,208,208,208,208,208,208,208,211,211,205,211,205,32,34,36,37,40,41,43,45,47,32,33,34,35,36,37,38,40,41,42,42,211,211,211,211,211,211,211,211,21,21,21,21,21,21,21,32,37,42,47,21,21,21,21,21,21,21,32,35,38,41,44,47,21,21,21,21,32,46,21,21,21,21,21,21,32,34,37,39,42,44,47,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,32,33,33,34,34,35,35,36,36,37,37,38,38,39,39,40,40,41,41,42,42,43,43,44,44,45,45,46,46,47,48,49,49,49,196,196,196,196,196,197,197,197,197,198,197,198,198,197,198,198,198,198,198,192,196,196,197,197,61,62,63,63,64,65,66,66,199,196,196,196,196,196,196,196,196,196,196,198,198,197,193,193,197,198,198,198,198,198,197,195,195,196,196,196,196,197,197,197,197,195,195,195,197,195,195,193,196,193,196,193,196,193,193,196,193,197,198,196,196,197,193,196,193,197,193,197,197,197,193,198,194,195,195,194,195,194,197,196,196,193,197,193,197,193,197,197,197,194,198,194,197,198,198,198,193,196,196,193,197,197,197,195,195,195,196,196,193,197,196,197,193,197,197,197,193,197,197,197,193,198,198,198,194,197,197,197,193,197,196,196,193,197,197,197,193,198,198,198,194,198,198,194,198 +,252,252,252,252,252,252,252,252,252,108,252,108,108,109,108,109,108,252,108,252,252,252,108,252,107,109,107,109,108,252,108,109,108,252,108,252,108,252,108,252,108,252,108,252,252,252,107,252,107,252,109,108,107,252,107,252,107,252,108,252,108,252,108,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,107,252,107,252,107,252,107,252,107,252,252,252,109,252,252,109,107,109,107,109,107,107,107,109,107,109,107,109,107,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,21,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,21,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,21,32,21,34,21,36,20,38,21,41,43,43,20,36,47,36,57,58,59,60,62,63,63,63,209,49,130,130,130,48,210,210,210,210,209,210,209,210,209,209,208,209,208,209,208,208,211,211,208,209,211,209,208,209,208,209,208,209,208,209,209,209,208,208,208,209,208,209,208,211,211,208,211,211,21,215,215,215,215,213,212,215,215,211,214,213,215,212,213,213,213,213,211,211,211,211,212,211,211,211,21,211,21,39,47,21,21,20,21,21,21,21,21,21,21,20,21,21,21,21,21,21,21,20,21,21,21,21,21,21,21,20,21,21,21,21,21,21,21,20,21,21,21,21,21,21,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,32,32,33,33,34,34,35,35,36,36,37,37,38,38,39,39,40,40,41,41,42,42,43,43,44,44,45,45,46,46,47,47,48,48,49,196,196,196,196,196,197,197,197,196,197,197,198,197,198,197,198,198,198,196,196,196,197,197,198,60,62,61,62,62,199,199,196,192,198,197,198,198,196,196,196,197,196,197,198,193,198,193,198,197,198,198,197,197,195,197,195,196,197,196,197,196,194,196,194,197,195,197,195,195,193,196,193,196,193,196,193,193,196,193,197,197,198,196,197,197,197,193,196,196,197,194,197,197,197,194,198,198,198,195,195,197,194,197,196,197,193,197,193,197,193,198,194,198,194,198,198,197,198,194,197,196,193,196,197,197,198,197,195,197,196,193,197,193,197,193,197,193,197,193,197,193,198,194,198,194,198,194,198,194,197,193,197,193,197,193,197,193,197,193,198,193,198,193,198,198,194,198,198 +,109,252,109,252,252,252,252,252,252,252,108,252,108,108,108,108,109,108,109,252,252,252,252,252,252,108,108,108,108,107,108,107,108,107,252,108,252,107,252,252,252,252,252,252,252,252,252,107,252,107,252,107,108,107,108,107,252,108,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,107,107,107,109,107,252,109,252,252,252,252,252,252,252,252,109,107,109,107,109,107,107,107,109,107,109,107,107,21,21,21,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,20,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,21,21,21,20,21,21,20,21,21,20,21,21,21,21,21,21,21,21,45,21,36,20,37,21,38,38,59,60,62,63,62,32,36,40,43,47,210,210,54,210,210,209,210,209,209,209,209,208,208,208,208,208,208,211,211,211,211,208,211,211,32,33,34,35,35,37,37,38,39,40,41,42,42,44,44,45,46,47,212,215,215,215,213,21,212,21,32,39,46,21,213,213,215,205,214,213,214,21,211,211,213,32,211,39,43,47,47,21,21,21,21,21,21,21,21,21,32,35,38,41,44,47,21,32,37,42,47,44,44,44,44,44,44,44,44,44,44,44,32,36,39,43,47,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,32,32,32,32,33,33,33,34,34,34,35,35,36,36,37,37,37,38,38,39,39,39,40,40,41,41,42,42,43,43,43,44,44,44,45,45,46,46,47,47,48,48,49,49,196,196,196,196,197,196,196,197,197,198,197,197,198,198,198,197,198,198,197,196,196,196,197,197,198,60,61,61,199,192,196,192,197,197,197,197,198,198,198,198,196,197,198,198,198,197,197,197,198,198,198,197,195,197,195,195,194,197,198,198,197,197,197,197,195,197,195,195,195,196,193,196,193,193,193,196,193,196,197,194,198,196,197,196,197,193,196,193,197,194,197,197,198,194,198,194,198,195,195,195,197,196,193,197,196,197,193,197,197,197,194,198,198,198,198,198,198,198,198,197,196,196,193,197,197,198,198,197,196,196,196,196,196,196,197,197,197,197,197,197,197,197,198,197,198,196,198,198,198,197,197,196,196,196,197,197,197,197,197,197,198,198,198,194,198,198,198,194 +,252,109,252,252,252,252,252,252,252,252,252,108,252,252,252,109,108,252,108,252,108,252,109,252,109,108,108,109,108,109,108,252,108,252,108,252,108,252,108,252,108,252,108,109,108,252,252,252,252,252,108,108,108,108,107,252,107,252,108,252,108,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,252,107,252,107,252,107,252,109,252,109,252,252,252,252,252,252,109,107,109,107,107,107,109,107,109,107,109,107,107,21,40,21,41,21,21,21,43,21,44,21,45,21,21,21,32,21,34,21,36,21,21,21,39,21,32,21,35,21,21,21,39,21,41,21,43,21,21,21,47,21,46,21,34,21,21,21,35,21,38,21,41,21,21,21,46,21,32,21,20,21,21,21,32,21,35,21,38,21,21,21,44,21,47,21,36,21,21,21,37,21,38,21,38,21,21,21,39,21,40,21,41,21,21,21,47,21,42,21,34,21,21,21,38,21,40,21,43,21,21,21,47,21,33,21,35,21,21,21,39,21,41,21,43,21,21,21,46,21,37,21,37,21,21,21,38,21,38,21,20,21,21,21,39,21,42,21,45,32,34,35,37,38,40,41,43,44,46,47,210,210,52,52,209,55,57,210,209,210,209,209,208,209,208,208,208,208,208,208,211,211,211,211,208,211,208,208,21,209,215,208,215,213,214,215,21,214,215,212,211,211,211,211,211,37,40,41,44,45,47,213,215,213,215,32,34,35,37,38,40,41,213,211,211,213,211,211,21,211,21,21,21,21,21,32,37,41,47,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,45,45,45,45,45,45,45,45,45,32,35,40,43,47,32,33,32,33,32,32,32,33,33,34,33,34,34,35,35,36,35,36,36,37,37,38,37,39,38,39,39,40,39,41,40,41,41,42,42,43,42,43,43,44,44,45,44,45,45,46,46,47,46,47,48,49,48,49,49,50,50,196,196,196,196,196,196,197,197,198,198,198,197,198,198,198,197,198,198,197,196,197,197,198,197,198,60,192,192,196,192,197,196,197,197,198,197,198,198,198,196,197,197,198,198,198,197,198,197,198,197,198,197,195,195,195,196,198,197,198,196,197,197,195,197,195,195,195,193,193,196,193,197,193,197,193,196,197,197,198,198,196,196,198,197,198,196,196,196,197,197,197,197,198,198,198,198,195,195,194,196,194,197,193,197,193,197,197,198,197,198,194,198,198,197,198,197,198,198,197,196,193,196,197,197,198,198,197,196,196,193,197,193,197,193,197,193,197,193,198,194,198,194,198,193,198,194,198,198,197,193,196,193,197,193,197,193,197,193,198,193,198,194,198,198,198,198,198 +,109,252,109,252,252,252,252,252,252,252,108,252,108,252,108,108,109,108,109,108,252,252,252,252,252,108,108,108,108,108,108,108,109,108,108,108,252,108,252,108,252,252,108,108,252,109,252,252,252,252,109,108,108,108,108,108,252,252,252,252,252,252,108,108,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,107,107,252,109,252,109,252,252,252,252,252,252,252,252,109,107,109,107,109,107,107,107,109,109,109,109,109,107,21,21,41,20,21,21,43,21,21,20,45,21,21,21,35,20,21,21,39,21,21,21,34,21,21,21,42,21,21,21,45,21,21,21,39,21,21,21,32,20,21,21,41,21,21,20,33,21,21,21,36,21,21,21,39,21,21,21,33,21,21,21,33,20,21,21,36,21,21,20,38,21,21,21,41,21,21,21,44,21,21,20,47,21,21,21,47,21,21,21,46,21,20,21,45,21,21,21,43,20,21,21,43,21,21,20,44,21,21,21,34,20,21,21,38,21,21,21,41,21,21,21,45,20,21,21,32,21,21,20,32,21,21,21,36,21,21,21,40,21,21,20,33,21,21,34,36,36,37,38,39,39,40,41,42,43,44,44,48,49,50,51,53,54,55,56,57,58,60,60,62,63,48,49,51,51,53,54,55,56,32,33,34,35,215,215,215,215,211,211,215,215,215,215,215,215,215,215,215,215,215,212,215,213,46,46,46,46,46,46,46,46,32,212,21,215,213,214,46,46,46,46,46,46,46,46,46,46,47,21,21,21,21,21,21,47,47,47,46,46,46,46,46,46,46,46,46,46,47,47,47,47,47,32,32,32,32,32,33,33,33,33,33,33,33,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,38,38,38,38,39,39,40,40,40,40,41,41,41,41,42,42,42,42,43,43,44,44,44,44,45,45,45,46,46,46,47,47,47,48,49,49,49,49,50,50,51,51,52,196,196,196,197,196,196,196,197,197,198,197,198,198,197,197,198,197,198,193,197,197,197,197,198,198,198,192,196,192,196,196,197,197,197,197,198,198,198,196,197,197,198,198,198,197,197,197,195,195,197,197,196,197,197,197,198,198,198,198,197,197,197,197,195,197,195,197,196,196,196,193,197,197,196,196,197,194,198,197,198,196,196,197,198,193,197,194,197,196,197,197,198,197,198,195,198,198,198,197,196,196,196,197,196,197,197,197,197,198,197,198,198,197,198,197,198,198,198,197,193,196,193,197,198,198,197,196,196,196,196,196,197,197,197,197,197,197,197,197,197,197,197,197,196,198,198,198,198,197,196,196,197,196,197,197,197,197,197,197,198,198,198,194,198,194,198,198 +,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,108,109,108,109,108,252,108,252,252,108,108,108,108,109,108,109,108,252,108,252,108,252,108,252,108,108,108,108,108,252,108,252,108,252,108,252,108,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,107,107,107,252,107,252,107,252,107,252,109,252,109,252,252,252,252,252,252,109,107,109,107,109,107,107,107,109,107,109,107,109,107,37,21,41,21,44,21,32,21,42,21,46,21,32,21,37,21,42,21,32,21,33,21,35,21,35,21,37,21,37,21,39,21,40,21,41,21,42,21,43,21,44,21,45,21,46,21,47,21,39,21,41,21,42,21,44,21,45,21,32,21,42,21,43,21,33,21,32,21,32,21,47,21,36,21,38,21,39,21,41,21,42,21,43,21,45,21,46,21,47,21,32,21,33,21,34,21,35,21,36,21,37,21,38,21,38,21,39,21,40,21,41,21,42,21,47,21,43,21,44,21,32,21,35,21,37,21,47,21,41,21,40,21,45,21,47,21,41,21,42,21,44,21,45,21,47,21,40,21,32,21,41,203,203,202,42,39,40,40,41,41,42,42,43,42,44,44,45,44,45,45,47,209,41,209,21,209,32,46,21,209,21,208,21,209,215,215,215,215,47,208,32,34,37,39,42,44,47,212,21,211,21,47,21,215,215,213,213,215,47,47,47,47,47,47,47,47,47,47,45,46,21,211,21,211,21,21,47,47,47,47,47,47,47,47,33,32,33,32,33,32,33,32,33,32,33,33,34,33,34,33,34,33,34,34,34,32,33,32,33,33,34,33,35,34,35,35,36,35,36,36,37,36,37,37,38,37,38,38,39,39,40,39,40,40,41,41,42,41,42,42,43,42,43,43,44,43,44,44,45,45,46,45,46,46,47,46,47,100,101,101,102,102,48,48,49,49,50,49,51,50,51,51,199,196,53,52,53,196,196,196,197,196,197,197,198,198,198,198,197,196,197,197,198,197,198,197,198,196,197,197,198,198,197,193,192,196,197,196,197,196,197,197,198,197,198,196,197,197,198,195,195,197,195,195,197,197,197,197,198,197,198,197,198,197,198,197,198,197,198,195,197,195,197,196,196,196,197,197,196,196,197,197,197,197,198,196,196,198,198,198,196,196,197,197,197,197,197,197,198,198,198,195,195,195,198,196,196,197,193,197,196,197,197,198,194,198,194,197,198,197,198,198,198,198,197,197,196,196,197,197,198,196,196,196,197,193,197,196,197,193,197,197,197,194,197,197,198,194,196,197,198,197,196,198,197,193,196,196,197,193,197,197,197,193,198,197,198,193,198,194,198,197,197 +,252,252,109,252,252,252,252,252,252,252,108,252,108,252,108,252,252,108,109,252,109,252,252,252,252,252,108,108,108,108,108,108,108,108,108,108,109,108,252,108,108,108,108,108,108,108,252,108,252,108,252,252,108,108,252,108,252,108,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,107,109,107,252,109,252,252,252,252,252,252,252,252,252,252,109,107,109,107,109,107,107,109,109,107,109,107,107,36,37,37,39,39,32,21,34,34,35,36,37,38,39,21,40,41,42,43,44,44,45,21,35,37,40,42,45,32,33,21,36,37,38,39,41,42,43,21,46,47,40,32,34,35,37,21,40,41,32,34,36,38,41,21,45,47,40,41,41,41,42,21,43,43,43,43,44,44,45,21,32,34,41,37,45,40,44,21,32,47,36,37,40,38,43,21,47,41,38,32,40,33,43,21,46,34,38,35,40,36,42,21,44,38,45,39,47,40,37,21,39,41,40,33,41,32,43,21,44,44,45,32,47,37,33,21,34,47,35,34,36,32,37,21,38,42,39,47,32,47,33,21,35,39,36,40,37,40,38,21,39,210,34,203,202,203,202,203,203,210,202,203,202,203,202,203,36,203,37,204,203,202,203,203,21,203,203,204,203,204,204,204,215,215,21,209,21,213,215,214,21,215,213,215,215,212,215,215,215,32,32,32,32,32,32,32,33,32,33,214,33,33,33,215,214,214,213,214,33,33,33,33,34,33,34,34,34,34,34,34,34,34,34,34,34,34,35,34,35,35,35,35,35,35,35,35,32,32,33,33,33,33,34,34,34,34,35,196,197,197,36,36,37,37,37,37,38,38,38,38,39,39,40,40,40,40,41,41,41,41,42,42,43,43,43,43,44,44,44,44,45,45,45,45,46,46,47,47,47,97,98,98,99,99,100,100,101,48,48,49,49,49,50,50,51,51,51,52,52,52,53,192,196,196,196,198,196,196,197,196,196,196,197,197,198,198,197,197,198,198,196,198,197,197,197,197,198,198,198,198,198,198,192,196,192,196,196,196,196,197,198,197,197,197,198,197,198,195,195,197,195,195,197,197,197,197,197,197,197,197,198,198,198,198,198,198,198,196,196,196,197,196,196,196,196,196,196,196,197,196,198,197,198,198,197,196,198,198,196,196,197,196,197,196,197,197,198,197,198,198,198,198,198,198,197,196,196,197,197,197,197,197,197,198,197,197,197,197,198,197,198,198,198,198,197,196,197,197,198,196,196,196,196,196,197,196,197,197,197,197,197,197,197,197,197,197,198,196,197,197,198,196,198,197,196,196,196,196,197,197,197,197,197,197,198,197,198,194,198,198,198,197 +,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,108,109,108,252,108,252,109,252,109,108,109,108,108,109,108,252,108,109,108,252,108,108,108,108,108,252,108,252,108,252,108,252,108,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,108,107,109,107,252,107,252,107,252,107,252,109,252,109,252,252,252,252,252,252,109,107,109,107,109,107,109,107,109,107,109,107,36,21,37,21,39,21,40,21,42,21,43,21,45,21,32,21,36,21,39,21,42,21,46,21,38,21,32,21,34,21,36,21,39,21,42,21,32,21,34,21,36,21,38,21,33,21,35,21,36,21,43,21,40,21,42,21,44,21,46,21,47,21,42,21,43,21,32,21,37,21,42,21,47,21,32,21,34,21,35,21,36,21,37,21,38,21,40,21,46,21,35,21,32,21,33,21,36,21,43,21,36,21,37,21,38,21,39,21,40,21,41,21,42,21,42,21,43,21,44,21,45,21,46,21,47,21,32,21,32,21,32,21,34,21,35,21,37,21,38,21,40,21,41,21,43,21,44,21,46,21,47,21,32,21,32,21,32,38,32,39,32,40,32,42,32,43,32,44,32,45,32,46,32,38,32,34,32,37,32,41,32,45,32,46,32,40,32,41,32,41,32,42,32,35,36,35,36,35,36,35,36,35,36,36,36,36,36,36,36,36,36,36,37,36,37,36,37,36,37,36,37,36,37,36,37,36,37,36,37,36,37,36,37,32,33,32,33,33,34,33,34,34,35,34,35,35,36,35,36,36,37,36,37,37,38,37,196,196,197,197,198,197,197,197,198,40,41,40,41,41,42,41,42,42,43,42,43,43,44,43,44,44,45,44,45,45,46,45,46,46,47,46,47,47,101,101,102,102,96,96,97,97,48,48,49,49,50,50,51,51,52,51,199,199,196,196,196,196,198,198,56,199,196,196,197,197,198,196,197,196,197,196,197,197,198,198,197,197,198,198,198,193,199,199,197,196,197,197,198,197,198,198,198,196,196,196,196,196,196,197,198,197,197,197,198,197,198,197,195,195,195,197,197,197,197,197,198,197,198,197,198,197,198,198,198,197,198,196,196,196,197,197,198,197,198,197,198,196,196,197,197,197,198,198,196,196,196,198,198,197,196,196,196,196,197,197,197,197,198,198,198,198,198,197,198,197,196,196,197,196,197,197,197,196,197,197,198,197,198,197,198,197,198,198,198,197,196,196,198,198,196,196,197,193,197,196,197,193,197,196,197,193,197,197,198,194,198,196,197,194,198,198,196,198,197,196,197,193,197,196,197,193,197,197,198,193,198,197,198,197,198,197,197 +,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,252,252,252,108,109,252,109,108,252,252,252,252,108,252,108,109,108,108,108,108,252,108,108,108,108,108,108,108,108,108,108,108,252,108,252,108,252,252,108,108,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,252,252,108,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,109,107,109,107,252,109,252,109,252,252,252,252,252,252,252,107,109,107,109,107,109,107,109,107,109,107,107,35,33,36,35,37,37,39,39,40,41,41,43,42,45,44,47,45,32,33,34,34,35,36,37,37,38,39,40,40,41,42,43,43,44,45,46,46,47,34,40,35,41,41,42,47,44,36,45,37,46,37,47,32,39,36,41,39,43,43,45,47,47,32,38,33,32,35,34,36,37,38,40,34,42,39,44,44,47,34,36,35,37,33,39,36,40,39,41,41,43,44,44,47,45,44,46,45,34,46,35,36,36,32,37,38,38,44,39,34,41,38,42,41,43,45,44,44,45,45,46,46,47,32,35,40,36,41,36,32,36,39,40,38,40,39,42,40,32,41,37,32,42,44,47,33,44,36,42,39,42,42,47,45,46,44,46,44,46,45,46,32,46,33,46,33,32,34,32,34,32,35,32,32,32,35,32,204,203,41,32,209,203,204,215,215,40,35,35,213,36,213,36,35,214,214,215,215,36,212,215,212,36,36,36,36,36,212,36,213,214,213,214,214,37,36,36,36,37,32,32,211,33,211,33,214,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,197,197,197,197,197,198,198,198,198,198,198,198,198,198,43,44,44,44,44,45,45,45,45,46,46,46,46,47,47,47,47,97,97,98,98,99,99,100,100,101,48,48,49,49,50,50,50,51,51,52,52,53,53,54,54,55,199,192,196,196,196,196,197,198,198,198,199,196,196,196,196,198,198,198,196,197,196,196,197,197,198,198,197,198,198,198,197,199,199,196,196,198,198,197,197,198,198,198,197,196,196,196,196,196,197,198,198,198,197,197,197,198,198,198,198,197,197,197,197,197,198,197,197,198,197,198,197,198,198,198,198,198,196,196,196,197,197,197,197,198,198,198,197,196,196,197,198,197,197,196,196,197,196,198,198,198,196,197,196,197,196,197,197,198,197,198,198,198,198,198,198,197,196,196,196,197,196,197,196,197,197,197,197,197,197,198,197,198,198,198,198,198,197,197,197,196,196,196,196,197,196,197,196,197,197,197,197,197,197,197,197,198,196,196,197,197,198,198,197,198,197,196,196,197,196,197,197,197,197,197,197,198,198,198,198,198,198,197,197 +,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,108,109,108,109,252,252,252,252,252,108,109,108,109,252,108,252,108,252,108,108,108,109,108,108,108,252,108,252,108,252,108,252,108,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,109,252,252,252,252,109,252,252,252,252,252,252,252,252,252,109,107,107,107,107,252,107,252,107,252,107,252,109,252,109,252,252,252,252,252,107,109,107,109,107,109,107,109,107,107,107,107,21,41,21,41,21,41,21,33,21,35,21,36,21,38,21,39,21,41,21,43,21,44,21,46,21,47,21,34,21,37,21,39,21,42,21,45,21,47,21,41,21,41,21,41,21,41,21,41,21,41,21,41,21,41,21,41,21,41,21,41,21,41,21,41,21,36,21,43,21,41,21,41,21,33,21,34,21,35,21,36,21,37,21,38,21,39,21,40,21,41,21,41,21,43,21,43,21,45,21,45,21,47,21,47,21,47,21,32,21,37,21,41,21,45,21,47,21,36,21,36,21,36,21,36,21,37,21,37,21,37,21,42,21,47,21,47,21,35,21,41,21,47,21,47,21,47,21,47,42,32,43,32,44,32,44,32,45,32,45,32,46,32,47,32,47,40,37,40,38,47,39,47,32,47,33,32,34,47,35,32,36,32,37,32,38,35,35,35,34,35,34,35,34,35,35,35,36,37,36,36,36,37,36,32,32,33,32,33,33,34,33,34,34,35,34,35,34,35,35,36,35,36,36,37,36,37,36,37,37,38,37,38,38,39,38,39,39,40,39,40,40,41,40,41,41,42,41,42,41,42,42,197,196,197,196,197,197,198,197,198,197,198,197,198,198,198,197,198,46,47,46,47,47,47,102,103,96,97,98,99,100,101,102,96,96,48,48,49,49,50,50,51,51,52,52,53,53,54,53,55,55,56,55,56,56,58,196,192,196,196,196,196,197,198,197,198,198,198,192,196,196,196,196,197,197,198,197,198,196,196,196,197,197,198,198,198,197,198,198,199,196,196,196,197,197,198,198,198,197,197,198,197,196,197,196,196,197,197,197,198,197,198,197,197,197,198,197,198,197,197,197,197,198,198,197,198,197,198,197,198,198,198,198,198,198,196,196,197,197,198,197,198,197,198,197,196,196,197,198,198,197,196,196,197,197,198,197,198,198,198,196,197,197,197,197,198,198,198,198,198,198,198,197,198,196,197,196,197,196,197,196,197,197,197,197,197,197,198,197,198,197,198,197,198,198,198,197,196,196,197,196,197,196,197,196,197,196,197,193,197,197,198,197,198,197,196,193,197,197,198,198,197,198,197,193,196,196,197,196,197,197,198,193,198,197,198,197,198,197,197,197,197 +,252,252,109,252,252,252,108,252,252,252,252,252,108,252,108,252,108,252,252,252,252,252,252,252,109,252,252,109,252,252,108,252,108,252,108,252,108,108,108,108,108,108,108,108,108,108,108,108,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,107,109,107,109,109,252,109,252,252,252,252,252,252,252,252,252,107,109,107,109,107,109,107,109,107,107,107,44,21,44,21,44,21,44,21,44,21,44,21,44,21,44,21,32,21,36,21,40,21,43,21,47,21,44,21,44,21,44,21,44,21,44,21,44,21,44,21,44,21,44,21,44,21,44,21,44,21,44,21,44,21,44,21,44,21,44,21,44,21,44,21,44,21,44,21,44,21,44,21,44,21,44,21,44,21,44,21,44,21,44,21,32,21,42,21,44,21,44,21,44,21,44,21,44,21,44,21,44,21,44,21,44,21,44,21,44,21,44,21,44,21,32,33,34,21,36,21,37,21,39,21,41,21,43,21,44,21,46,21,47,21,32,21,32,21,32,21,32,21,32,21,32,21,32,44,32,46,36,44,36,45,36,45,36,46,36,47,34,203,46,46,47,47,47,40,47,203,47,203,47,34,34,34,35,34,35,34,35,34,35,34,35,32,32,32,33,33,33,33,33,33,34,34,34,34,35,35,35,35,35,35,36,36,36,36,36,36,37,37,37,37,38,38,38,38,38,38,39,39,39,39,39,39,40,40,40,40,41,41,41,41,41,41,42,42,42,42,43,42,43,43,43,43,44,44,44,196,197,197,197,197,197,197,197,197,198,197,198,198,198,198,198,197,198,198,198,101,101,102,102,102,103,103,96,48,49,49,50,50,51,51,52,52,53,53,53,54,54,55,55,56,56,57,57,58,58,59,59,59,196,196,196,192,196,196,197,197,197,197,197,197,198,198,196,196,196,196,196,197,198,198,197,197,198,198,198,198,197,197,197,198,198,198,198,198,196,196,196,196,197,197,197,198,198,197,198,197,196,196,197,197,198,197,197,198,198,198,198,198,197,197,197,198,198,197,198,197,197,197,198,198,197,197,197,197,198,198,198,198,198,198,196,196,197,197,197,198,198,196,196,196,196,197,198,198,198,197,196,196,197,197,197,197,198,197,198,197,198,198,197,197,197,197,198,197,198,198,198,198,198,197,196,196,196,196,197,196,197,197,197,197,197,197,197,197,198,198,198,198,198,197,197,197,198,196,196,196,196,196,197,196,197,197,197,197,197,197,197,197,197,197,197,196,197,197,197,197,198,197,198,197,196,196,196,196,197,197,197,197,197,197,198,198,198,198,197,197,197,198 +,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,108,252,108,252,252,252,108,108,108,108,252,108,109,108,252,108,252,108,252,108,252,108,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,107,107,252,107,252,107,252,107,252,107,252,109,252,109,252,252,252,252,109,107,109,107,109,107,109,107,109,107,107,34,32,35,32,37,32,38,32,39,32,41,32,42,32,32,32,33,32,34,32,36,32,37,32,38,32,39,32,40,32,41,32,32,32,34,32,35,32,37,32,38,32,40,32,41,32,43,32,44,32,46,32,36,32,38,32,40,32,42,32,44,32,47,32,39,32,42,32,45,32,32,32,46,32,35,32,36,32,37,32,38,32,39,32,35,32,41,32,46,32,35,32,36,32,32,32,33,32,34,32,32,32,32,32,33,34,34,36,35,39,35,42,36,45,37,47,38,32,38,32,21,32,21,32,21,32,21,32,21,32,21,32,21,47,21,46,21,47,21,46,21,40,21,40,21,40,46,40,37,42,38,40,39,40,32,40,32,40,39,40,46,35,35,35,35,35,35,35,35,35,35,35,35,32,32,33,32,33,33,34,33,34,33,34,34,35,34,35,34,35,35,36,35,36,36,37,36,37,36,37,215,38,37,38,37,38,38,212,38,39,39,215,39,212,39,40,211,41,40,41,40,41,42,42,42,42,42,43,42,43,42,43,43,44,43,44,43,44,44,45,44,45,45,46,45,46,45,197,196,197,196,197,197,197,197,198,197,198,197,198,197,198,198,198,197,198,197,198,198,198,48,49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56,57,57,58,58,59,59,60,60,61,61,62,196,196,196,196,196,196,196,196,196,197,196,198,197,198,198,196,196,196,196,196,196,198,197,198,197,198,197,198,197,198,197,198,198,197,197,198,198,198,198,196,196,197,196,196,196,197,197,198,197,198,197,198,197,198,196,197,197,198,198,198,197,198,197,198,197,197,197,198,198,198,197,197,197,197,198,198,197,198,197,198,197,198,197,198,198,196,196,197,197,198,197,196,196,196,196,197,197,198,197,198,197,196,196,197,196,197,197,197,197,198,197,198,198,197,196,197,197,198,197,198,197,198,198,198,197,196,196,197,196,197,196,196,196,197,197,198,198,198,197,198,198,198,197,198,197,198,196,196,196,197,196,197,196,197,196,197,196,197,196,197,197,197,197,198,197,198,197,196,196,197,197,198,198,198,198,197,196,197,196,197,196,197,197,198,197,198,197,198,198,197,198,197,197,197 +,109,252,109,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,108,252,108,252,108,109,108,108,108,108,108,108,108,108,108,108,252,108,252,108,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,107,107,107,107,107,252,109,252,109,252,252,252,252,252,252,252,252,252,252,109,107,109,107,109,107,109,107,107,107,107,34,35,34,35,35,35,36,35,36,35,37,35,38,35,38,35,39,35,40,35,40,35,41,35,42,35,42,35,43,35,44,35,45,35,45,35,46,35,46,35,41,36,41,36,42,36,42,36,43,36,43,36,44,36,44,36,32,36,36,36,40,36,45,36,40,36,43,36,46,36,36,36,37,36,37,36,38,36,39,36,40,36,46,36,32,36,32,36,33,36,33,36,34,36,34,36,35,36,35,36,32,36,34,36,37,36,32,36,33,36,34,36,35,45,36,40,37,40,38,40,39,40,32,40,34,40,35,40,21,40,21,32,39,32,41,32,42,32,43,47,45,47,46,47,33,47,34,47,35,43,37,43,33,43,35,43,37,43,39,33,35,32,32,33,33,33,33,33,33,34,33,34,34,34,34,35,35,35,35,36,36,36,203,36,36,37,36,204,37,37,37,38,215,38,215,39,39,39,39,39,39,40,39,40,40,40,40,41,41,41,41,42,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,45,45,45,197,45,45,46,46,46,46,46,46,47,47,47,99,197,196,197,196,197,197,197,197,197,197,197,197,198,197,198,197,198,198,198,198,198,198,198,198,198,198,198,53,54,54,55,55,56,57,57,57,58,59,59,60,61,61,61,62,63,63,64,64,66,66,196,196,196,196,196,196,196,196,196,197,198,196,197,197,198,198,197,197,196,196,196,196,197,196,197,197,198,197,198,198,198,197,197,197,198,198,198,198,198,198,198,198,198,196,196,196,197,197,197,197,198,197,198,198,198,198,198,198,198,196,197,198,198,197,197,197,199,196,197,197,198,197,197,197,198,198,198,198,198,197,197,197,198,198,198,198,198,198,198,196,196,197,197,197,196,196,197,196,197,197,198,198,198,197,197,196,196,196,197,197,197,197,197,197,198,198,198,197,197,197,197,197,198,198,198,198,198,198,196,196,197,197,197,197,197,197,198,197,198,198,198,197,198,197,197,196,196,196,196,196,196,198,196,196,196,196,196,196,197,197,197,197,197,197,197,197,197,197,197,197,198,196,196,197,197,198,198,197,198,197,196,196,197,196,197,197,197,197,197,197,198,198,198,198,196,197,198,197 +,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,108,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,109,108,108,252,108,108,108,252,108,109,108,252,108,252,108,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,252,107,252,107,252,107,252,107,252,107,252,252,252,109,252,252,252,107,109,107,109,107,109,107,109,107,107,107,38,34,38,35,38,35,38,36,38,37,38,38,38,38,38,39,38,40,38,40,38,41,38,42,38,42,38,43,38,44,38,45,38,45,38,46,38,47,38,39,40,39,40,39,40,39,40,40,40,40,40,41,40,32,40,33,40,34,40,36,40,37,40,38,40,39,40,41,40,42,40,43,40,45,40,46,40,44,40,46,40,43,40,45,40,32,40,33,40,33,40,34,40,35,40,32,40,32,40,33,40,34,40,35,40,32,40,33,40,34,40,36,40,32,40,33,44,35,44,37,44,33,44,36,45,39,45,42,45,45,40,37,40,38,40,40,40,41,40,42,32,43,32,44,32,45,32,47,32,32,47,34,47,35,47,36,47,37,47,39,34,34,35,36,38,38,40,40,42,42,44,45,46,47,35,35,32,35,38,41,44,46,37,37,37,37,38,37,38,38,39,38,39,39,40,39,40,39,40,40,41,40,41,41,42,41,42,42,43,42,43,43,44,43,44,44,45,44,45,45,46,45,46,46,47,46,47,47,197,197,198,198,97,96,98,97,98,98,99,197,198,197,198,198,198,196,197,197,197,197,197,197,198,197,198,197,198,197,198,198,198,198,198,197,198,197,198,198,198,198,59,59,60,60,61,61,62,62,63,89,90,89,90,90,91,64,66,66,69,69,196,196,196,196,196,196,196,196,198,197,198,197,198,197,196,197,198,197,198,197,196,196,197,196,197,196,197,197,198,197,198,197,198,198,198,197,198,197,198,197,198,198,198,198,198,196,196,196,197,196,197,197,197,198,197,197,198,198,198,197,198,198,198,197,198,197,198,199,199,196,193,197,197,197,198,197,197,197,198,197,198,198,198,197,198,197,198,197,198,198,198,196,196,196,197,197,196,196,197,196,197,197,198,197,198,198,198,196,196,196,197,196,197,197,198,197,198,198,198,196,197,197,198,197,198,197,198,197,198,198,198,196,197,196,197,197,198,197,198,197,198,197,198,196,196,196,196,196,196,196,196,196,198,198,196,196,197,197,198,196,197,196,197,196,197,196,197,196,197,197,198,197,198,197,196,196,197,197,198,198,198,198,198,196,196,196,197,196,197,197,198,197,198,197,198,198,196,197,198,197,198 +,109,252,108,252,108,252,108,252,108,252,108,252,252,252,252,108,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,108,108,108,108,108,108,108,108,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,107,107,107,252,109,252,109,252,252,252,252,252,252,252,252,107,107,109,107,109,107,109,107,109,107,107,107,41,35,41,35,41,36,41,37,41,38,41,39,41,39,41,40,41,41,41,42,41,43,41,43,41,44,41,45,41,46,41,46,41,39,41,40,41,42,41,43,43,45,43,46,43,39,43,39,43,39,43,32,43,33,43,33,43,34,43,35,43,36,43,37,43,38,43,38,43,39,43,40,43,41,43,42,43,42,43,43,43,44,43,45,43,46,43,46,43,45,43,45,43,45,43,45,43,46,43,46,43,46,43,47,43,47,43,32,43,34,43,35,43,36,32,32,34,33,35,34,37,35,39,36,40,37,42,37,44,38,45,39,47,40,47,41,47,32,46,35,46,38,32,41,32,44,32,47,32,34,32,35,32,36,32,37,32,38,32,38,32,39,32,40,32,41,32,42,32,43,32,32,33,33,33,33,34,34,35,32,33,34,35,35,37,37,38,39,40,41,42,42,44,44,45,46,47,42,43,213,44,44,44,44,45,45,46,46,47,47,98,98,99,99,214,99,100,214,100,100,101,101,101,101,101,196,197,197,197,197,198,198,103,103,197,197,197,197,197,197,197,197,197,197,198,197,198,197,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,128,128,129,130,130,88,88,89,89,89,89,89,89,90,64,66,68,70,72,75,77,79,50,196,196,196,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,197,198,198,198,198,198,197,198,198,198,198,198,198,198,198,196,196,197,198,196,197,197,197,197,198,197,198,197,198,198,198,198,196,196,196,199,199,196,196,197,196,197,197,198,194,198,198,197,197,198,198,198,197,197,197,198,198,198,198,198,196,196,196,197,197,197,196,196,196,196,197,197,197,198,198,198,196,196,196,197,197,197,197,197,197,198,198,198,197,197,197,197,197,198,197,198,198,198,198,198,198,197,197,197,197,198,197,198,198,198,196,196,196,196,196,196,196,196,196,197,197,198,196,196,197,197,197,198,198,196,196,196,196,197,197,197,197,197,197,197,197,197,197,196,196,197,197,197,198,198,197,198,197,196,196,196,196,197,197,197,197,198,198,198,198,196,197,197,197,198,198 +,252,109,252,108,252,108,252,252,252,252,252,252,252,252,252,108,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,108,108,108,252,108,252,108,252,108,252,108,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,252,107,252,107,252,107,252,107,252,109,252,252,252,252,252,107,109,107,109,107,109,107,107,107,107,107,107,32,44,33,44,34,44,35,44,36,44,37,44,38,44,39,44,41,44,42,44,43,44,44,44,45,44,46,44,44,44,46,44,37,44,38,44,39,44,40,47,41,47,42,47,43,47,44,47,45,47,46,47,32,47,32,47,33,47,34,47,35,47,35,47,36,47,37,47,37,47,38,47,39,47,39,47,40,47,41,47,42,47,42,47,43,47,44,47,45,47,45,47,46,47,47,47,36,47,37,47,38,47,38,47,39,47,40,47,34,47,39,47,44,47,32,47,33,47,34,47,35,47,35,32,36,32,37,32,38,32,39,32,40,32,41,32,32,32,33,32,35,36,36,36,38,36,39,36,41,36,42,36,44,36,45,36,47,36,37,36,38,36,38,36,39,36,40,36,41,36,41,32,42,32,43,32,44,32,45,32,32,33,33,34,34,35,34,36,35,37,36,38,37,39,38,39,39,40,40,41,41,42,42,43,43,44,44,45,45,46,46,47,47,99,99,100,99,100,100,101,100,101,196,197,196,197,196,197,197,198,197,198,197,198,197,198,197,197,197,198,197,198,197,198,197,198,197,198,197,198,197,198,197,198,198,198,198,134,134,136,136,138,139,141,143,143,198,128,129,129,130,64,66,68,69,72,73,76,77,79,64,67,69,72,74,77,79,79,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,198,198,198,198,198,198,198,198,198,198,198,198,198,197,198,197,198,198,196,198,198,198,198,198,197,196,197,197,197,198,197,197,197,197,197,197,198,197,198,198,198,198,197,197,199,196,196,196,196,196,197,197,198,197,198,197,198,197,198,197,198,198,197,197,198,197,198,198,198,198,196,196,197,196,197,196,197,196,196,197,198,197,198,197,198,197,196,196,197,196,197,197,198,197,198,197,198,196,197,197,197,197,198,197,198,197,198,198,198,197,198,196,197,197,198,197,198,198,198,196,196,196,196,196,196,196,197,196,197,197,198,196,197,196,197,197,198,197,198,196,197,196,197,196,197,196,197,196,197,197,197,197,198,196,197,196,197,197,198,198,198,198,196,196,197,196,197,196,197,197,198,197,198,197,196,197,197,197,198,198,198 +,109,252,108,252,108,252,108,252,252,252,108,252,252,252,252,252,108,108,108,108,109,252,109,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,108,108,108,108,108,108,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,252,107,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,107,107,107,107,107,107,107,252,252,252,252,252,252,252,252,252,107,107,107,109,107,109,107,109,107,109,107,107,107,107,32,47,33,47,33,47,33,47,33,47,34,47,32,47,34,47,35,47,36,47,37,47,39,47,40,47,41,47,42,47,44,47,45,47,46,47,39,47,40,32,40,32,41,32,42,32,43,32,43,32,44,32,45,32,46,32,32,32,33,32,34,32,35,32,36,32,37,32,37,32,39,32,39,32,40,32,41,32,42,32,43,32,44,32,45,32,46,32,47,32,32,32,34,32,35,32,37,32,39,32,41,32,43,32,44,32,46,32,43,32,45,32,46,32,33,32,33,32,35,32,35,36,37,36,37,36,39,36,40,36,41,36,42,37,43,37,32,37,33,37,34,40,35,40,36,40,37,39,38,40,39,40,40,40,42,39,43,40,44,40,45,40,46,39,47,40,39,40,39,40,40,37,41,37,42,37,42,37,43,32,44,32,45,32,45,32,46,32,38,32,32,33,33,34,35,35,36,36,37,37,38,39,39,40,40,41,41,42,42,43,43,44,44,45,45,46,46,47,197,196,196,196,196,197,196,134,135,136,136,138,138,32,33,35,36,37,38,40,41,42,43,45,46,47,136,40,139,140,141,142,143,128,129,130,131,132,133,135,135,137,138,139,140,142,143,143,143,128,129,129,128,64,64,65,65,66,66,67,67,67,68,68,69,69,69,70,70,71,71,72,72,72,73,73,74,74,74,75,75,76,76,77,77,77,78,78,79,79,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,196,197,196,196,197,197,197,197,198,197,197,197,197,198,197,198,198,196,192,196,196,197,196,196,196,197,197,197,197,198,198,198,198,198,198,198,198,197,197,197,197,198,198,198,198,196,196,196,196,197,197,196,196,197,196,197,197,198,198,198,198,198,196,196,196,197,197,197,197,198,198,198,197,197,197,197,197,198,197,198,197,198,198,198,198,198,197,197,197,198,198,198,197,198,198,196,196,196,196,196,196,197,197,197,197,196,196,196,196,197,197,198,198,198,197,197,196,197,197,197,196,198,198,197,197,197,197,197,196,196,197,197,197,198,198,198,197,198,196,196,196,197,197,197,197,198,198,198,198,196,196,197,197,198,197,198,198 +,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,109,108,252,108,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,108,108,108,252,108,252,108,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,107,109,107,252,107,252,107,252,107,252,109,252,107,252,252,107,107,109,107,109,107,109,107,109,107,107,107,107,107,32,32,32,32,32,33,32,33,32,33,32,33,32,33,32,33,32,32,32,32,32,33,32,33,32,36,32,38,32,41,32,44,32,47,32,38,32,39,35,39,35,40,35,41,35,41,35,42,35,43,35,43,35,44,35,45,35,46,35,32,35,33,35,33,35,34,35,35,35,36,35,37,35,38,35,38,35,39,35,40,35,41,35,42,35,43,35,44,35,45,36,45,36,46,36,41,36,42,36,42,36,42,36,42,36,42,36,42,36,43,36,43,37,43,37,43,37,32,37,33,37,35,40,36,40,38,40,39,40,40,40,41,40,43,42,44,42,45,42,47,44,32,43,33,44,34,43,35,44,36,43,33,44,37,43,41,44,45,43,41,44,42,43,43,44,44,43,45,44,46,42,47,32,46,34,46,35,32,37,34,38,37,40,40,41,43,43,45,44,32,46,46,47,38,39,38,39,38,39,38,39,38,39,32,33,33,35,35,36,36,38,38,39,39,41,41,42,42,44,44,44,32,33,33,34,34,35,35,37,36,38,38,39,39,40,40,41,41,43,42,44,44,45,45,46,46,47,59,60,61,63,63,48,49,50,50,52,52,54,54,55,56,57,57,59,59,61,61,62,63,64,64,64,65,65,66,66,66,67,67,67,68,68,68,69,69,70,70,70,70,71,71,72,72,70,69,70,70,71,70,72,71,72,72,73,72,74,73,74,74,75,74,75,75,76,75,76,76,77,76,77,77,78,78,79,78,79,219,219,219,196,196,196,196,196,196,196,196,196,197,197,198,198,197,198,198,198,198,196,198,197,196,197,196,196,196,197,196,197,197,198,198,198,197,198,198,198,197,198,198,197,197,198,197,198,197,198,196,196,196,197,197,198,196,196,196,197,196,197,197,198,197,198,196,197,196,197,197,197,197,198,197,198,198,197,197,197,197,197,197,198,197,198,198,198,198,198,198,197,196,197,197,198,198,198,197,196,196,196,196,197,196,197,197,198,197,198,196,197,196,197,197,198,197,198,198,198,197,198,197,198,197,196,197,198,197,198,196,197,198,196,196,197,197,198,197,198,198,198,198,196,196,197,196,197,197,198,197,198,198,196,196,197,197,198,197,198,198,198 +,252,252,108,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,108,108,108,108,109,252,109,108,252,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,108,108,108,108,108,108,108,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,107,252,107,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,107,107,109,107,252,107,252,252,252,252,252,252,252,107,107,107,109,109,109,109,109,107,109,107,109,107,107,107,35,33,35,34,35,39,35,44,35,33,35,34,35,34,35,34,35,34,35,32,35,33,35,34,35,34,35,35,35,36,35,37,35,37,35,38,35,39,37,40,37,41,37,41,37,32,37,35,37,37,37,40,37,43,37,45,37,47,38,32,38,33,38,34,38,34,38,35,38,36,38,37,38,37,38,38,38,39,38,40,38,41,38,41,38,42,38,43,39,44,40,44,39,45,40,46,39,47,40,42,39,42,40,43,39,43,40,43,39,43,42,43,42,44,42,44,42,44,42,44,43,44,43,33,43,35,43,37,43,39,43,42,47,44,47,46,47,46,47,46,47,32,47,33,47,34,47,35,47,35,47,36,47,37,47,38,47,38,47,39,47,40,47,41,47,41,47,42,47,43,47,44,47,45,47,45,47,46,47,47,47,45,47,40,40,40,41,40,32,32,33,33,34,34,34,35,35,35,36,36,37,37,37,38,38,38,39,35,36,39,40,40,41,41,42,42,43,43,43,44,43,44,44,44,45,44,45,46,44,45,46,46,46,46,46,47,102,47,103,96,103,98,96,98,98,97,97,54,98,55,99,56,57,58,58,58,102,100,54,55,55,56,56,57,57,58,58,58,62,62,62,62,63,63,65,64,63,66,63,65,65,64,65,66,65,66,67,67,68,66,68,69,70,70,71,71,72,72,70,70,70,70,71,71,72,72,72,72,73,73,74,74,74,74,75,75,76,76,76,77,77,77,78,78,78,79,79,196,196,196,196,196,197,197,197,197,197,197,198,198,198,198,198,197,198,196,196,196,196,196,196,196,197,196,197,196,197,197,198,197,198,197,198,198,198,198,219,219,219,219,219,219,219,219,219,196,196,196,197,197,197,196,196,196,196,197,197,197,197,197,198,198,196,196,197,197,197,197,197,197,198,198,197,197,197,197,197,197,198,197,198,198,198,198,198,198,198,197,197,197,198,198,198,198,196,196,196,196,197,197,197,197,198,198,198,196,196,196,197,197,197,197,198,198,198,197,197,197,197,197,196,197,197,198,197,196,197,197,197,198,198,197,197,197,198,198,198,198,198,196,196,196,197,197,197,197,198,198,196,196,197,197,198,197,198,198,198,198 +,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,109,108,252,108,252,252,252,108,252,108,252,252,252,252,252,252,252,252,108,252,252,108,252,252,108,108,252,108,109,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,107,252,107,252,107,252,107,252,107,252,107,252,107,252,252,252,107,109,107,109,107,109,109,109,107,109,107,107,107,107,34,37,35,37,37,37,38,37,40,37,41,37,43,37,44,37,46,37,34,37,34,38,35,38,35,38,32,38,33,38,35,38,36,38,37,38,38,40,39,40,40,40,41,40,32,40,33,40,34,40,35,40,36,40,36,40,37,40,38,41,39,41,40,41,41,41,42,41,43,41,44,41,44,41,45,41,46,41,38,41,39,41,40,41,40,41,41,41,42,44,43,43,43,44,44,43,45,44,45,43,46,44,47,43,43,44,44,43,44,44,44,47,44,47,44,47,45,47,45,47,45,47,45,47,45,47,46,47,46,47,46,47,39,39,39,39,39,39,39,47,42,47,32,47,33,47,34,47,34,47,35,47,36,47,37,47,37,47,38,47,39,33,32,33,32,33,33,34,33,34,34,35,34,35,35,36,35,36,35,36,36,37,36,37,37,38,37,38,37,38,38,39,38,39,39,40,39,40,40,41,40,41,40,41,41,42,38,39,41,42,36,42,43,40,42,41,43,43,44,43,44,45,44,45,44,46,46,45,45,45,46,45,47,46,45,47,45,96,46,46,46,47,98,99,101,99,100,101,50,52,50,53,53,53,54,55,55,57,102,100,54,55,55,56,56,57,57,58,58,58,58,58,61,62,61,61,62,62,62,62,62,64,62,63,65,66,65,65,66,67,67,67,68,67,68,70,70,70,70,71,71,72,72,69,69,70,70,71,71,72,72,73,73,74,74,75,75,76,76,77,77,78,78,79,79,79,196,196,196,197,196,197,196,197,197,198,197,198,197,198,198,198,197,198,198,196,196,197,196,197,196,197,197,197,197,197,197,197,197,197,197,198,197,198,198,198,198,197,219,219,219,219,219,219,196,196,196,196,196,197,197,196,196,196,196,197,197,198,197,198,198,198,196,197,196,197,196,197,197,198,197,198,196,197,197,197,197,198,197,198,197,198,198,198,197,198,198,197,197,198,198,198,196,197,196,196,197,198,197,196,196,197,197,198,198,196,196,197,196,197,197,198,197,198,198,198,197,198,197,196,196,198,198,198,196,197,196,197,197,198,198,197,197,198,197,198,198,198,197,198,196,197,196,197,197,198,197,198,196,197,196,198,197,198,198,198,198,198 +,252,252,109,252,108,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,108,108,108,108,109,252,109,108,252,252,252,252,252,252,252,252,252,252,252,252,108,108,252,252,252,252,108,108,108,108,108,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,107,252,107,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,107,107,107,107,107,107,252,107,252,107,252,252,252,252,252,252,107,107,109,109,109,109,109,107,109,107,109,107,107,107,40,34,40,35,40,36,40,36,40,37,40,38,40,39,40,39,40,40,40,41,41,42,41,42,41,43,41,44,41,45,41,46,41,47,41,37,41,32,42,33,42,33,42,34,42,35,42,35,42,32,42,33,42,34,42,34,42,35,44,36,44,37,44,38,44,39,44,39,44,40,44,41,44,42,44,42,44,43,44,44,44,45,44,45,44,46,44,47,47,43,47,43,47,44,47,44,47,45,47,46,47,47,47,46,47,46,47,46,47,47,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,33,33,33,33,34,33,34,34,34,34,34,34,35,35,35,35,36,35,36,36,36,36,36,36,37,37,37,37,37,37,38,38,38,38,38,38,39,39,39,39,39,39,40,40,40,40,40,40,41,41,41,41,41,41,42,42,42,42,42,41,42,39,42,43,40,43,40,43,43,43,42,44,44,44,44,44,45,44,45,45,45,45,45,45,45,45,46,45,46,46,46,47,99,99,100,101,100,101,101,101,47,100,101,101,101,101,101,101,101,102,100,54,55,102,100,54,55,55,56,55,56,57,57,58,58,58,58,58,61,61,61,61,61,62,62,62,63,63,63,63,63,63,64,63,65,63,65,66,68,68,69,69,70,64,70,70,71,71,72,72,64,65,66,67,68,69,70,70,72,72,73,74,75,76,77,78,79,196,196,196,197,197,197,197,197,197,197,197,198,198,198,198,198,198,198,198,198,198,198,198,196,196,196,197,197,197,197,197,198,197,198,198,198,198,198,198,198,198,198,198,198,196,196,196,196,219,219,219,219,198,198,198,196,196,196,196,197,197,197,197,198,198,198,198,196,196,196,196,197,197,197,197,198,198,197,197,197,197,197,197,198,198,198,198,198,198,198,196,197,197,198,198,198,198,196,196,196,196,198,197,196,196,197,197,198,198,198,196,196,196,197,197,197,197,198,198,198,197,197,197,196,197,198,197,198,197,196,196,197,197,197,197,198,197,197,197,198,198,198,197,198,198,196,196,197,197,197,198,198,196,196,196,197,197,198,197,198,197,198,198 +,252,252,252,109,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,252,108,252,252,109,108,252,108,252,252,252,108,252,252,252,252,252,252,252,108,252,252,252,252,108,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,252,107,107,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,109,252,107,107,107,252,107,252,107,252,107,252,107,252,107,252,252,252,107,107,107,109,107,109,109,109,107,109,107,109,107,109,33,42,34,42,34,42,35,42,36,42,36,42,37,42,38,42,38,42,39,42,40,44,40,44,41,44,42,44,42,44,43,44,44,44,44,44,45,45,32,45,33,45,33,45,34,45,35,45,35,45,36,45,37,45,37,45,38,45,39,47,39,47,32,47,34,47,35,47,37,47,39,47,41,47,43,47,45,47,47,47,46,47,47,47,41,47,42,47,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,34,33,34,33,34,33,34,33,34,33,34,34,34,34,34,34,34,33,34,34,34,34,33,34,33,34,33,34,33,34,34,35,34,35,35,35,35,35,35,36,35,36,36,36,36,37,36,37,36,37,37,37,37,38,37,38,37,38,38,39,38,39,38,39,38,39,39,40,39,40,39,40,39,40,40,41,40,41,40,41,40,41,41,42,41,42,41,42,41,42,42,43,42,42,43,42,42,42,43,42,43,43,42,44,43,43,43,44,43,44,44,43,44,45,44,45,44,45,45,45,46,45,45,46,45,46,46,46,46,46,47,100,101,101,47,101,100,47,100,100,101,47,101,100,47,100,100,100,101,100,102,101,47,102,102,101,101,99,99,54,102,99,56,56,102,56,102,57,57,61,58,58,58,61,61,61,61,61,61,61,63,63,63,63,63,63,64,61,64,61,65,67,68,67,68,69,69,70,70,70,70,71,71,72,72,75,73,72,76,64,78,76,77,196,196,196,196,197,196,197,196,197,197,198,197,198,197,198,197,198,198,198,197,198,196,197,196,197,196,197,196,197,197,197,197,198,197,197,197,197,198,198,198,198,198,198,197,198,198,198,197,197,197,196,219,219,219,219,219,219,219,219,219,198,196,197,197,198,198,198,197,198,196,197,196,197,197,198,197,198,196,197,196,197,197,198,197,198,197,198,197,198,198,198,196,197,197,198,198,198,198,196,196,196,196,196,197,196,196,197,197,198,197,198,196,196,196,197,196,197,197,198,197,198,197,198,197,196,197,198,197,198,196,197,196,197,197,198,197,198,198,198,197,198,197,198,198,198,198,198,196,197,197,198,197,198,197,196,196,197,196,198,197,197,197,198,198,198 +,252,252,252,252,108,252,108,252,108,252,108,108,108,252,252,252,252,252,252,252,252,252,108,252,252,252,252,108,109,108,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,252,252,252,252,252,107,107,109,252,107,252,107,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,107,107,107,107,107,252,107,252,252,252,252,252,252,252,252,107,107,107,107,109,109,109,109,109,107,109,107,107,107,44,33,45,34,44,35,45,35,44,36,45,37,44,37,45,38,44,39,45,39,47,40,47,41,47,41,47,42,47,43,47,44,47,44,47,45,47,46,47,46,47,32,47,33,47,34,47,35,47,35,47,36,47,37,47,38,47,39,32,32,32,32,32,32,32,32,33,34,33,34,33,34,33,34,33,34,33,34,33,34,33,34,33,34,33,34,33,34,33,34,33,34,33,34,33,34,33,34,33,34,33,34,33,34,33,34,33,34,33,34,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,37,42,47,35,36,35,36,35,36,35,36,36,36,36,37,36,37,37,37,37,37,37,37,37,38,37,38,38,38,38,38,38,38,38,39,39,39,39,39,39,39,39,40,39,40,40,40,40,40,40,40,40,41,40,41,41,41,41,41,41,41,41,42,42,42,42,42,42,42,42,43,42,43,43,43,43,43,43,43,43,43,42,43,42,43,43,43,44,44,44,43,44,44,44,45,44,45,45,45,45,45,45,45,46,46,45,46,46,46,46,46,47,47,47,47,46,100,100,100,46,100,47,47,101,47,101,101,47,101,100,47,100,100,100,101,100,102,101,47,102,102,101,101,99,99,54,102,99,56,56,102,56,56,57,58,57,58,58,60,60,60,61,61,61,61,61,61,61,61,62,63,63,63,63,61,65,61,68,61,69,69,70,70,70,70,71,71,72,72,69,74,68,70,196,196,196,196,196,197,197,197,197,197,197,198,197,198,198,198,198,198,198,198,198,196,196,196,196,197,196,197,197,197,197,197,197,197,197,198,197,198,198,197,197,197,197,196,198,198,198,198,197,198,197,197,197,196,196,196,196,196,196,219,219,219,219,219,219,219,219,219,219,219,219,219,219,197,197,198,198,198,198,196,196,197,196,197,197,197,197,198,198,198,198,198,198,198,196,197,198,198,198,198,196,196,196,196,197,198,196,196,197,197,197,198,198,198,196,196,196,197,197,197,197,198,198,198,197,196,197,198,197,196,196,197,196,197,197,197,197,198,198,198,197,198,197,198,198,198,197,198,198,196,197,197,197,198,198,198,196,196,196,197,197,197,197,198,198,198,198 +,252,252,252,108,252,109,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,252,252,252,252,107,109,107,109,107,107,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,109,109,107,107,107,107,252,107,252,107,252,107,252,107,252,107,252,252,109,107,109,107,109,107,109,107,109,107,109,107,109,107,47,38,47,32,47,33,47,34,47,35,47,36,47,37,47,38,47,39,47,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,41,43,41,42,41,42,42,44,45,47,32,32,32,32,32,32,32,32,34,33,34,33,34,32,33,36,37,39,40,42,43,46,47,33,34,33,34,33,34,33,34,33,34,33,34,33,34,34,35,35,35,32,37,42,47,35,35,35,35,35,35,35,36,35,36,35,36,35,32,35,37,40,42,45,47,36,37,36,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,38,37,38,38,38,38,39,38,39,38,39,38,39,38,39,39,40,39,40,39,40,39,40,39,40,40,40,40,41,40,41,40,41,40,41,41,41,41,41,41,42,41,42,41,42,41,42,42,42,42,43,42,43,42,43,42,43,42,43,43,44,43,44,44,43,43,44,43,43,44,43,43,43,43,42,43,44,44,44,44,44,45,45,44,45,44,45,45,45,46,45,46,45,46,45,46,46,46,46,47,46,47,46,47,46,100,47,99,99,99,47,100,100,100,100,100,100,101,47,101,100,47,100,100,100,101,100,102,101,47,102,102,101,101,99,99,54,102,99,56,56,102,102,56,56,56,58,58,57,58,57,62,57,57,101,58,61,61,62,61,61,62,62,62,62,63,62,63,63,64,64,64,94,93,64,95,66,92,65,72,196,196,196,196,197,196,197,197,197,197,198,197,198,197,198,197,198,198,198,197,198,130,196,196,197,196,196,196,197,196,197,197,198,197,198,197,198,197,198,198,198,196,197,198,197,197,197,197,197,197,197,197,198,197,198,197,198,197,198,197,198,196,196,196,196,196,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,198,198,198,196,196,197,197,198,198,198,198,198,196,196,196,196,196,196,196,196,196,197,197,198,198,198,197,196,196,197,196,197,197,198,197,198,196,197,197,198,197,196,196,197,196,197,197,198,197,198,197,198,198,198,197,198,197,198,198,198,197,198,196,197,197,198,198,196,196,197,196,197,197,197,197,198,198,198,198,198 +,252,252,252,252,108,252,109,252,252,252,108,252,108,252,108,252,252,252,252,252,108,252,108,252,252,252,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,252,252,252,107,107,107,107,109,252,107,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,107,107,107,107,107,252,107,252,107,252,252,252,252,252,252,252,107,107,107,109,109,109,109,109,107,109,107,109,107,109,32,32,32,32,32,47,44,42,39,37,34,32,32,33,33,35,35,36,37,38,38,39,40,41,41,42,43,44,45,45,46,47,33,33,33,33,34,33,33,34,35,37,38,40,41,42,44,46,47,33,33,33,34,33,34,33,34,34,35,34,35,34,35,34,35,34,35,34,35,35,35,35,35,35,35,35,35,35,35,35,35,32,39,47,35,35,35,36,37,36,37,36,37,36,37,36,47,32,35,38,41,44,47,37,37,37,37,37,37,38,38,38,38,38,38,38,38,38,39,38,47,45,42,40,37,34,32,38,39,38,39,39,39,39,38,39,38,39,38,39,39,39,39,39,39,39,39,39,39,39,39,40,40,40,40,40,40,40,40,41,40,41,40,41,41,41,41,41,41,41,41,42,41,42,41,42,42,42,42,42,42,42,42,43,43,43,43,43,43,43,43,43,43,43,43,44,44,44,44,44,44,44,44,43,44,44,44,45,43,43,44,44,44,45,44,45,45,45,45,46,45,46,45,45,46,46,46,46,46,46,46,46,47,46,47,46,47,47,47,46,99,47,47,47,47,99,99,99,100,100,100,101,101,101,101,47,101,100,47,100,100,100,101,100,102,101,47,102,102,101,101,99,99,54,102,99,56,56,102,55,55,56,56,57,57,58,58,58,60,61,58,61,61,61,62,62,62,63,63,62,63,61,62,62,63,62,90,62,94,91,90,94,91,94,92,93,93,196,196,196,196,197,197,197,197,197,197,198,198,198,198,198,198,198,198,198,198,128,129,196,196,196,196,197,197,197,197,197,197,197,197,198,198,198,198,198,196,196,197,197,197,197,197,197,196,196,197,197,198,198,197,198,197,198,197,198,198,198,198,198,198,198,198,198,197,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,196,196,196,196,197,197,198,198,198,196,197,197,198,198,198,198,198,196,196,197,197,197,198,198,198,196,197,197,198,198,196,196,196,196,197,197,197,197,198,198,198,198,198,197,198,197,198,198,198,197,198,198,198,196,198,198,198,196,196,196,197,196,197,197,198,197,198,198,198,198 +,252,252,252,108,252,252,252,109,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,108,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,252,252,252,109,107,109,107,109,252,252,252,107,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,107,252,107,252,107,109,107,252,107,252,107,252,109,252,109,109,107,109,107,109,109,109,109,109,107,109,107,109,107,33,34,33,34,33,46,45,42,47,42,47,47,33,34,33,34,33,34,33,35,34,35,34,32,35,36,39,40,43,44,47,35,34,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,36,36,37,36,36,36,37,36,36,36,37,36,32,34,35,38,39,42,43,46,46,36,37,36,37,36,37,36,37,37,38,38,38,47,32,35,36,39,40,43,44,47,38,38,39,38,39,39,39,38,39,39,40,39,40,39,40,39,40,39,38,32,35,40,43,47,39,38,39,38,39,38,39,38,39,39,39,39,38,39,38,39,47,43,46,47,47,40,39,40,47,40,32,40,40,41,40,37,42,47,40,41,41,41,35,40,43,47,41,42,41,42,41,42,42,32,34,38,41,44,47,43,42,43,42,43,43,44,43,44,43,44,43,44,44,46,46,46,44,45,45,45,45,46,47,47,44,46,47,44,46,44,45,45,45,45,46,45,46,45,46,45,46,47,47,46,47,47,103,47,96,47,96,97,47,96,97,97,98,97,97,98,98,98,98,99,99,99,99,99,99,99,99,100,100,101,47,101,100,47,100,100,100,101,100,102,101,47,102,102,101,101,99,99,54,102,99,56,56,102,55,55,56,56,57,55,58,57,58,61,58,60,61,62,61,61,62,62,63,63,62,62,62,62,62,63,62,91,91,92,90,92,92,91,92,93,93,94,128,130,130,131,132,134,134,136,136,138,138,140,141,142,143,128,143,142,135,138,140,143,136,196,196,196,196,197,196,197,197,197,197,198,197,198,197,198,196,197,197,197,197,197,197,196,196,197,196,197,196,198,196,197,197,198,197,198,197,198,197,198,197,198,198,198,197,198,198,198,197,220,220,220,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,196,196,196,197,196,197,197,198,197,198,196,197,198,198,197,198,197,196,196,198,198,198,196,197,196,197,197,198,197,198,196,197,196,197,196,197,197,198,197,198,197,198,197,198,197,198,198,198,198,198,197,198,197,198,197,198,196,198,196,197,196,197,197,198,197,198,198,198,198,198 +,252,252,252,252,108,252,108,252,109,252,108,252,252,252,252,252,108,252,109,252,109,252,108,252,108,108,252,108,108,252,252,252,252,252,252,252,252,252,109,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,252,252,252,252,252,107,107,109,252,109,252,107,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,107,107,107,109,107,109,107,109,109,252,109,252,109,107,107,109,109,109,109,109,107,109,107,109,107,109,107,34,34,34,34,34,35,34,35,34,35,34,34,34,35,34,35,32,34,35,37,39,40,42,44,46,47,35,36,35,36,35,36,35,36,36,36,36,36,36,36,36,36,36,34,36,37,38,39,41,42,43,44,46,47,36,37,33,34,36,36,38,39,40,41,43,43,45,46,47,38,38,38,38,38,37,38,38,38,38,38,38,38,37,38,38,39,39,40,39,40,39,39,39,40,39,40,39,40,39,39,40,40,40,40,40,40,32,34,36,38,41,43,45,47,40,41,39,41,40,41,40,41,40,41,40,41,40,32,34,36,38,40,43,45,47,40,41,40,40,40,40,40,40,40,41,40,41,41,41,41,41,41,41,41,41,41,42,42,42,42,42,42,42,42,43,42,43,43,43,43,43,43,43,43,44,44,44,44,44,44,44,44,44,45,45,45,45,45,45,45,96,96,99,99,99,46,46,99,47,100,46,100,99,99,100,100,47,100,46,100,100,101,101,101,102,45,102,46,102,102,102,102,102,103,103,103,103,96,96,96,97,97,97,97,98,98,97,97,98,98,98,53,99,101,47,101,100,47,100,100,100,101,100,102,101,47,102,102,101,101,99,99,54,102,99,56,56,102,102,100,54,55,55,56,56,57,57,58,58,58,60,60,60,61,61,61,61,61,62,62,62,196,196,196,196,196,63,60,61,61,62,62,92,62,92,92,93,92,94,94,94,94,128,129,130,130,131,132,133,134,135,135,136,137,138,139,140,141,142,70,71,71,72,72,73,136,196,136,197,196,197,197,197,197,197,197,198,197,198,198,197,197,197,196,197,197,197,197,196,196,196,196,196,196,197,197,197,197,198,198,198,198,198,197,198,197,198,198,198,198,198,198,198,198,198,198,198,222,221,221,221,221,221,221,220,220,220,220,220,220,220,220,220,220,220,220,220,219,219,219,219,219,219,219,219,196,196,196,197,197,197,197,197,197,198,198,198,197,198,197,198,197,198,198,198,197,198,197,198,196,197,197,197,197,198,196,196,196,197,197,197,197,197,197,198,198,198,197,197,197,198,198,198,198,198,197,198,198,198,197,198,197,196,198,196,196,197,197,197,197,198,197,198,198,198,198 +,252,252,252,109,252,108,252,252,252,109,252,108,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,252,252,252,107,107,109,107,252,107,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,109,107,252,107,252,107,109,107,252,107,252,252,109,107,109,107,109,107,109,109,109,107,109,107,109,107,107,36,35,36,35,36,36,36,36,36,36,36,35,36,36,36,36,36,36,37,37,37,37,37,37,37,37,34,36,37,39,39,41,42,44,44,46,47,37,38,37,38,37,38,37,38,37,38,37,38,37,38,38,38,38,38,38,39,39,39,39,39,39,39,39,39,39,39,39,40,39,40,39,40,39,40,39,40,39,40,39,32,34,34,36,36,38,39,40,41,43,43,45,45,47,41,41,41,41,41,41,42,42,42,42,42,42,42,42,43,42,43,42,43,42,43,42,41,42,42,42,34,37,38,41,42,45,47,42,42,42,42,42,42,42,42,42,42,42,40,41,41,42,41,42,41,42,41,42,42,43,32,36,39,44,47,43,43,44,43,45,46,46,43,44,44,45,44,45,44,45,44,45,45,45,45,45,46,45,45,46,46,45,44,46,44,46,47,44,46,47,103,103,97,97,98,98,99,99,97,98,99,100,100,97,98,49,100,101,101,101,102,100,101,102,101,103,101,103,102,103,102,103,51,52,96,96,97,97,52,53,97,98,53,98,98,97,97,98,54,98,98,99,98,56,98,56,55,56,55,56,56,57,56,57,57,99,57,58,57,58,57,58,58,59,58,59,58,59,59,59,59,60,59,60,60,61,60,61,60,61,61,61,60,61,61,63,63,63,196,196,196,196,196,196,197,198,198,198,61,62,62,63,63,63,93,92,93,93,94,94,93,94,94,94,95,95,94,95,64,65,65,66,66,67,67,68,68,69,69,70,70,71,71,72,136,136,136,197,196,136,196,198,197,198,197,198,197,198,197,198,196,196,196,197,196,197,197,197,197,196,197,198,196,197,196,197,197,198,197,198,197,198,197,198,198,198,197,198,197,198,197,198,197,198,198,198,198,198,198,198,222,222,222,222,222,222,221,222,221,221,221,221,220,221,220,221,220,220,220,220,220,220,220,220,219,196,196,197,196,197,197,198,197,198,197,198,198,198,197,198,197,198,197,198,197,198,197,198,197,196,196,197,197,198,198,197,196,197,196,197,197,198,197,198,197,198,198,198,197,198,197,198,197,198,198,198,197,198,198,198,197,196,197,198,196,197,196,197,197,198,197,198,198,198,198,198 +,252,252,108,252,108,252,108,252,252,252,108,252,108,252,109,252,252,252,109,252,109,252,108,252,252,252,108,108,108,252,108,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,252,107,107,107,107,109,252,107,107,107,252,107,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,107,109,107,107,107,252,109,109,109,252,252,252,252,107,107,107,107,109,109,109,107,109,107,109,107,109,107,107,37,37,33,35,36,37,38,40,41,42,43,45,46,47,39,41,43,45,47,38,38,38,38,38,38,38,38,38,38,38,38,38,39,39,39,38,34,36,37,38,39,40,41,42,43,45,46,47,39,39,40,39,40,39,40,40,40,40,40,40,40,40,40,40,40,40,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,42,42,42,43,42,43,42,43,42,43,42,43,42,43,47,44,41,38,35,32,40,47,43,44,44,44,44,44,44,44,44,44,42,44,44,44,43,44,44,44,47,45,43,41,40,37,36,34,32,43,44,43,44,43,42,42,32,33,35,36,37,38,40,41,42,43,45,46,47,44,45,45,45,45,97,98,98,98,98,98,46,32,35,38,41,44,47,47,47,99,99,100,100,100,100,100,100,45,101,46,101,101,46,101,46,102,102,102,96,97,97,96,98,99,50,50,99,99,98,50,51,99,100,51,52,51,101,102,102,102,102,52,53,53,53,53,53,53,53,53,54,54,54,54,54,54,55,55,55,55,55,55,56,56,98,56,56,56,56,98,57,57,57,57,57,57,58,57,58,58,58,58,59,100,59,59,59,59,59,59,60,60,60,60,60,60,61,60,61,61,61,61,61,61,62,62,62,62,62,63,63,63,196,196,196,197,197,198,197,197,198,198,198,198,198,198,92,62,63,92,93,92,93,93,94,94,94,94,64,94,65,64,66,65,67,66,67,67,68,68,68,68,69,69,69,70,71,71,71,135,136,136,136,136,136,198,197,198,198,198,198,198,198,196,196,196,196,196,196,196,197,197,197,197,197,197,198,198,198,197,197,197,198,197,198,198,198,198,198,197,198,197,198,197,198,198,198,197,198,198,198,198,198,198,198,198,198,198,198,222,222,222,222,222,222,222,222,221,221,221,221,221,221,221,221,220,221,220,220,220,196,196,196,196,197,197,197,197,198,198,198,198,198,198,198,197,198,198,198,197,198,198,198,197,198,198,196,196,197,197,198,196,197,197,197,197,197,197,197,197,198,198,198,197,198,197,198,197,198,198,198,197,198,198,198,197,198,196,197,198,196,196,197,197,197,197,198,198,198,198,198,198 +,252,252,252,109,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,109,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,109,107,109,252,252,107,252,107,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,107,107,109,107,109,107,252,107,252,107,252,107,252,109,252,109,252,107,109,107,109,107,109,109,109,107,109,107,109,107,107,107,38,39,38,39,34,34,37,37,39,40,42,42,45,45,47,39,39,40,39,40,39,40,39,40,39,40,39,40,39,40,39,40,40,41,40,40,40,41,40,41,40,41,40,40,40,41,40,41,40,41,41,41,41,41,41,42,41,42,42,42,41,42,41,42,41,42,42,43,42,43,42,43,42,43,42,43,42,43,42,43,42,43,42,44,43,44,44,44,44,44,44,44,44,44,44,44,44,44,44,46,45,46,45,46,45,46,45,46,45,46,45,47,45,42,40,37,35,32,47,45,45,45,45,46,45,45,45,45,45,45,45,45,46,45,46,46,46,44,45,44,45,45,42,43,43,43,43,43,43,46,47,46,47,47,47,96,97,97,97,98,99,99,99,99,99,99,100,100,99,100,100,100,100,100,101,100,101,101,100,101,100,100,100,101,102,101,102,102,102,102,103,103,51,103,97,97,96,51,52,98,52,99,53,52,53,52,53,53,101,101,54,53,54,53,54,54,55,54,55,54,55,54,55,55,56,55,56,55,56,55,56,56,57,56,57,56,57,57,57,57,58,57,58,57,58,58,58,58,59,58,59,58,59,59,60,59,60,59,60,60,60,60,61,60,61,60,61,61,61,61,61,62,61,62,62,62,63,63,62,62,63,63,63,63,143,143,196,197,198,198,198,198,198,197,198,198,198,198,198,198,198,92,93,93,92,94,94,64,66,65,66,64,66,65,66,67,67,67,68,68,67,67,68,68,68,68,69,69,70,70,70,71,71,71,135,137,138,140,140,141,142,142,143,128,129,196,140,140,140,141,141,142,142,143,198,197,198,198,198,197,198,198,198,197,198,197,198,197,198,198,198,198,197,197,198,197,198,197,198,197,198,198,198,197,198,197,198,197,198,198,198,197,198,198,65,65,66,217,222,222,222,222,222,221,221,221,221,220,221,220,221,220,196,196,197,196,197,196,197,196,197,197,198,197,198,198,198,197,198,197,198,197,198,197,198,197,198,197,198,196,197,197,198,196,197,196,197,196,197,197,198,197,198,197,198,198,198,197,198,197,198,198,198,198,198,197,198,198,198,197,196,197,198,196,197,196,197,197,198,197,198,198,198,198,198 +,108,252,108,252,252,252,108,252,252,252,252,252,252,252,252,252,109,252,252,252,109,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,252,252,109,107,107,107,107,107,107,107,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,107,107,107,109,107,252,109,252,109,252,252,252,252,107,107,109,107,109,109,109,109,109,107,109,107,109,107,107,107,39,40,47,39,32,34,37,39,42,44,47,40,39,40,40,40,96,34,36,38,41,43,45,47,40,41,40,41,40,41,40,42,41,42,41,42,41,42,41,42,41,42,41,42,41,42,41,42,42,43,42,43,42,42,43,43,42,43,32,33,34,34,36,36,37,38,39,40,41,42,43,43,44,45,46,47,43,44,44,44,44,47,46,44,43,41,40,38,37,35,34,32,45,45,45,46,45,46,47,47,46,33,35,36,37,38,40,47,42,43,45,46,47,47,96,96,34,36,38,39,41,43,45,47,97,97,97,33,35,36,37,38,40,41,42,43,45,46,47,99,100,45,45,45,45,45,44,45,45,46,102,103,96,96,97,96,97,41,43,41,44,47,99,99,100,100,100,100,100,100,100,101,50,50,101,50,101,101,51,101,101,101,51,51,101,102,101,103,101,103,103,103,53,53,96,96,53,53,53,53,54,54,54,54,54,54,54,54,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,57,57,57,57,57,57,57,57,58,58,58,58,58,58,58,58,59,59,59,59,59,59,59,59,60,60,60,60,60,60,60,60,61,61,61,61,61,61,61,61,62,62,62,62,62,61,62,62,62,62,62,62,63,48,63,63,63,53,63,197,128,128,143,143,198,143,198,198,198,198,198,198,198,198,198,198,132,132,93,94,94,92,93,64,65,93,68,66,66,68,67,67,68,68,68,68,70,68,68,69,69,69,70,70,70,70,71,71,72,72,73,73,73,73,138,138,138,138,139,139,139,139,140,140,140,140,141,141,141,141,141,142,142,142,143,143,143,143,143,198,198,198,198,198,198,198,198,198,198,198,198,197,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,66,66,217,78,217,217,222,222,222,221,221,221,221,220,221,220,220,198,196,196,196,196,197,197,197,197,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,196,196,197,198,197,197,197,197,197,197,197,197,198,198,198,198,197,197,197,197,198,198,198,198,198,197,198,198,198,198,196,197,197,198,196,196,197,197,197,197,198,197,198,198,198,198 +,252,108,252,109,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,252,107,107,252,107,252,107,252,107,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,107,107,107,107,252,107,252,107,252,107,252,107,109,107,252,109,252,109,107,107,109,107,109,109,109,107,109,107,109,107,107,107,107,41,41,41,41,41,41,41,41,41,41,41,41,41,41,42,41,42,42,42,42,42,42,42,42,42,42,42,42,42,42,32,35,38,41,44,47,43,43,43,43,43,43,103,101,100,101,100,101,100,101,101,103,103,44,45,44,45,44,45,44,45,44,45,44,45,45,46,45,46,45,46,45,46,45,46,45,46,45,46,45,46,45,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,96,97,96,98,97,98,98,99,99,101,100,102,101,102,101,103,102,103,96,96,96,96,96,96,96,96,97,96,97,48,48,97,48,46,97,57,48,57,97,48,98,52,98,99,99,100,100,46,100,45,100,100,46,102,101,103,103,97,103,97,97,98,98,98,50,99,50,99,51,99,100,100,101,100,51,52,51,52,52,53,52,53,52,53,102,53,53,102,53,54,53,103,53,96,54,55,54,55,54,55,54,55,55,56,55,56,55,56,55,56,56,57,56,57,56,57,56,57,57,58,57,58,57,58,57,58,58,58,58,59,58,59,58,59,59,59,59,59,59,60,59,60,60,60,60,60,60,61,60,61,60,61,61,61,61,62,61,62,61,62,61,62,62,62,62,63,62,62,62,62,62,62,63,62,63,62,61,62,60,61,63,88,63,63,63,143,143,143,128,128,143,128,131,129,131,129,132,132,132,132,133,133,133,92,65,65,93,66,64,66,92,64,67,64,69,67,69,70,70,70,70,70,69,70,70,69,69,70,70,71,70,72,71,72,72,73,73,74,73,74,74,75,75,76,75,76,76,77,77,78,77,78,78,79,79,79,64,79,64,64,64,65,64,66,65,66,66,67,67,68,132,132,132,132,133,133,134,134,135,135,198,136,198,198,198,198,197,198,198,198,198,198,198,198,198,198,198,198,198,198,77,217,77,217,77,217,222,222,222,221,221,221,220,220,219,219,219,198,196,197,196,197,196,197,197,198,197,198,197,198,197,198,197,198,197,198,197,198,197,196,196,196,197,198,196,197,196,197,197,198,197,198,197,198,198,198,197,198,197,198,197,198,197,198,198,198,197,198,198,198,196,197,197,198,196,197,196,197,197,198,197,197,198,197,198,198 +,108,252,108,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,252,107,107,107,107,107,107,107,107,107,107,252,107,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,107,109,107,109,107,252,109,109,109,252,252,252,252,252,109,107,107,109,109,109,109,109,107,109,107,107,107,107,107,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,44,44,44,44,44,34,36,38,40,43,45,47,34,36,37,38,39,41,42,43,44,46,47,45,46,45,46,45,46,45,46,45,46,45,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,96,96,47,44,41,38,35,32,98,98,47,43,40,36,32,99,99,99,100,100,100,47,43,39,36,32,35,38,41,44,47,102,103,102,102,102,102,102,102,57,97,41,43,41,42,41,42,44,45,47,46,61,46,49,99,61,99,49,102,98,100,98,100,100,100,43,100,46,102,101,102,102,102,102,103,96,96,96,97,98,52,97,52,52,53,53,53,53,53,53,53,53,54,53,54,54,101,54,54,54,54,54,55,54,55,55,55,55,55,55,56,55,56,56,56,56,56,56,56,56,57,57,57,57,57,57,57,57,58,58,58,58,58,58,58,58,59,58,59,59,59,59,59,59,60,59,60,60,59,60,60,60,59,60,60,60,61,61,61,61,61,61,62,61,62,62,62,62,62,62,62,62,63,63,63,63,63,63,60,60,61,61,61,63,61,61,62,62,62,63,62,62,62,61,62,62,59,61,88,88,88,88,89,59,62,89,63,89,89,67,91,65,65,66,92,68,92,65,66,68,65,67,66,68,67,68,65,68,67,68,68,68,70,70,71,70,71,70,70,71,71,70,71,71,71,71,72,72,72,72,73,73,74,74,74,74,75,75,76,76,76,76,77,77,77,77,78,78,78,78,79,79,79,64,79,64,64,64,65,65,65,65,66,66,67,67,68,68,68,68,69,70,70,70,71,71,72,72,73,73,73,73,74,74,75,75,76,76,76,76,76,76,76,77,77,77,217,77,217,217,217,222,222,221,221,221,221,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,198,198,198,198,198,198,198,198,196,196,196,196,196,196,198,197,197,197,197,197,197,198,198,198,198,198,198,197,197,198,197,198,197,198,198,198,197,198,198,198,198,196,197,197,198,196,196,197,197,198,198,198,198,198,198,198,198 +,252,252,252,109,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,107,252,107,109,107,252,107,252,107,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,107,107,252,107,109,107,252,107,252,107,252,107,252,109,252,109,252,109,109,109,107,107,109,109,109,109,109,107,109,107,107,107,107,107,47,39,32,34,37,38,41,42,45,46,32,33,35,35,37,38,40,40,42,43,45,45,47,45,44,45,44,45,44,45,45,46,46,46,45,46,46,46,45,46,46,46,45,46,46,46,45,47,47,47,47,47,47,47,47,47,47,44,43,40,39,36,34,32,96,97,32,34,37,39,42,44,47,96,97,96,47,39,32,39,47,97,98,97,98,98,99,98,98,99,99,47,44,41,38,35,32,34,37,39,42,44,47,101,102,101,52,102,102,102,34,35,38,39,42,43,46,47,102,102,102,102,97,96,57,97,102,102,102,97,102,102,49,51,49,102,99,49,50,100,100,50,100,45,100,45,43,101,101,101,100,102,102,103,52,96,52,96,53,96,97,52,98,52,53,53,54,53,54,53,54,53,54,100,55,54,55,54,55,54,55,55,55,55,56,55,56,55,56,56,56,56,57,56,57,56,57,57,57,57,58,57,58,57,58,57,58,58,58,58,59,58,59,58,59,59,59,59,60,59,60,59,60,60,60,60,61,60,60,61,60,58,60,61,61,60,59,60,61,61,61,61,63,62,63,62,62,63,62,62,63,62,63,62,62,62,61,63,60,63,63,62,61,61,61,63,61,62,61,63,61,63,63,62,62,61,62,61,61,62,88,63,63,89,62,89,61,90,90,65,64,90,66,67,64,67,67,67,66,68,67,68,69,66,68,69,69,67,68,70,68,69,70,69,71,71,72,72,71,72,72,71,72,71,72,72,73,72,73,73,74,73,74,75,74,74,75,75,76,75,76,76,77,76,77,77,78,78,79,78,79,79,79,79,79,64,79,64,64,64,65,65,66,66,67,66,67,67,68,68,69,69,70,69,70,70,71,71,72,72,73,72,73,73,74,74,75,75,76,76,76,217,217,217,217,217,217,217,217,222,222,221,221,221,221,220,221,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,196,197,196,198,196,197,197,198,197,198,197,198,197,198,198,198,197,198,197,198,197,198,198,198,197,198,198,198,198,196,196,193,196,193,196,197,197,198,199,199,199,193,193,198,198,198 +,108,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,252,252,252,252,107,107,107,107,107,107,107,107,107,252,107,109,107,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,107,107,107,107,107,109,107,109,109,252,109,252,109,252,252,252,252,252,252,107,107,109,107,109,107,109,107,109,107,107,107,107,44,44,45,44,45,44,45,44,44,44,45,97,97,99,99,100,100,102,102,103,96,45,45,45,97,98,99,101,102,103,46,46,47,47,47,47,47,103,100,101,100,101,101,101,47,32,34,37,39,42,44,47,97,98,98,98,98,99,99,99,100,100,100,101,101,101,101,102,102,102,102,103,103,96,96,96,96,97,97,97,32,35,37,40,42,45,47,47,47,44,47,42,47,47,101,52,100,100,100,100,100,102,101,100,100,102,101,102,102,50,102,102,102,102,102,102,102,102,50,50,102,102,102,57,102,102,102,97,102,57,103,98,98,98,50,99,50,50,50,99,50,50,99,100,51,45,51,45,51,101,100,52,102,102,102,102,52,52,52,53,53,53,53,53,53,53,53,54,54,54,54,54,54,54,54,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,57,57,57,57,57,57,57,57,58,58,58,58,58,58,58,58,59,59,59,59,59,59,59,59,60,60,60,60,60,60,61,60,61,61,61,61,61,60,61,60,61,58,61,61,60,60,59,59,61,61,61,62,62,63,61,61,61,63,63,62,62,63,62,62,62,61,61,60,61,61,61,61,61,62,61,63,61,61,63,63,63,62,58,62,58,61,62,89,88,87,62,86,88,64,90,90,64,66,65,66,67,68,68,67,66,67,68,68,68,68,69,69,70,69,68,69,70,69,70,69,69,70,70,71,73,74,72,72,74,72,73,72,73,73,73,73,73,73,74,75,75,74,75,75,75,75,76,76,76,76,77,77,77,77,78,78,78,78,79,79,79,79,79,79,79,64,64,64,64,64,65,27,31,30,29,28,27,26,26,25,24,23,22,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,221,221,221,221,221,221,221,221,220,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,196,197,197,197,197,197,197,197,197,198,198,198,198,198,198,197,197,197,197,197,197,198,198,198,198,197,197,198,198,199,199,199,199,199,193,199,196,193,199,193,193,193,193,199,199,199,199 +,252,108,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,252,107,109,107,252,107,252,107,252,107,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,109,107,107,107,252,107,252,107,252,107,252,107,252,109,252,109,252,109,252,109,252,252,107,109,109,109,109,107,109,107,109,107,107,107,45,46,46,46,46,46,47,32,34,36,39,40,43,45,47,102,103,47,47,47,98,98,100,100,102,103,47,47,47,47,96,96,97,96,97,96,97,32,98,97,98,97,100,100,100,98,99,98,99,99,100,99,100,99,100,100,101,100,47,45,44,41,40,37,36,33,32,102,103,102,103,47,32,34,37,39,42,44,47,97,97,98,98,99,101,51,51,33,47,43,40,35,32,47,47,51,103,100,102,102,102,101,101,102,101,100,45,99,50,103,103,102,102,50,50,57,50,50,50,50,50,57,103,102,102,57,54,57,58,50,54,50,53,50,50,50,49,50,51,50,50,50,100,100,51,100,51,100,52,45,52,52,101,102,101,52,53,52,96,53,54,53,54,53,54,53,54,54,55,54,55,54,55,54,55,55,56,55,56,55,56,56,56,56,57,56,57,57,57,57,58,57,58,57,58,58,59,58,59,58,59,58,59,58,59,60,60,60,59,59,59,60,61,61,60,61,60,61,61,61,62,61,62,62,62,62,62,63,61,61,61,62,61,60,60,61,60,61,59,94,59,62,63,62,63,83,83,82,61,62,63,82,62,63,63,63,61,83,84,84,62,62,62,62,62,62,62,63,62,62,62,63,63,62,62,62,62,62,85,62,61,62,86,87,88,89,65,66,67,68,67,67,69,68,69,68,69,70,69,70,69,70,70,70,71,71,70,71,71,71,71,72,72,71,73,72,73,72,74,74,74,74,74,74,74,74,75,74,75,75,74,76,75,75,75,76,76,76,77,76,77,76,77,77,78,77,78,78,79,78,79,78,79,79,79,64,79,31,64,28,65,26,31,29,28,25,24,22,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,217,218,217,218,217,217,217,217,221,217,221,217,221,217,221,221,221,221,220,221,220,221,220,220,219,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,197,196,197,197,198,197,198,198,198,198,198,197,198,198,196,196,197,196,197,197,198,197,198,198,198,198,198,198,199,199,193,196,193,193,193,193,193,193,194,193,199,199,199,193,193,193,193 +,108,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,107,107,107,107,252,107,107,107,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,107,107,107,109,107,107,107,252,109,109,109,252,252,252,109,252,252,252,252,252,252,252,109,109,109,109,107,109,107,107,107,107,47,32,35,38,41,44,47,47,47,47,47,47,47,103,102,103,103,32,33,34,35,36,37,39,39,41,41,43,44,45,46,47,98,98,47,45,43,41,38,37,34,32,47,99,99,99,99,32,34,37,39,42,44,47,100,101,101,101,101,101,101,101,101,102,102,102,102,102,47,40,32,47,103,103,96,96,96,97,96,97,97,98,102,98,100,101,99,98,100,99,50,98,103,99,49,100,49,100,102,100,49,101,101,101,102,51,102,102,102,102,50,51,51,50,100,100,100,100,52,102,57,54,50,58,102,54,50,50,61,63,50,56,51,50,49,103,50,50,50,50,50,51,51,100,100,100,51,99,52,46,52,52,101,53,102,53,53,53,53,53,53,54,54,54,54,54,54,55,55,55,55,55,55,56,55,56,56,56,56,56,56,57,57,57,57,57,57,58,58,58,58,58,58,59,58,59,59,59,59,59,59,59,58,60,60,58,60,60,60,60,59,60,61,61,62,60,61,61,62,61,62,62,63,63,63,62,62,63,61,61,61,62,60,60,61,61,61,62,61,60,94,60,61,81,81,64,63,63,82,82,62,82,82,64,62,82,83,82,60,60,84,84,62,62,83,61,62,64,62,63,66,62,64,61,62,85,62,86,63,86,85,86,87,87,64,65,67,68,67,69,68,68,69,69,69,70,70,70,72,70,71,71,71,71,72,72,73,72,73,72,73,72,73,72,74,73,74,74,73,75,75,75,75,74,75,74,74,75,74,76,76,75,76,76,75,76,76,76,76,77,77,77,77,78,78,78,78,79,78,79,79,79,79,79,64,79,29,64,26,65,23,65,29,66,27,31,29,28,26,25,23,22,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,217,217,217,217,217,217,221,217,221,221,221,221,221,221,221,221,221,220,220,220,220,220,219,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,198,196,196,198,198,198,198,198,198,198,199,196,196,196,196,193,193,193,194,193,194,196,199,199,193,193,193,193,193,193,193 +,252,108,252,108,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,252,107,107,107,252,107,252,107,252,107,252,107,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,109,107,252,107,109,107,252,107,252,107,252,107,252,109,252,109,252,109,252,109,252,252,252,109,252,252,252,107,109,107,252,107,107,107,102,101,32,33,36,37,39,40,42,43,46,47,103,102,103,103,103,102,96,96,96,96,97,96,97,96,97,97,97,97,98,98,98,97,98,98,99,98,99,98,99,98,98,99,99,100,99,101,100,99,100,100,101,100,101,100,101,34,37,38,41,42,45,47,102,101,102,102,103,102,103,102,102,96,103,96,97,97,97,97,99,51,99,100,51,99,50,51,103,51,97,96,96,96,96,52,103,102,49,100,101,49,45,51,100,51,100,50,102,50,102,52,53,100,45,52,103,50,50,50,50,49,50,54,55,50,50,55,54,59,52,50,50,50,50,53,50,50,51,50,51,51,51,51,52,51,100,52,52,100,53,52,53,53,53,53,54,53,54,53,54,54,55,54,55,55,55,55,56,55,56,55,56,56,57,56,57,56,57,57,58,57,58,57,58,58,59,58,59,58,59,59,60,59,60,59,60,60,60,61,59,60,59,61,59,60,60,60,88,59,60,61,61,61,61,62,62,63,61,62,62,62,62,61,63,63,63,61,63,62,63,62,61,94,61,61,59,62,93,60,60,62,63,64,81,64,81,65,82,82,65,82,64,83,63,65,83,83,66,83,83,83,62,64,84,83,67,65,67,66,63,67,64,64,85,65,86,65,87,65,69,86,69,66,67,69,69,70,70,70,71,70,70,70,71,71,72,71,72,73,72,74,73,74,74,73,73,73,74,73,74,73,74,75,74,74,74,75,75,74,76,75,76,75,76,75,74,75,75,76,77,75,76,76,76,76,77,76,77,77,78,77,78,78,78,78,79,78,79,78,79,79,79,64,79,64,64,64,65,25,65,24,66,22,67,26,67,25,25,23,31,29,28,25,24,22,218,218,218,218,218,218,218,218,218,217,218,217,218,217,217,217,217,221,217,221,217,221,221,221,221,221,221,220,221,220,221,220,221,220,220,220,220,219,220,219,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,198,199,196,196,193,196,193,196,193,194,193,194,199,199,196,196,193,193,193,193,194,193,194 +,252,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,107,107,107,107,107,109,107,252,107,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,107,107,107,107,107,109,107,109,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,107,109,107,107,107,107,107,102,101,102,102,102,102,102,102,102,102,34,35,37,38,40,41,43,44,46,47,96,96,32,34,36,38,41,43,45,47,99,99,98,98,98,98,98,98,98,98,99,98,99,99,99,102,49,99,100,100,100,100,46,101,101,100,102,101,101,101,101,101,102,101,100,102,102,102,103,103,103,98,101,103,51,97,97,51,52,101,100,51,102,53,102,51,97,51,97,49,98,49,52,102,50,102,50,101,50,50,101,49,102,51,100,100,51,51,100,103,51,51,51,51,97,51,51,51,52,51,51,49,48,48,48,50,55,52,50,50,50,50,50,50,50,50,51,50,51,51,51,51,52,52,52,52,53,52,53,53,53,53,53,53,54,54,54,54,55,55,55,55,55,55,56,56,56,56,56,56,57,57,57,57,58,57,58,58,58,58,58,58,59,59,59,59,60,60,60,60,60,60,61,60,61,61,61,61,61,61,62,60,59,60,62,59,60,58,88,59,60,59,60,63,62,62,62,63,63,63,62,62,61,90,91,92,63,92,63,92,62,93,61,61,95,60,94,94,62,63,62,80,65,65,65,82,65,65,82,82,66,66,67,67,83,68,84,67,66,65,84,83,64,65,69,69,67,68,68,68,68,68,69,70,66,69,67,67,71,70,71,71,71,71,71,72,72,71,71,71,71,71,71,72,73,72,74,75,74,74,74,74,74,75,74,75,74,74,74,74,74,75,75,74,75,74,75,76,75,75,76,75,75,76,75,75,76,75,76,77,76,76,77,77,77,77,77,77,78,77,78,78,78,78,79,78,79,79,79,79,79,64,79,64,64,64,64,64,65,65,65,26,66,25,67,24,67,23,68,22,31,29,27,24,22,31,23,218,218,218,218,218,218,218,218,218,218,218,218,217,217,217,217,217,217,221,217,221,221,221,221,221,221,221,221,220,220,220,220,220,219,220,220,220,220,219,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,199,196,196,196,196,193,193,193,193,194,194,199,196,196,196,193,193,194,193,194,193,194,193 +,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,252,107,252,107,252,107,252,107,252,107,252,107,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,109,107,107,107,252,107,252,107,252,107,252,107,252,107,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,107,109,107,107,107,107,101,32,34,37,38,41,42,45,47,102,102,103,103,103,103,103,96,103,103,96,97,96,96,96,97,97,97,97,99,98,99,98,98,97,103,99,98,99,99,99,100,99,99,99,47,99,103,100,102,101,100,103,101,100,100,51,101,102,101,101,102,102,103,102,102,102,102,101,49,49,101,51,101,101,50,102,102,102,100,51,51,98,52,97,52,52,52,52,52,49,49,98,50,51,50,50,102,50,49,50,46,50,50,100,50,51,50,50,50,51,51,102,51,51,51,51,51,102,102,51,102,51,50,51,51,51,50,48,48,54,51,51,50,51,50,50,50,53,51,52,51,52,52,53,52,53,53,54,53,54,53,54,54,54,54,55,54,55,55,56,55,56,56,57,56,57,57,57,57,58,57,58,58,59,58,59,58,59,59,60,59,60,60,61,60,61,61,61,62,61,60,62,60,61,60,62,62,62,61,62,60,59,59,61,59,60,62,60,58,88,59,61,64,62,61,62,63,62,89,89,90,63,91,91,62,91,92,92,92,93,93,94,63,94,62,94,80,80,95,62,95,65,66,65,64,66,66,65,64,65,65,66,68,68,69,68,69,68,68,69,68,67,67,69,71,67,70,70,69,71,70,70,71,72,71,70,69,73,70,71,72,71,72,72,72,72,72,72,72,73,73,73,73,73,74,74,74,74,75,74,74,75,74,75,75,74,75,75,75,75,75,74,75,75,75,75,75,75,75,76,76,75,76,77,76,77,76,76,76,76,76,77,76,77,77,78,77,78,77,78,78,79,78,79,78,79,78,79,79,79,64,79,29,79,64,64,27,65,27,66,30,66,29,67,28,67,27,68,27,69,26,218,25,30,24,27,23,24,22,218,218,218,218,218,218,218,218,218,218,218,217,218,217,217,217,217,221,217,221,217,221,221,221,221,221,221,220,221,220,221,220,220,220,220,219,220,219,220,219,220,219,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,199,196,196,196,196,193,196,193,194,194,194,199,196,196,196,193,196,194,193,194,193,194,194,194 +,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,107,107,107,107,107,107,107,107,252,107,109,107,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,107,107,107,107,107,107,252,109,109,109,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,107,109,107,252,107,107,107,107,101,102,102,102,102,102,102,102,102,103,103,102,102,103,103,47,32,36,39,43,47,99,97,98,97,98,97,98,98,100,98,100,99,101,96,100,96,99,101,51,97,96,51,99,47,102,100,103,101,102,102,102,102,51,52,99,51,102,103,103,102,102,103,102,102,52,52,102,101,102,101,51,51,102,50,51,51,102,52,52,52,53,52,53,52,52,97,51,50,51,96,50,50,51,102,50,101,50,50,100,50,50,50,50,50,51,51,51,51,51,52,102,52,53,52,52,52,52,52,52,52,52,51,51,52,51,51,51,51,51,51,54,51,51,52,51,54,52,52,52,52,53,53,53,53,53,53,54,54,54,54,55,55,55,55,56,56,56,56,57,57,57,57,58,58,58,58,58,58,59,59,59,59,60,60,60,60,61,61,61,61,61,62,62,62,62,62,62,62,63,61,63,62,62,62,62,84,62,84,62,63,61,61,62,60,60,60,60,60,59,60,89,69,61,88,63,69,62,90,90,88,90,90,63,91,63,91,92,93,94,63,94,94,94,64,94,95,81,64,66,65,65,66,65,66,66,67,67,68,67,67,68,69,68,68,68,69,68,69,70,71,72,71,71,70,72,70,72,71,73,71,70,71,71,71,72,72,73,72,73,72,72,72,73,72,73,73,73,74,72,73,73,73,74,75,73,74,74,75,75,75,75,75,76,75,75,76,75,75,75,75,75,75,76,76,75,76,75,76,75,76,76,76,77,76,76,77,77,76,77,77,77,77,78,78,78,78,78,78,78,78,79,79,79,30,79,79,79,64,79,64,64,28,64,28,65,27,65,27,66,30,67,29,67,28,68,27,68,26,31,25,27,23,25,22,22,22,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,217,217,217,217,217,217,221,221,221,221,221,221,221,221,220,221,220,220,220,220,220,220,220,220,220,220,219,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,196,196,196,193,196,196,196,193,194,193,194,196,196,196,196,193,193,194,193,194,194,194,194,193,194 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,107,107,252,107,252,107,252,107,252,107,252,107,252,107,252,107,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,252,107,252,107,252,107,252,109,252,109,252,109,252,109,252,252,252,109,252,252,252,109,109,107,109,107,252,107,107,107,102,101,102,101,102,102,102,102,102,103,103,102,103,102,103,96,97,97,97,97,97,97,97,97,98,96,100,99,98,51,102,100,51,100,103,97,97,51,97,96,47,97,96,101,103,51,101,50,51,50,99,98,102,99,99,52,51,51,102,103,101,53,103,52,103,102,54,102,53,102,102,52,102,54,102,52,52,52,52,52,53,52,52,52,52,52,52,52,52,52,52,52,52,52,52,51,50,50,50,51,50,50,51,50,49,51,52,51,52,52,53,52,53,53,54,53,53,53,53,53,53,53,54,54,54,52,52,51,52,54,51,51,54,51,52,51,51,52,52,53,52,53,53,54,53,54,55,54,55,55,56,56,55,56,56,56,57,57,58,57,58,58,59,58,58,59,58,59,58,60,59,61,61,61,62,61,62,62,62,63,62,61,63,61,61,60,60,62,62,62,63,63,63,63,61,82,62,82,63,59,84,62,85,62,61,60,62,62,62,88,88,62,60,64,88,89,64,64,90,69,91,65,91,91,67,92,91,92,93,64,64,65,64,94,64,64,64,65,65,65,66,67,67,66,67,67,67,67,67,67,68,68,68,69,68,69,69,70,69,69,70,72,71,72,72,72,71,72,71,73,72,71,72,72,73,73,74,73,71,74,73,73,73,73,73,73,73,74,73,74,73,74,75,74,74,74,74,74,74,74,75,75,75,75,75,76,75,75,76,76,75,75,76,75,77,76,76,75,76,77,76,76,76,76,77,77,76,77,77,77,78,77,78,78,78,78,78,78,79,78,79,79,79,79,79,64,79,64,79,64,64,64,65,31,65,30,66,29,66,27,67,27,68,26,68,25,69,23,30,23,31,22,31,23,29,30,26,28,24,26,218,25,218,23,218,22,218,218,218,218,218,218,218,218,218,217,218,217,217,221,217,221,217,221,221,221,221,220,221,220,221,220,221,220,221,220,220,220,220,219,220,219,220,219,220,219,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,196,196,196,193,196,194,196,194,194,193,194,194,199,196,196,193,196,194,193,194,193,194,193,194,194,194 +,252,252,252,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,107,107,107,107,107,107,107,107,107,109,107,252,252,252,252,107,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,107,109,107,109,107,109,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,109,107,107,107,109,107,107,107,107,107,102,101,102,102,102,102,103,103,103,102,96,103,96,103,97,96,97,98,103,97,99,100,98,53,98,99,98,97,97,99,97,100,99,97,102,52,97,102,51,101,51,101,51,51,103,50,50,98,99,99,51,98,51,102,96,52,53,53,102,53,53,52,102,102,102,102,53,52,53,52,52,52,52,53,52,52,53,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,53,53,53,53,53,53,54,55,55,54,56,55,56,51,58,52,56,56,54,58,51,54,54,52,51,53,52,52,53,53,55,54,55,55,55,56,56,57,57,57,57,55,57,56,58,58,59,59,60,60,60,61,61,59,61,59,61,62,58,62,60,60,60,61,61,62,62,63,63,62,62,63,62,62,62,62,62,62,62,95,63,80,62,82,63,83,84,84,61,59,85,59,60,60,62,59,63,90,60,62,64,61,66,67,65,68,71,68,68,69,65,65,66,69,67,65,65,65,66,66,66,66,66,66,66,65,66,66,66,67,67,67,67,67,67,68,67,67,68,68,68,69,69,69,69,71,69,70,71,70,71,72,71,72,72,72,73,73,72,73,73,73,72,74,72,73,72,73,74,74,74,74,73,73,73,74,74,73,75,74,74,74,74,74,74,74,74,74,75,75,75,75,75,75,75,75,76,76,76,76,76,77,77,76,77,76,76,77,76,78,77,76,77,76,77,78,77,78,78,78,78,78,78,79,79,79,79,79,79,79,79,79,64,64,64,64,64,64,64,65,28,65,28,66,27,66,27,67,26,67,26,68,26,68,25,69,25,79,31,31,29,26,26,24,31,23,29,22,26,218,24,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,217,217,217,217,217,217,221,221,221,221,221,221,221,221,221,221,220,220,220,220,220,220,220,220,220,220,219,220,219,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,196,196,196,193,196,194,196,194,193,194,194,194,196,193,196,196,196,194,193,194,194,194,194,194,197,194,194 +,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,108,107,107,107,252,107,252,107,252,107,252,107,252,107,107,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,109,107,252,107,252,107,252,107,252,109,252,109,252,109,252,109,252,109,252,252,252,109,252,109,107,109,109,107,109,107,107,107,109,101,102,101,102,101,102,103,103,103,103,96,103,103,96,97,97,97,52,97,98,97,103,53,52,47,101,52,99,97,52,99,52,46,52,46,52,52,52,52,54,53,54,54,51,51,50,51,102,52,53,53,49,52,52,53,53,53,50,103,102,52,102,102,53,102,52,102,52,53,53,52,53,53,53,53,53,53,53,53,53,52,53,52,53,52,53,52,53,52,53,52,53,52,53,52,53,52,53,52,53,52,53,52,53,53,53,52,53,53,53,53,53,53,53,54,54,54,54,54,55,56,55,56,57,56,54,57,54,56,58,56,57,53,56,58,53,52,55,53,54,55,53,55,55,57,58,57,58,58,58,58,57,58,57,59,59,57,60,58,61,59,62,63,63,61,61,61,59,60,63,59,60,63,63,63,60,60,60,63,63,92,62,93,63,63,61,63,81,62,63,95,81,63,63,80,83,82,84,85,84,64,60,64,64,84,62,86,86,64,69,59,86,67,68,67,68,67,70,71,73,75,67,69,70,68,69,66,66,69,66,71,68,67,68,67,66,66,67,67,67,67,67,67,68,68,68,68,68,68,69,69,69,68,69,69,69,70,69,69,70,71,71,71,72,72,72,72,73,73,72,73,73,73,73,74,73,74,73,74,74,74,74,74,73,74,73,74,75,74,75,73,74,75,75,74,74,74,75,74,75,76,75,76,75,75,75,76,76,77,76,77,76,77,77,77,77,76,77,78,77,78,77,77,77,78,78,77,78,78,79,78,79,78,79,79,79,79,79,64,79,64,79,64,79,64,64,64,65,64,65,65,66,27,66,27,67,27,67,30,68,29,68,28,69,27,69,26,70,25,79,24,27,23,25,22,24,23,22,22,218,22,218,31,218,26,218,22,218,218,218,218,218,218,218,218,218,218,218,217,218,217,217,217,217,221,217,221,217,221,221,221,221,220,221,220,221,220,221,220,221,220,220,220,220,219,220,219,220,219,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,196,196,193,196,194,193,194,193,194,193,194,196,193,196,193,196,194,193,194,193,194,193,194,197,194,197,194 +,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,107,108,107,107,107,107,107,108,107,252,107,109,107,252,107,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,107,107,107,109,109,109,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,109,107,109,109,109,107,109,107,107,109,101,102,101,52,103,102,52,103,103,102,52,103,96,52,96,52,97,97,52,98,52,96,52,96,52,103,96,52,102,99,52,52,54,54,101,52,53,52,54,101,54,53,52,53,52,53,53,49,52,96,52,52,52,53,53,53,102,53,52,54,102,52,52,53,52,102,53,52,53,52,53,52,53,53,53,53,53,53,53,52,53,53,53,52,53,53,53,52,53,53,53,52,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,54,54,54,54,54,55,55,55,55,55,55,55,56,56,56,56,58,54,52,53,56,59,52,52,56,54,56,55,57,54,56,57,59,60,59,60,58,63,57,63,57,62,58,62,57,89,58,63,58,61,62,61,62,61,62,59,63,62,91,62,60,62,59,61,61,58,92,92,63,92,92,63,63,93,62,81,61,81,62,81,82,82,82,81,82,84,83,84,86,64,65,87,66,87,86,65,65,86,69,66,66,65,64,66,68,69,75,72,73,73,74,68,68,74,73,73,72,69,73,68,72,75,68,68,69,69,69,69,70,68,68,67,67,69,69,70,69,69,70,69,70,69,70,70,70,70,71,71,71,71,70,70,71,72,72,73,72,71,73,72,73,74,73,73,74,73,74,74,74,75,75,74,74,75,74,74,75,74,75,74,75,75,75,75,75,75,75,74,75,76,75,76,76,76,76,76,76,77,76,77,77,77,77,77,77,77,78,77,78,78,78,78,78,78,78,78,78,79,79,79,79,79,79,79,79,79,79,64,64,64,64,64,64,64,64,65,65,65,65,66,66,66,66,66,66,67,23,67,26,68,26,68,25,69,25,69,25,70,24,70,24,27,24,29,23,30,23,218,22,218,30,218,28,218,26,218,24,218,23,218,218,218,218,218,218,218,218,218,218,218,217,217,217,217,217,217,221,217,221,221,221,221,221,221,221,221,221,221,220,221,220,220,220,220,220,220,219,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,196,196,196,196,194,193,194,194,194,194,194,196,193,193,196,196,193,193,194,194,197,197,197,197,197,197,197,197 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,108,107,252,107,109,107,252,107,252,107,252,107,252,107,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,252,107,109,107,252,107,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,109,107,107,109,107,109,107,109,107,109,109,101,53,102,102,52,102,53,102,53,53,102,103,53,96,103,52,52,97,52,47,53,54,53,54,53,54,102,52,52,102,53,52,53,54,54,53,53,101,54,54,52,53,52,53,54,53,54,53,54,54,52,53,53,52,53,53,53,50,52,52,52,102,52,53,53,53,53,53,53,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,54,54,54,54,54,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,58,52,55,57,58,52,55,58,58,60,57,53,56,59,56,58,55,59,56,63,63,85,63,60,86,60,88,62,90,59,90,59,89,60,61,60,89,63,90,63,62,91,63,92,60,60,63,62,61,60,62,60,92,93,92,92,63,93,93,63,94,63,81,80,65,62,65,81,83,83,83,65,65,65,64,65,65,65,65,66,89,65,88,66,66,68,70,66,68,70,71,71,75,72,70,74,75,73,75,74,73,74,72,68,71,73,72,72,73,71,72,69,68,69,71,72,70,70,71,69,71,70,70,71,71,71,71,70,71,72,71,71,72,71,72,72,71,72,71,71,70,72,72,73,73,72,73,73,73,73,74,74,74,74,74,74,74,75,74,75,75,75,75,74,75,75,75,75,75,76,76,75,75,76,75,75,76,76,76,77,76,77,76,77,76,77,77,78,77,78,77,78,77,78,78,79,78,79,78,79,78,79,79,79,64,79,64,79,64,79,64,79,64,64,64,64,64,65,28,65,28,65,65,66,30,66,30,67,29,67,28,68,27,68,27,69,26,69,25,70,24,70,24,71,23,71,30,72,28,27,27,28,26,29,24,31,23,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,217,217,217,221,217,221,217,221,217,221,217,221,221,221,221,220,221,220,221,220,221,220,221,220,220,219,220,219,220,219,220,219,219,219,220,219,219,219,220,219,219,219,220,219,219,219,220,219,196,196,193,196,194,193,194,193,194,194,196,196,196,196,197,196,194,194,194,194,197,197,198,197,198,197,198,197,198 +,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,108,107,108,107,107,107,109,107,109,107,252,107,107,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,107,109,107,109,107,109,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,109,107,109,109,109,107,109,107,107,107,109,109,50,52,102,53,102,53,53,102,98,103,53,98,102,53,53,53,54,53,98,53,54,54,54,54,54,54,54,54,54,54,54,54,55,101,55,54,55,55,54,54,54,53,53,53,54,53,54,55,54,55,101,55,55,52,52,53,52,52,52,53,53,53,53,53,53,53,54,53,53,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,54,54,54,54,54,54,54,54,54,54,54,55,54,55,54,55,54,54,55,56,56,56,56,56,56,56,56,56,56,56,57,56,57,57,57,58,58,57,57,57,56,57,55,59,60,59,60,58,63,57,58,62,85,85,86,86,86,62,87,88,89,90,62,90,89,64,60,89,62,89,91,90,62,66,91,92,90,93,91,91,91,92,62,94,63,92,61,92,93,93,95,94,80,94,95,81,81,66,81,67,82,82,65,65,65,68,65,66,66,66,67,66,66,66,66,66,66,66,67,67,67,67,68,70,70,75,72,72,74,75,75,75,73,71,75,72,74,71,71,75,73,73,72,74,73,71,71,72,72,71,71,71,72,71,73,71,71,73,72,72,72,72,72,72,73,72,72,72,72,73,73,71,72,73,71,72,73,72,73,73,73,73,73,74,73,74,74,74,74,74,74,75,74,75,75,75,75,75,75,75,75,76,76,76,76,76,76,76,76,77,77,77,77,77,77,77,77,78,77,78,78,78,78,78,78,79,78,79,79,79,79,79,79,79,30,79,79,79,64,79,29,64,29,64,64,64,64,64,64,65,65,65,65,66,65,66,66,66,66,67,67,67,67,68,68,68,26,69,25,69,25,70,25,70,24,70,24,71,30,71,29,72,27,22,30,218,29,218,27,218,26,218,30,218,28,218,25,218,23,218,218,218,218,218,218,218,218,218,218,218,217,217,217,217,217,217,217,217,221,217,221,221,221,221,221,221,221,221,221,221,220,220,220,220,220,220,220,220,219,220,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,219,196,196,196,196,194,193,194,193,194,194,196,196,196,196,196,196,197,197,197,197,197,197,197,197,198,197,198,198,198,198 +,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,108,107,108,107,252,107,252,107,252,107,252,107,107,107,252,107,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,109,107,252,107,252,107,252,107,252,109,252,109,252,109,252,109,252,109,252,252,252,109,109,107,109,107,109,107,109,107,107,107,109,52,52,103,102,53,102,98,53,52,53,53,54,53,54,53,98,53,54,54,54,54,54,54,55,54,54,54,55,54,55,54,55,55,55,54,55,55,55,55,55,55,55,55,55,55,54,54,54,55,54,55,55,55,55,55,55,55,53,56,52,53,54,53,53,53,54,54,54,54,54,54,54,54,54,54,54,54,55,54,55,54,55,54,54,54,55,54,55,54,55,54,55,54,55,54,55,54,55,54,55,54,55,55,55,55,55,55,55,55,56,56,57,56,57,56,57,57,57,57,58,57,58,57,58,57,58,58,59,58,58,56,57,57,58,59,56,63,63,85,63,60,84,83,84,83,84,85,86,87,86,88,91,64,65,62,65,92,65,90,91,65,64,92,91,67,92,65,65,65,66,93,67,67,92,65,64,67,63,65,65,93,64,65,66,67,68,80,68,66,81,66,65,64,66,66,66,69,67,67,67,67,70,69,68,68,68,68,67,69,67,68,69,68,66,69,66,70,69,71,68,73,74,75,75,74,75,75,72,74,74,72,72,75,111,111,111,104,104,74,74,72,71,73,74,72,73,73,72,73,73,73,73,73,72,72,72,72,72,72,74,74,73,73,73,73,74,74,74,73,74,74,74,75,74,75,75,74,75,74,75,74,75,75,76,75,76,75,76,75,76,76,76,76,77,76,77,76,77,76,77,77,78,77,78,77,78,77,78,78,79,78,79,78,79,78,79,79,79,79,79,79,79,64,79,64,79,64,79,64,79,29,64,64,64,64,64,30,65,29,65,27,66,25,66,66,67,66,67,66,67,67,68,67,68,68,69,68,69,69,70,69,70,28,70,28,71,27,71,26,72,25,72,24,73,24,29,23,31,22,218,22,218,30,218,28,218,27,218,25,218,24,218,22,218,218,218,218,218,218,218,218,218,217,218,217,217,217,217,221,217,221,217,221,217,221,221,221,221,221,221,220,221,220,221,220,221,220,220,220,221,219,220,219,220,219,220,219,220,219,220,219,220,219,220,219,220,219,196,196,196,196,197,196,194,196,194,194,194,197,196,196,197,196,197,196,197,196,197,197,198,197,198,197,198,197,198,197,198 +,252,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,107,108,107,108,107,108,107,108,108,252,108,252,108,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,107,107,109,109,109,109,252,109,252,109,252,252,252,109,252,252,252,252,252,252,109,109,107,109,109,107,109,107,109,107,109,107,109,53,52,53,102,53,52,53,98,53,102,53,54,53,54,54,54,53,54,54,54,54,54,54,55,54,55,54,55,54,55,54,55,55,55,55,55,55,55,56,56,56,56,56,56,55,55,55,55,55,55,55,55,55,55,56,54,54,53,54,56,53,54,54,54,53,55,54,54,54,54,54,55,54,54,54,54,54,55,54,55,54,55,54,55,54,55,54,55,54,55,55,55,55,55,55,55,55,55,55,55,56,56,56,57,57,57,57,57,57,57,57,58,58,58,58,58,58,58,58,59,59,59,59,59,59,59,59,60,63,63,62,62,84,58,62,85,85,86,86,86,83,84,83,84,84,85,85,85,85,88,88,91,91,92,92,64,66,64,65,64,66,65,67,65,66,65,67,66,68,67,67,67,66,65,66,65,92,68,65,66,66,67,68,68,69,66,67,66,68,64,67,66,66,67,69,69,67,69,69,69,69,69,70,69,69,68,69,68,69,70,69,70,71,69,67,67,70,67,71,71,73,75,75,74,105,105,105,105,105,105,111,111,110,110,110,110,110,104,76,72,73,74,74,74,73,75,74,73,74,73,74,73,74,74,74,74,74,74,74,74,74,74,75,74,75,74,75,75,75,75,75,75,75,75,75,75,75,75,75,76,75,76,76,76,76,76,76,76,76,77,77,77,77,77,77,77,77,78,77,78,77,78,78,78,78,78,78,78,78,79,79,79,79,79,79,79,79,79,79,79,64,79,64,64,64,64,64,64,64,64,64,64,64,65,65,65,65,66,66,66,27,67,27,67,27,67,27,68,26,68,26,68,26,69,26,69,25,70,25,70,25,71,24,71,24,71,31,72,30,72,29,72,28,28,31,29,30,30,28,31,27,218,26,218,24,218,23,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,217,217,217,217,217,217,217,217,221,217,221,221,221,221,221,221,221,221,221,221,220,220,220,220,220,220,220,220,219,219,219,219,219,219,219,219,219,219,219,219,219,196,196,196,196,197,196,197,197,194,194,194,194,196,196,196,196,197,197,197,197,197,197,197,197,198,197,198,198,198,198,198,198 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,108,107,252,107,108,107,252,107,252,108,252,108,252,108,109,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,252,107,252,107,252,107,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,109,109,107,109,107,109,107,109,107,107,107,109,107,109,101,52,53,53,101,53,53,103,53,54,54,54,54,54,54,55,54,55,54,55,55,55,55,55,55,55,55,55,55,55,55,55,55,56,56,57,56,57,56,57,57,57,57,58,58,56,56,56,56,56,55,55,55,55,57,57,57,58,58,58,56,55,55,55,55,55,54,54,55,55,55,55,54,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,56,57,56,57,56,57,57,58,57,58,57,58,57,58,58,58,58,59,58,59,58,59,59,59,59,59,59,60,59,60,60,60,60,60,60,60,60,61,63,83,83,83,83,63,84,83,84,83,84,85,86,84,83,84,85,84,86,85,86,86,88,88,89,89,89,65,64,66,65,64,65,65,65,66,66,66,67,66,68,68,67,68,68,68,67,69,68,68,68,69,69,66,68,70,69,69,68,70,68,69,69,67,69,68,70,70,69,69,68,70,70,70,70,69,68,70,69,71,69,70,71,72,72,72,72,71,69,105,105,105,105,105,105,105,105,111,110,111,105,105,111,111,110,110,110,111,110,111,110,104,104,74,75,76,74,75,75,75,75,75,74,75,75,74,74,74,74,75,75,76,76,75,75,75,75,75,75,76,76,75,75,75,75,76,76,76,75,76,75,76,76,77,76,77,76,77,76,77,76,77,77,78,77,78,77,78,77,78,78,78,78,78,78,79,78,79,78,79,78,79,79,79,64,79,64,79,64,79,64,79,64,79,29,79,64,64,64,64,28,65,28,65,28,65,28,66,27,66,27,67,27,67,67,68,67,68,67,68,68,69,68,69,68,69,28,70,27,70,26,71,25,71,24,72,23,72,23,72,22,73,23,73,23,27,23,28,22,28,22,29,22,30,22,31,22,218,31,218,29,218,27,218,25,218,23,218,22,218,218,218,218,218,218,218,217,217,217,217,221,217,221,217,221,217,221,217,221,217,221,217,221,221,221,221,220,221,220,221,220,220,220,220,219,221,219,220,219,220,219,220,219,220,219,220,219,220,196,196,196,197,196,194,197,194,194,198,197,196,196,197,196,197,196,197,196,197,197,198,197,198,197,198,197,198,197,198,197,198 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,107,108,107,108,107,108,107,108,108,109,108,252,108,108,108,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,109,107,109,107,109,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,109,109,109,109,107,109,107,109,107,107,107,109,109,54,53,54,53,54,53,54,53,54,53,54,53,54,54,54,54,54,55,54,55,54,55,54,55,55,55,55,55,55,55,55,56,56,56,56,56,56,57,57,57,57,57,57,57,57,58,58,58,57,58,58,58,55,56,56,56,57,57,57,57,57,58,58,56,56,56,56,56,55,55,55,55,55,55,55,56,56,56,56,56,57,57,57,57,57,57,57,57,58,58,58,58,58,58,58,58,59,58,59,59,59,59,59,59,60,59,60,60,59,60,60,60,59,60,60,60,61,61,61,61,61,61,61,62,83,81,82,83,82,82,83,82,83,84,83,84,84,85,85,85,85,85,86,86,87,86,87,86,87,87,89,64,64,89,64,64,64,66,64,65,65,65,65,66,66,67,66,66,67,67,67,67,68,68,69,68,68,68,69,69,69,69,69,70,69,68,70,70,71,69,69,69,69,70,69,70,70,69,70,70,71,70,70,71,71,72,71,71,72,72,105,105,105,105,105,105,105,105,110,110,110,110,111,111,111,111,105,110,110,110,110,110,110,110,111,110,111,104,111,104,76,76,76,76,75,76,76,76,75,75,76,75,76,76,75,75,76,76,76,76,76,77,76,77,76,76,76,76,76,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,78,77,78,77,78,78,78,78,78,78,78,78,79,79,79,79,79,31,79,79,79,79,79,64,79,64,79,64,64,64,64,64,64,64,64,30,64,29,65,28,65,27,65,26,66,25,66,66,67,67,67,67,67,67,68,26,68,26,68,68,69,69,69,69,70,70,70,70,70,70,71,71,71,24,71,31,72,29,72,26,73,31,78,30,79,29,218,28,218,27,22,26,25,25,28,25,31,24,218,23,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,217,217,217,217,217,217,217,221,217,221,217,221,221,221,221,221,221,221,221,221,221,220,221,220,220,220,220,220,220,219,219,219,219,219,219,219,219,219,219,196,196,197,197,196,197,194,196,197,198,196,196,196,196,196,197,196,197,197,197,197,197,197,198,197,198,198,198,198,198,198,198,198 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,107,108,107,252,107,252,107,252,107,252,108,252,108,252,108,109,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,109,107,252,107,252,107,252,109,252,109,252,109,252,109,252,109,252,252,252,109,252,252,109,109,109,107,109,107,109,107,107,107,109,107,109,54,53,54,53,54,53,54,54,54,54,54,54,54,55,55,55,54,55,55,55,55,55,55,55,55,56,55,56,56,56,56,57,56,57,57,57,57,58,57,58,57,58,58,59,58,59,58,59,59,58,58,58,58,58,58,57,58,58,58,57,57,57,57,58,58,58,57,58,58,58,55,56,56,56,56,57,57,57,57,58,57,58,57,58,57,58,58,58,58,59,58,59,58,59,59,59,59,60,59,60,59,60,60,60,60,61,60,60,61,60,58,60,61,61,60,59,60,61,82,61,63,82,82,82,82,82,82,82,82,82,83,83,84,83,84,85,84,86,85,86,86,64,64,64,64,87,64,88,65,64,65,65,64,65,65,65,65,65,66,65,66,66,66,65,66,65,66,66,66,67,67,67,68,68,68,69,68,68,69,69,70,69,69,70,71,70,71,70,71,70,70,71,70,71,71,72,71,71,71,71,70,70,71,71,72,71,71,72,105,105,105,111,105,111,105,105,110,110,110,111,110,111,110,111,111,105,110,110,110,111,110,111,110,111,110,111,104,106,104,106,106,75,75,76,76,76,75,76,76,76,76,76,77,77,76,76,76,77,77,77,77,76,76,77,76,77,76,77,77,77,77,77,77,77,77,77,77,77,77,78,77,78,77,78,77,78,77,78,78,78,78,79,78,79,78,79,78,79,79,79,79,79,64,79,64,79,64,79,64,79,64,79,64,64,64,64,64,64,64,65,64,65,65,65,22,66,28,66,27,66,27,67,27,67,27,68,26,68,26,68,30,69,29,69,28,69,27,70,27,70,26,71,25,71,24,71,23,72,22,72,24,72,24,73,23,73,23,78,23,78,23,79,23,79,22,218,22,218,22,218,22,218,31,218,29,218,27,218,26,218,24,218,22,218,218,218,218,218,218,218,218,218,217,218,217,217,217,217,221,217,221,217,221,217,221,217,221,217,221,221,221,221,221,221,220,221,220,221,220,221,220,221,220,220,220,220,220,196,196,196,196,196,196,196,196,196,197,196,197,194,197,198,196,197,196,197,196,197,196,197,196,197,197,198,197,198,197,198,197,198,197,198,198,198,198,198 +,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,108,107,108,107,108,107,108,107,109,107,108,108,252,108,109,108,252,108,108,108,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,107,107,109,109,109,109,252,109,109,109,252,252,252,109,252,252,252,252,252,252,252,109,109,109,109,107,109,107,109,107,107,107,109,107,109,54,53,54,53,54,53,54,54,54,54,54,54,54,55,55,55,54,55,55,55,55,55,55,55,55,56,55,56,56,56,56,57,56,57,57,57,57,58,57,58,57,58,58,59,58,59,58,59,59,59,59,58,59,59,59,58,57,58,58,58,59,58,59,58,59,59,58,58,58,58,58,58,57,58,57,57,57,58,58,58,58,58,58,58,58,59,59,59,59,59,59,59,59,60,60,60,60,60,60,61,60,61,61,61,61,61,60,61,60,60,58,61,61,60,61,59,61,82,82,82,82,82,82,82,82,82,82,82,82,82,82,83,83,83,84,85,84,85,65,65,86,65,65,65,64,65,65,65,65,65,66,65,66,65,66,67,66,66,66,66,66,66,66,66,66,66,66,66,66,66,67,67,67,67,68,68,68,68,68,68,70,69,70,70,70,71,71,71,71,71,71,71,70,71,71,72,71,70,71,71,71,71,72,71,72,105,105,105,111,111,111,111,105,111,110,110,110,110,110,111,111,111,111,105,110,110,110,110,110,110,110,111,110,111,104,111,111,104,106,106,76,76,75,75,76,76,77,76,76,76,76,77,76,76,76,76,76,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,78,77,78,78,78,78,78,78,78,78,79,79,79,79,79,79,79,31,79,79,79,30,79,30,79,64,79,64,64,64,64,64,64,64,64,64,64,64,65,28,65,28,65,28,66,28,66,66,66,27,67,27,67,27,67,27,68,26,68,26,68,26,69,26,69,26,70,26,70,25,70,25,70,25,71,25,71,24,72,24,72,30,72,29,73,28,73,31,73,29,78,29,79,28,79,27,218,26,218,25,218,24,218,23,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,217,217,217,217,217,217,217,221,217,221,221,221,221,221,221,221,221,221,221,220,220,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,197,197,196,196,194,194,198,196,196,196,196,196,197,196,197,197,197,197,197,197,198,197,198,197,198,198,198,198,198,198,198,198 +,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,109,252,252,107,109,107,252,107,109,107,109,108,252,108,109,108,252,108,108,108,109,252,252,108,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,107,107,107,109,107,109,107,252,107,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,109,109,109,109,107,109,107,107,107,109,107,109,109,54,54,54,55,54,55,54,55,54,55,54,55,54,55,54,55,55,55,55,55,55,55,56,55,56,57,56,56,56,56,57,57,57,57,57,57,58,58,58,58,58,58,59,58,59,59,59,59,59,59,59,59,58,59,59,59,58,58,57,58,58,59,58,59,58,59,59,59,59,58,59,59,59,58,57,58,59,58,59,58,59,58,59,60,60,60,59,59,59,60,61,61,60,61,60,61,61,61,62,61,62,62,62,62,62,61,61,61,60,60,82,82,59,82,61,82,82,81,61,61,82,61,82,82,82,82,82,82,82,83,64,82,83,83,84,84,83,64,65,64,64,64,64,65,66,65,66,66,66,66,66,65,67,65,66,67,66,67,67,68,67,67,66,67,67,67,67,67,67,67,67,67,68,67,68,67,68,67,69,69,69,70,70,69,69,70,70,70,70,71,71,72,71,71,72,72,71,72,73,72,71,72,71,105,105,105,111,110,111,110,111,105,110,110,110,110,111,110,111,110,111,110,105,110,111,110,110,110,111,110,111,110,111,104,111,106,104,107,107,106,106,75,76,76,76,76,76,77,77,77,77,76,77,76,77,76,77,78,77,77,78,78,77,78,77,78,77,78,78,77,77,78,78,77,77,78,78,77,78,78,79,78,79,78,79,78,79,79,79,79,79,79,79,64,79,64,79,64,79,64,79,64,79,64,79,64,64,64,64,64,65,64,65,28,65,28,66,28,66,28,66,27,67,66,67,66,67,67,68,67,68,68,68,68,69,29,69,28,69,27,70,25,70,25,70,24,71,31,71,30,71,29,72,28,72,27,72,26,73,25,73,24,73,23,74,22,74,22,74,31,31,29,218,28,218,27,218,25,218,24,218,30,218,28,218,27,218,25,218,24,218,22,218,218,218,218,218,218,218,217,218,217,217,217,217,221,217,221,217,221,217,221,217,221,221,196,196,196,196,196,196,196,196,196,196,196,197,197,196,196,197,196,197,197,198,197,198,198,197,197,196,196,196,196,197,197,194,197,198,196,196,196,197,196,197,196,197,196,197,197,198,197,198,197,198,197,198,198,198,197,198,198,198,198,198 +,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,109,252,108,107,108,107,108,107,109,107,109,108,252,108,109,108,252,252,252,108,108,252,109,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,109,107,109,109,109,109,109,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,109,109,107,109,107,109,107,107,107,109,109,109,54,54,54,55,54,55,54,55,54,55,54,55,54,55,54,55,55,55,55,55,55,55,56,55,56,57,56,56,56,56,57,57,57,57,57,57,58,58,58,58,58,58,59,58,59,59,59,59,59,59,59,59,59,59,59,59,59,59,58,58,59,58,59,59,59,59,59,59,59,59,58,59,59,59,58,58,58,59,59,59,58,60,60,58,60,60,60,60,59,60,61,61,62,60,61,61,62,61,62,62,63,63,63,62,61,61,62,81,82,82,82,61,63,82,60,61,82,61,82,84,84,82,82,82,82,84,82,82,82,65,65,65,64,66,64,64,65,65,65,67,65,65,67,65,66,66,65,66,66,66,66,66,66,67,67,67,67,67,67,67,67,67,68,68,67,68,68,68,68,68,68,68,68,68,68,68,68,69,69,69,69,69,69,69,69,69,70,70,70,70,70,71,71,71,71,72,71,72,72,71,72,105,105,105,110,111,111,111,111,111,105,111,110,110,110,111,110,111,111,111,111,111,110,110,110,110,110,110,110,111,110,111,104,111,106,108,104,107,106,106,106,106,76,76,76,76,76,76,76,77,77,77,77,77,77,77,77,77,77,77,78,77,78,77,78,78,78,78,78,78,78,78,78,78,78,78,78,79,78,79,79,79,79,79,79,79,79,79,79,79,79,79,64,79,64,79,64,64,64,64,64,64,64,64,64,64,64,64,64,65,65,65,27,65,65,66,66,66,66,66,66,67,67,67,67,67,22,68,27,68,26,68,26,69,69,69,69,69,26,70,25,70,25,70,25,71,25,71,25,71,25,72,24,72,24,72,24,73,24,73,31,73,30,73,28,74,27,74,25,31,24,31,23,218,31,218,30,218,28,218,27,218,26,218,25,218,24,218,22,218,218,218,218,218,218,218,218,218,218,218,217,217,217,217,217,217,221,217,221,221,221,221,221,196,196,196,196,197,197,197,197,197,197,197,197,196,196,196,196,197,197,197,197,197,197,198,198,198,196,196,196,197,197,197,197,194,198,198,196,196,196,196,196,197,196,197,197,197,197,197,197,197,197,198,198,198,198,198,197,198,197,198,198,198,198 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,109,252,109,107,252,107,252,107,109,108,252,108,109,108,252,108,252,108,252,108,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,109,107,109,107,252,107,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,109,109,109,107,109,107,109,107,109,107,109,109,55,54,55,54,55,54,55,54,55,55,55,55,55,55,55,55,57,56,55,56,55,56,56,57,57,58,58,57,57,58,57,58,57,58,58,59,58,59,58,59,59,60,59,60,59,60,60,60,61,59,59,59,59,59,59,59,59,59,59,58,59,58,59,59,59,59,59,59,59,59,59,59,59,59,59,59,58,59,61,60,59,61,59,60,60,60,59,59,60,61,61,61,61,62,62,63,62,63,63,63,62,62,61,63,63,63,61,61,82,82,65,80,82,62,82,63,61,82,64,64,83,82,82,84,60,60,64,64,66,66,67,66,67,66,66,65,65,65,66,67,66,67,66,67,67,68,67,67,67,66,67,66,66,66,67,67,67,68,68,68,68,67,68,68,68,68,68,69,68,69,69,69,69,68,69,69,69,69,70,69,70,69,70,69,70,70,70,70,71,70,71,70,71,70,71,70,71,71,71,105,105,105,111,110,111,111,111,111,111,105,111,110,111,110,111,110,111,110,111,110,111,111,110,110,111,110,111,110,111,110,111,110,111,106,108,108,104,107,107,106,106,106,76,76,76,76,77,77,76,77,76,77,76,77,77,77,77,78,78,77,77,78,78,77,78,77,78,77,78,78,79,78,79,78,79,78,79,79,79,79,79,79,79,64,79,64,79,64,79,64,79,64,79,64,79,64,64,64,64,29,64,29,65,28,65,28,65,28,65,28,66,65,66,66,66,27,67,27,67,27,67,27,68,27,68,26,68,26,69,26,69,26,69,26,70,25,70,25,70,30,70,30,71,29,71,29,77,28,77,28,77,27,78,27,73,26,73,26,73,25,74,25,74,24,74,24,218,30,218,28,218,26,218,24,218,22,218,31,218,29,218,28,218,26,218,25,218,24,218,22,218,218,218,218,218,218,218,217,218,217,217,217,217,221,217,221,217,221,217,221,221,196,196,196,196,196,197,196,196,196,197,196,197,196,197,196,196,196,197,196,197,196,197,197,198,197,196,196,197,196,197,196,197,197,198,197,198,198,196,196,197,196,197,196,197,196,197,197,197,197,198,197,198,197,198,197,198,198,198,198,196,198,198,198,198 +,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,108,252,108,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,108,252,108,107,108,107,109,107,108,107,252,252,109,108,252,252,252,108,108,108,252,252,109,252,109,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,107,109,109,109,109,252,109,109,109,252,109,252,109,252,252,252,252,252,252,252,252,252,109,109,109,109,107,109,107,107,107,109,109,109,107,55,55,55,55,55,55,55,56,57,56,57,56,57,57,58,58,58,56,56,57,56,57,57,59,57,58,59,58,58,58,58,59,59,59,59,60,60,60,60,60,60,61,60,61,61,61,61,61,61,61,59,59,59,61,59,59,59,59,59,59,60,59,60,60,60,61,59,59,59,59,59,59,59,59,59,61,61,61,62,60,59,60,62,59,60,58,59,59,60,59,60,63,62,62,63,62,63,63,81,63,63,61,63,82,61,64,64,64,64,63,65,63,82,82,82,65,64,64,83,63,65,83,83,66,83,65,65,66,67,67,66,67,66,67,68,66,67,67,70,67,67,68,69,68,68,67,68,67,69,67,67,66,67,66,67,67,66,68,67,68,68,68,68,68,68,69,69,69,69,70,71,70,70,70,70,70,70,70,70,70,70,70,71,70,71,70,71,71,71,71,71,71,71,71,72,72,105,105,105,111,111,111,111,111,111,111,111,111,111,110,110,110,110,110,111,111,111,111,111,111,110,110,110,110,110,110,111,111,111,111,111,106,107,108,104,107,107,107,107,106,106,106,76,76,76,77,77,77,77,77,77,77,77,77,77,77,77,77,78,78,78,78,78,78,78,78,79,78,79,78,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,64,79,64,79,64,79,64,79,64,79,64,79,64,64,64,65,65,65,65,66,66,66,66,66,66,66,66,67,67,67,27,68,26,68,26,68,25,68,25,69,24,69,24,69,23,70,23,70,22,70,25,71,25,71,25,71,25,71,24,78,24,78,24,78,24,79,31,79,30,27,29,29,28,31,27,218,26,218,31,218,29,218,30,218,29,218,28,218,27,218,25,218,24,218,23,218,22,218,218,218,218,218,218,218,218,218,218,218,218,217,217,217,217,217,221,217,221,221,221,221,221,196,196,196,196,197,196,196,196,196,196,197,196,196,196,197,197,196,196,196,196,197,196,196,196,196,196,197,197,197,197,197,197,197,197,198,198,198,198,196,196,196,196,197,196,197,196,197,197,197,197,197,197,198,197,198,198,198,198,198,198,198,198,198,198,198,198 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,109,252,252,107,109,107,109,107,109,108,252,108,252,108,252,108,252,108,252,108,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,252,107,109,107,252,107,109,109,252,109,252,109,252,109,252,109,252,109,252,252,252,109,252,252,109,109,109,107,109,107,109,107,107,107,109,109,109,55,55,55,55,55,55,56,57,56,57,56,57,57,58,58,58,56,56,57,56,57,57,59,57,58,59,58,58,58,58,59,59,59,59,60,60,60,60,60,60,61,60,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,59,59,59,59,59,59,61,61,61,61,61,59,59,59,61,59,62,62,62,61,62,60,59,59,61,59,60,62,60,58,59,59,90,91,92,61,92,63,62,63,62,63,62,94,94,82,80,80,94,80,94,80,65,81,82,65,65,82,82,66,66,67,67,83,68,84,67,66,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,69,70,70,71,69,68,69,69,68,68,69,68,69,68,67,67,68,68,67,68,69,69,68,69,68,69,70,70,71,71,70,71,70,70,70,71,71,70,71,70,70,71,72,72,71,71,72,71,72,72,72,71,72,105,105,105,111,111,111,111,111,111,111,111,111,111,111,110,110,110,111,110,111,110,111,110,111,111,111,110,111,110,111,110,111,111,111,111,111,104,106,107,104,107,108,107,107,106,107,106,106,106,76,77,77,77,77,77,77,77,78,77,78,77,78,77,78,78,79,78,79,78,79,78,79,79,79,79,79,79,79,64,79,79,79,30,79,30,79,30,79,30,79,31,79,30,79,29,64,29,64,28,64,28,65,27,65,27,66,26,66,25,66,25,66,24,67,24,67,23,67,22,67,22,68,26,68,26,68,26,69,26,69,31,69,30,70,29,70,29,70,28,70,27,71,26,71,26,71,25,72,24,72,23,72,30,67,29,73,28,79,27,26,26,28,24,29,23,30,22,31,23,218,31,218,29,218,27,218,26,218,24,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,217,218,217,217,217,217,221,217,221,217,221,221,196,196,196,196,196,197,196,196,196,197,196,197,196,197,196,197,198,197,196,196,196,197,196,197,196,197,196,197,197,197,197,197,197,198,197,198,197,198,197,198,196,196,196,196,196,197,196,197,197,197,197,197,197,198,197,198,198,198,198,198,198,198,198,198,198,198,196,196 +,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,108,252,108,252,108,107,109,107,108,107,109,108,109,108,109,252,252,252,252,252,108,108,252,252,109,252,109,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,107,109,107,109,109,109,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,107,109,107,109,107,109,109,109,107,107,57,57,57,57,58,58,58,58,58,58,58,57,57,59,59,57,57,58,57,58,59,59,58,59,59,60,59,60,60,61,60,61,61,61,62,61,60,62,60,61,60,62,62,62,61,62,62,61,61,61,61,61,61,94,61,61,61,59,59,61,59,61,61,61,61,59,59,63,61,63,62,62,84,84,62,62,62,62,63,61,61,62,60,60,60,60,60,59,91,61,91,92,92,92,93,93,94,94,63,94,63,62,65,63,63,80,63,63,63,64,66,66,65,64,65,65,66,68,68,69,68,69,105,105,105,105,105,110,105,105,110,110,110,111,110,111,111,111,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,68,69,69,69,69,70,69,70,70,70,71,71,72,70,71,70,71,71,71,71,71,71,72,71,71,72,72,72,72,72,72,72,71,72,105,105,111,105,111,111,111,111,111,111,111,111,111,111,111,110,110,110,110,110,111,111,111,111,111,110,110,110,111,111,111,110,111,111,111,111,111,111,111,104,106,106,107,107,107,107,107,106,106,106,106,77,77,77,77,77,78,78,78,78,78,78,78,78,78,78,79,78,79,79,79,79,79,79,79,79,79,79,79,79,79,31,64,30,64,30,64,29,64,28,64,27,65,27,65,26,65,26,65,29,65,29,65,28,65,28,66,28,66,28,66,28,66,28,67,27,67,27,67,27,68,27,68,27,68,27,68,26,69,26,69,26,69,26,70,26,28,26,30,25,71,25,71,25,71,25,71,25,72,25,72,24,72,24,73,24,27,24,28,24,28,30,29,29,30,28,30,26,31,25,31,24,218,23,218,31,218,29,218,28,218,27,218,25,218,24,218,23,218,218,218,218,218,218,218,218,218,218,218,217,217,217,217,217,217,217,217,221,221,221,196,196,196,196,196,196,196,196,197,196,196,196,196,196,196,196,197,197,198,198,196,196,196,196,196,196,197,197,197,197,197,197,197,197,197,197,197,197,198,198,198,198,198,198,196,196,196,196,197,197,197,197,197,197,197,197,198,198,198,198,198,198,198,198,198,198,196,196,196,196,196,196 +,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,109,107,109,107,252,107,109,108,252,108,252,108,252,108,252,108,252,108,252,108,252,107,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,252,107,109,107,109,107,107,107,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,109,109,107,109,107,109,107,107,107,109,109,109,107,107,58,59,58,59,58,59,59,58,59,59,59,59,59,58,59,59,60,60,94,60,61,61,58,59,59,60,59,60,60,61,60,61,61,61,62,61,60,62,60,61,60,62,62,62,61,62,62,62,62,61,62,62,62,94,61,61,81,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,84,84,63,59,83,62,62,64,61,60,66,62,64,62,62,85,60,63,91,92,93,94,63,94,94,63,64,94,95,95,66,65,64,65,66,65,66,66,67,67,68,67,67,68,105,105,105,105,105,105,105,105,105,105,110,110,111,110,111,110,111,111,105,105,105,105,105,110,111,110,111,110,111,111,110,109,105,110,111,110,111,105,105,105,71,70,70,70,70,70,70,71,71,71,72,71,72,71,72,71,72,72,72,71,72,72,72,72,73,72,73,72,73,72,73,105,105,111,111,105,111,111,111,111,111,111,111,111,111,111,111,110,110,110,111,110,111,111,111,111,111,110,111,111,111,111,111,110,111,110,111,110,111,110,111,104,104,106,107,106,107,107,107,106,107,106,107,106,106,77,78,77,78,78,78,78,79,78,79,78,79,78,79,78,79,79,79,79,79,64,79,64,79,29,79,29,79,28,79,28,64,28,64,27,65,27,65,26,65,26,65,25,66,25,66,24,69,23,70,23,71,22,72,22,73,30,74,30,75,29,77,28,78,28,79,27,26,27,27,26,27,25,28,25,28,24,29,23,30,23,30,22,31,22,71,25,71,25,71,24,71,24,72,24,72,24,72,24,73,24,25,23,26,23,26,23,27,23,28,23,29,31,29,29,30,27,31,26,31,24,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,217,217,217,217,221,217,221,217,221,221,196,196,198,198,198,198,196,198,197,198,197,198,197,198,197,198,198,196,196,197,196,197,196,197,196,197,196,197,197,197,197,197,197,198,197,198,197,198,197,198,197,198,198,198,196,197,196,197,196,197,196,197,197,198,197,198,197,198,197,198,198,198,197,198,197,198,196,196,196,196,196,197,197,197 +,108,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,108,252,109,107,108,107,109,107,109,108,109,252,109,108,252,252,252,252,108,108,252,252,252,252,109,252,252,252,108,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,109,107,107,107,109,109,109,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,109,109,107,109,107,109,107,107,107,109,107,109,107,59,59,59,59,59,59,60,58,59,58,60,59,61,61,61,62,62,60,60,94,60,61,61,61,61,60,61,61,61,59,58,59,59,60,59,60,60,61,60,61,61,61,62,61,60,62,94,61,60,62,62,93,61,62,61,105,105,105,105,105,105,105,110,110,110,110,110,110,111,111,111,111,110,104,106,61,64,84,83,67,65,67,66,62,67,64,64,85,65,86,65,91,92,93,64,64,65,64,94,64,64,64,65,65,65,66,67,67,66,67,67,67,67,67,105,105,105,110,105,110,105,105,105,109,110,110,110,110,110,110,111,111,111,105,105,109,110,110,110,109,110,111,111,110,111,111,111,105,105,110,110,110,110,105,105,105,105,106,73,71,71,71,71,71,71,71,71,72,72,71,72,73,72,72,72,72,73,72,72,74,73,73,73,73,73,73,105,105,111,111,111,105,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,110,111,111,111,110,111,111,111,106,104,108,106,106,107,107,107,107,107,106,106,107,106,106,78,78,78,78,78,78,79,79,79,79,79,79,79,79,79,79,79,31,64,30,64,30,64,29,64,28,64,27,65,27,65,26,65,26,65,65,26,65,72,24,73,23,75,23,77,22,79,29,30,28,31,28,31,28,67,31,22,30,23,30,23,29,24,28,24,28,25,27,25,26,26,26,26,25,27,25,27,24,28,23,28,23,29,22,29,25,30,31,30,30,31,30,72,29,218,28,218,27,218,27,218,26,218,25,218,24,218,24,25,23,31,22,218,22,218,22,218,31,218,29,218,27,218,25,218,23,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,217,217,217,217,217,217,221,217,221,221,221,221,196,198,198,198,198,198,196,196,197,197,197,198,197,198,197,198,198,196,196,196,196,196,196,197,197,197,196,197,197,197,197,197,197,197,197,198,197,198,197,198,198,198,198,198,198,198,196,197,197,197,197,197,197,197,197,198,198,198,198,198,197,198,197,198,198,196,196,196,196,197,197,197,197,197,197 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,108,252,252,252,252,108,109,107,109,107,252,107,109,108,252,108,252,108,252,108,252,252,108,107,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,107,109,107,252,107,109,107,252,107,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,109,107,109,107,109,107,109,107,109,107,109,107,109,107,60,61,61,61,61,59,61,94,58,62,62,59,61,61,61,62,62,62,62,61,62,62,62,59,60,60,94,60,61,58,59,59,60,59,60,60,61,60,61,61,92,62,92,60,93,60,61,95,62,94,94,61,105,105,105,105,111,110,111,110,110,110,111,110,111,110,111,111,111,109,110,109,104,107,106,64,65,69,69,67,68,68,68,68,68,69,70,66,69,69,67,65,65,65,66,66,66,66,66,66,66,65,66,66,66,67,67,67,67,105,105,105,105,110,111,110,105,110,111,110,105,110,110,109,110,110,110,110,111,110,111,105,110,109,110,110,111,110,111,110,111,110,111,111,111,105,111,110,111,110,111,111,105,105,111,106,107,106,73,72,73,72,72,72,72,72,72,72,73,72,73,72,73,72,73,73,73,73,73,73,73,74,74,105,105,111,111,105,105,105,111,111,111,111,111,111,111,111,111,111,111,110,111,111,111,110,111,111,111,110,111,110,111,110,111,111,111,111,111,110,111,110,111,110,106,107,108,104,104,107,106,106,107,106,107,107,107,106,107,106,106,106,79,78,79,78,79,79,79,30,79,79,79,64,79,27,23,26,79,28,64,28,64,27,65,27,65,26,65,26,65,25,66,25,66,24,25,66,24,30,30,29,30,29,31,29,66,29,66,29,67,29,67,28,67,28,68,28,23,28,24,27,25,27,26,27,27,27,29,26,30,26,31,26,70,26,70,26,70,26,71,25,71,25,71,25,218,25,218,24,218,24,218,24,218,24,218,24,218,24,218,23,218,23,218,30,218,29,218,28,218,26,218,25,218,24,218,23,218,22,218,23,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,217,218,217,218,217,218,217,217,217,217,221,217,221,217,221,217,221,217,221,221,221,221,221,196,197,198,197,198,197,198,197,198,197,196,196,196,196,197,196,197,196,197,196,197,197,197,197,197,197,198,197,198,197,198,197,198,197,198,197,198,198,198,198,197,196,197,196,197,197,198,197,198,197,198,198,198,197,198,197,198,197,196,196,196,196,197,197,198,197,198,197,198 +,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,108,252,108,252,108,108,109,108,109,107,109,252,109,108,252,252,252,252,252,252,252,252,108,252,252,252,108,108,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,107,107,107,107,109,107,109,109,109,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,109,107,109,107,109,107,107,107,109,109,109,107,107,107,60,61,61,61,61,59,61,94,58,62,62,62,62,58,62,62,62,60,59,61,61,61,62,60,60,94,60,61,61,61,60,61,60,94,60,61,61,61,62,92,92,93,93,94,62,94,62,94,105,105,105,110,105,111,111,111,111,110,110,109,110,110,111,110,111,111,111,109,110,109,104,107,107,106,67,69,71,67,70,70,69,71,70,70,71,72,69,70,68,69,66,66,69,66,71,68,67,68,67,66,66,67,67,67,105,105,105,105,110,110,111,111,111,111,111,109,110,110,110,110,110,110,110,110,110,110,111,111,111,105,110,110,110,110,111,111,111,110,111,111,111,105,110,110,111,110,111,111,111,111,105,111,110,110,110,106,106,73,74,74,74,73,74,74,73,73,74,73,73,73,73,73,73,73,73,73,74,74,74,74,105,105,105,105,105,105,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,110,111,111,111,111,111,111,111,111,111,110,111,110,111,106,107,107,108,104,104,104,108,106,106,106,106,107,107,106,106,106,106,106,106,106,79,31,79,30,79,30,79,79,79,29,79,28,79,28,79,27,64,27,64,26,66,26,71,25,75,25,79,24,64,24,65,23,65,23,65,22,65,22,66,31,66,31,66,30,66,30,67,30,67,30,67,29,67,29,68,29,68,29,68,28,69,28,69,28,218,31,218,30,218,30,218,29,218,28,218,28,218,27,218,27,218,26,218,25,218,25,218,24,218,23,218,31,218,29,218,28,218,27,218,25,218,24,218,23,218,23,218,22,218,22,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,221,217,221,217,221,217,221,221,221,221,221,221,221,221,221,221,221,221,221,196,196,197,196,197,196,197,197,197,197,197,197,197,197,198,197,198,197,198,198,198,198,198,198,197,197,197,197,197,197,198,198,198,197,197,197,197,197,197,197,198,197,198,198,196,196,196,198,197,197,197,197,197,197,198,197 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,108,109,107,252,108,252,108,252,107,252,108,252,108,252,252,252,108,252,252,252,252,108,107,108,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,252,107,107,107,252,107,252,107,252,107,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,107,109,107,109,107,109,107,109,107,109,107,109,107,107,63,60,59,59,59,60,61,61,60,61,61,61,61,59,61,94,58,62,59,61,83,61,62,62,62,61,62,61,61,61,62,62,62,59,60,59,60,63,62,91,92,93,94,63,94,94,105,105,111,111,110,111,111,111,111,110,109,110,109,110,111,111,110,111,111,111,109,110,104,104,107,108,107,107,106,71,71,70,72,70,72,71,73,71,70,74,68,68,74,73,73,72,69,73,68,72,75,68,68,69,69,105,105,105,110,111,110,111,111,111,110,111,111,110,109,110,109,110,109,110,109,110,110,110,110,111,110,105,110,111,110,111,110,111,110,111,110,111,105,111,111,111,110,111,110,111,110,111,111,111,111,110,110,111,106,110,106,106,74,75,74,74,74,74,74,75,73,75,74,73,74,74,74,73,74,74,74,75,105,105,105,105,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,110,111,110,111,111,111,111,111,110,111,106,107,107,108,108,104,104,104,107,106,107,108,106,107,107,107,106,107,106,106,106,106,30,79,29,79,28,79,27,79,26,79,25,79,24,79,23,64,22,64,29,64,28,64,28,65,28,65,28,65,27,65,27,66,27,66,26,66,26,66,26,67,25,67,25,67,25,218,25,218,24,218,24,218,24,68,23,218,23,218,23,218,22,218,22,218,22,218,22,218,27,218,31,218,29,218,28,218,27,218,25,218,24,218,23,218,22,218,27,218,26,218,24,218,23,218,22,218,22,218,22,218,23,218,22,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,217,218,217,218,217,218,217,217,217,217,217,217,217,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,221,221,221,221,221,196,197,196,197,196,197,196,197,197,198,197,198,197,198,197,198,197,198,197,198,198,197,196,197,197,198,197,198,197,198,197,198,198,198,197,198,197,198,197,198,197,198,196,196,198,197,197,198,197,198,197,198,197,198 +,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,108,109,108,108,107,109,107,109,108,252,252,252,252,252,252,252,252,252,252,252,252,252,107,108,108,108,108,108,252,252,252,108,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,107,107,107,107,109,107,109,107,252,109,109,109,252,252,252,109,252,252,252,252,252,252,252,252,109,107,109,107,109,107,107,107,109,109,109,107,109,107,60,63,59,59,59,60,61,61,60,61,61,61,61,59,61,94,58,62,83,83,82,62,83,84,84,62,62,62,59,60,58,59,59,60,59,60,63,62,92,91,92,93,105,105,105,105,105,111,111,111,111,111,111,111,110,109,109,109,110,110,111,111,109,109,109,109,110,104,108,108,108,107,107,107,106,71,72,72,72,71,72,71,73,72,70,74,75,73,75,74,73,74,72,68,71,73,105,105,105,105,105,110,111,110,111,110,111,111,111,111,111,111,110,109,110,110,110,110,110,110,110,110,111,111,110,110,111,110,111,110,111,111,111,110,111,111,111,111,111,110,110,110,111,110,111,110,111,111,111,105,110,110,110,110,106,108,110,106,106,75,75,75,75,75,74,75,74,75,74,75,74,75,75,75,75,76,105,105,105,105,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,110,111,111,111,111,111,111,111,111,111,111,106,106,107,108,108,104,104,104,107,107,107,107,107,106,107,107,107,106,107,106,106,106,106,31,79,28,79,25,64,22,64,31,64,30,64,30,64,29,64,28,64,27,65,27,65,26,65,26,65,25,66,24,66,23,66,23,66,22,67,29,218,28,218,28,218,27,218,26,218,25,218,24,218,23,218,23,218,22,218,29,218,25,218,22,218,28,218,26,218,24,218,22,218,31,218,29,218,27,218,25,218,23,218,218,218,30,218,30,218,29,218,28,218,27,218,26,218,25,218,25,218,24,218,23,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,221,217,217,217,221,217,221,221,221,217,221,221,221,217,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,197,197,197,197,197,197,197,197,197,197,197,197,198,198,198,198,198,197,197,197,197,197,197,197,198,198,198,197,198,198,198,198,198,197,197,197,198,198,198,196,196,198,197,197,197,197,198,197,198,197,198,198 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,109,252,252,108,108,108,252,108,252,108,252,108,252,108,252,108,252,252,252,252,252,252,252,108,108,108,252,252,252,252,252,252,252,252,252,252,109,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,109,107,109,107,252,107,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,107,109,107,109,107,109,107,109,107,109,109,109,107,107,60,63,63,63,95,63,80,59,82,63,83,84,84,56,63,85,63,83,82,82,84,83,82,84,85,84,61,66,67,65,68,71,68,68,69,65,65,66,69,67,21,105,105,105,105,111,111,111,110,111,111,111,111,109,109,110,109,110,110,111,110,111,111,110,109,110,104,108,108,108,107,108,107,107,107,106,72,71,72,72,72,73,75,72,72,74,75,75,75,73,71,75,105,105,105,105,111,111,111,111,110,111,110,111,110,111,111,111,110,111,109,110,109,110,109,110,109,110,110,111,110,110,110,110,110,111,110,111,111,110,110,111,110,111,111,111,111,110,110,111,110,111,110,111,110,111,111,111,111,110,110,110,110,106,107,109,109,107,106,106,75,76,75,75,75,75,75,75,75,76,75,76,75,75,105,105,105,105,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,110,111,111,111,110,111,110,111,110,111,111,111,111,109,109,104,106,107,107,108,108,104,104,108,107,108,107,108,107,106,106,107,106,107,106,107,106,106,106,106,30,79,30,79,29,64,29,79,28,64,28,64,27,65,27,65,26,65,26,65,25,66,25,66,24,66,24,66,23,67,22,218,22,67,31,67,29,68,28,68,27,218,26,218,25,218,24,218,23,218,22,218,218,218,218,218,218,218,218,218,30,218,30,218,29,218,29,218,28,218,28,218,27,218,27,218,26,218,26,218,25,218,25,218,24,218,24,218,23,218,23,218,22,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,217,218,217,218,217,218,217,217,217,217,217,217,217,217,221,217,217,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,221,221,217,221,221,221,217,221,221,221,221,221,221,197,198,197,198,198,198,197,197,197,198,197,198,197,198,197,198,197,198,197,198,198,198,198,198,197,198,197,198,197,198,196,196,196,197,196,197,197,198,197,198,198,198,197,198 +,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,109,252,109,252,109,252,109,108,108,108,252,252,252,252,252,252,252,252,252,252,108,252,252,252,108,108,108,108,108,252,108,252,252,252,252,252,252,109,109,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,109,107,109,109,109,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,107,109,107,109,107,107,107,109,109,109,107,109,107,107,81,63,63,95,81,62,63,80,83,82,84,85,84,64,62,64,82,84,83,84,82,84,83,84,86,67,68,67,68,67,70,71,73,75,67,69,70,68,105,105,111,111,111,111,111,111,111,111,111,111,111,109,109,110,110,110,110,110,110,111,111,111,111,104,104,108,108,108,108,108,108,108,107,107,106,71,72,72,72,72,66,70,69,105,105,105,105,105,105,105,105,111,111,111,111,111,111,111,110,111,110,111,111,111,111,111,111,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,111,110,110,110,110,111,111,111,111,110,110,110,110,110,110,110,110,111,110,111,111,111,105,110,110,110,110,106,107,108,109,110,106,106,106,106,76,75,75,75,75,76,76,76,76,75,76,105,105,105,105,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,110,111,111,111,111,111,111,111,111,111,109,109,104,106,107,108,108,104,104,108,107,107,107,107,107,107,106,107,106,107,106,106,106,106,106,106,106,64,29,64,28,64,26,64,24,64,23,65,28,65,27,65,26,65,25,66,24,66,24,66,23,66,22,67,24,218,23,218,23,218,22,218,31,218,29,218,28,218,26,69,24,69,23,218,28,218,27,218,27,218,26,218,26,218,25,218,25,218,24,218,24,218,23,218,23,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,220,220,198,198,198,198,198,198,198,198,198,198,198,198,196,196,196,196,196,197,197,197,197,197,198,198,198,198,198,198 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,108,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,107,108,107,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,109,107,252,107,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,107,109,107,109,107,109,107,109,109,109,107,109,107,61,81,62,81,82,82,82,81,82,84,83,84,86,64,65,87,66,87,86,65,65,86,69,66,66,65,64,66,68,69,75,72,73,73,74,105,105,105,111,111,105,110,111,110,111,110,111,111,111,111,110,109,110,110,110,110,111,110,111,111,111,109,104,108,108,108,108,108,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,111,111,111,111,111,111,111,111,111,111,110,111,110,109,109,109,109,110,109,110,109,110,109,110,110,110,110,111,110,111,110,111,110,111,111,111,111,111,111,110,110,111,110,111,110,111,109,110,109,110,109,110,110,110,110,111,110,111,110,111,111,111,109,110,109,110,109,110,106,108,108,110,106,107,106,107,106,106,75,75,75,75,76,76,76,76,105,105,105,105,105,111,111,111,111,111,111,111,111,111,111,111,111,109,110,111,111,111,111,111,110,111,111,111,110,111,111,111,110,111,111,111,110,111,110,111,110,111,110,111,111,111,111,109,109,104,106,107,108,104,104,108,107,108,107,108,107,107,107,107,106,107,106,107,106,107,106,107,106,106,106,64,30,64,30,65,29,65,28,65,27,65,27,66,26,66,25,66,24,66,24,218,23,218,22,218,31,218,29,68,27,218,25,218,23,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,30,218,30,218,29,218,29,218,28,218,28,218,27,218,26,218,26,218,25,218,25,218,24,218,24,218,23,218,22,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,217,218,217,218,217,218,217,217,217,217,217,217,217,217,217,217,221,217,217,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,220,221,220,221,220,221,220,221,220,221,220,221,220,220,220,220,220,220,220,220,198,198,197,196,196,196,196,197,196,197,197,198,197,198,198,198,197,198,198,198 +,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,109,109,108,109,252,109,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,108,107,108,107,108,252,252,252,108,252,252,252,109,109,252,109,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,109,109,109,109,252,109,109,109,252,109,252,109,252,252,252,252,252,252,252,252,252,107,252,107,109,107,107,107,109,109,109,109,109,107,107,62,81,80,65,62,65,81,83,83,83,65,65,65,64,65,65,65,65,66,89,65,88,66,66,68,70,66,68,70,71,71,75,72,105,105,111,111,111,111,111,110,111,111,111,111,111,111,111,109,110,110,110,110,111,111,111,111,111,110,111,111,104,104,105,105,105,105,105,110,111,111,111,110,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,110,110,109,110,109,109,109,109,109,109,109,109,109,110,110,110,110,110,110,110,110,111,110,111,110,111,111,111,111,111,111,111,109,109,110,111,109,110,110,110,109,109,109,109,109,110,110,110,110,110,110,111,110,111,111,111,109,110,110,110,110,110,110,106,107,106,110,107,107,107,106,106,106,75,75,75,75,75,76,105,105,105,105,105,111,111,111,111,111,111,111,111,111,111,111,111,111,111,109,110,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,110,111,111,111,111,111,111,111,111,111,111,109,109,109,104,106,108,104,108,108,108,108,108,108,107,108,107,107,107,106,106,106,106,107,107,107,106,106,106,106,31,65,30,65,29,65,29,65,28,66,27,66,26,66,26,66,25,67,24,67,23,218,23,218,22,68,31,218,30,68,29,68,29,69,28,69,27,218,27,218,26,218,26,218,25,218,25,218,24,218,23,218,23,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,218,218,217,218,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,221,217,221,217,221,217,221,221,221,217,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,220,221,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,196,196,196,197,198,196,197,196,197,197,198,198,198,198,198,198,197,198 +,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,109,109,109,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,107,108,107,252,252,252,252,252,252,252,252,252,109,109,109,108,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,107,107,109,107,252,107,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,109,252,252,252,107,252,107,109,107,107,107,109,107,109,107,109,107,95,81,81,66,81,67,82,82,65,65,65,68,65,66,66,66,67,66,66,66,66,66,66,66,67,67,67,67,68,70,105,105,105,111,111,111,105,110,111,110,111,110,111,110,111,111,111,111,110,110,111,110,111,109,110,110,111,110,111,111,110,110,111,110,111,110,111,110,111,110,111,110,111,111,111,110,111,111,111,111,111,111,111,111,111,111,110,110,110,109,110,109,109,109,111,111,110,109,110,109,110,110,110,109,110,110,111,110,111,110,111,110,111,111,111,111,111,110,111,109,109,109,111,111,110,109,110,109,110,109,110,109,110,109,110,110,110,110,111,110,111,111,110,109,110,110,110,109,110,110,111,110,106,110,108,107,107,107,107,106,107,106,74,76,76,105,105,105,105,105,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,109,110,110,111,111,111,110,111,111,111,110,111,111,111,110,111,111,111,111,111,110,111,110,111,111,111,110,111,111,109,109,109,109,104,106,104,108,108,108,108,108,108,107,106,107,108,107,107,106,106,106,107,106,107,107,107,106,107,106,106,31,66,29,66,27,66,25,66,23,67,22,67,30,67,28,218,27,68,25,68,23,68,22,68,29,68,26,218,23,218,28,218,27,218,26,218,30,218,29,218,29,218,28,218,27,218,26,218,25,218,24,218,24,218,23,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,217,218,217,218,217,218,217,217,217,218,217,217,217,217,221,217,217,217,221,217,221,217,221,217,221,217,221,217,221,217,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,220,221,220,221,220,221,220,221,220,221,220,221,220,220,220,220,220,220,220,220,220,220,220,220,220,220,196,196,196,197,197,198,196,197,197,197,197,198,197,198,197,198,197,198,198,198 +,108,252,108,252,252,252,108,252,108,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,109,108,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,252,108,107,108,108,108,252,108,252,252,252,252,252,109,109,108,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,107,109,107,109,107,109,109,109,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,107,252,107,109,107,107,107,109,107,109,109,109,107,109,107,80,68,66,81,66,65,64,66,66,66,69,67,67,67,67,70,69,68,68,68,68,67,69,67,68,69,68,105,105,105,111,105,105,105,111,110,111,111,111,111,111,111,111,110,110,110,111,110,111,111,110,110,110,109,110,110,111,111,110,110,110,110,110,110,110,110,111,110,111,110,111,111,111,111,111,111,111,111,111,111,111,111,110,110,110,109,109,109,109,109,110,110,110,110,111,111,110,109,109,111,110,110,110,110,110,110,111,110,111,111,111,111,111,110,111,109,109,109,110,109,109,110,111,110,110,110,110,110,109,109,109,109,110,110,111,111,111,109,110,109,110,110,110,110,109,110,110,110,110,110,111,106,110,107,107,107,107,107,107,106,106,106,105,105,105,105,105,105,111,111,111,111,111,111,111,111,111,111,111,111,111,111,109,109,110,110,111,110,111,110,111,111,111,111,111,111,111,111,111,111,111,110,111,111,111,111,111,111,111,111,111,111,109,109,109,104,104,106,104,108,108,108,107,108,108,108,106,107,107,108,107,107,106,106,107,107,106,107,107,106,106,106,106,106,106,28,66,28,66,27,66,26,67,25,67,25,67,24,67,24,67,23,218,22,218,28,218,28,218,27,218,26,218,25,218,25,218,31,218,29,218,28,218,26,218,25,218,23,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,221,217,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,220,221,220,221,220,221,220,221,220,221,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,196,196,196,197,198,198,198,196,197,197,197,197,197,197,198,198,198,197,198,198,198,197 +,252,108,252,252,252,252,252,108,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,252,252,252,252,252,252,252,252,252,252,252,108,252,109,108,109,108,109,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,107,108,108,108,252,252,252,252,109,252,252,252,109,109,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,107,109,109,107,109,107,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,107,252,107,109,107,109,107,109,107,109,107,109,107,107,66,67,66,68,64,67,66,66,67,69,69,67,69,69,69,69,69,70,69,69,68,69,68,69,70,105,105,105,105,105,105,111,110,110,110,110,111,111,111,111,110,111,111,111,110,111,110,111,111,110,109,110,109,110,109,111,109,110,110,110,110,110,110,111,110,111,110,111,110,109,111,111,110,111,110,111,111,111,111,111,110,110,110,110,109,109,109,109,109,110,109,110,110,109,109,111,111,110,109,110,110,110,110,111,110,111,110,111,110,111,111,111,111,110,109,110,109,110,109,110,109,110,109,110,109,110,110,111,110,109,109,110,111,109,109,110,109,110,109,110,109,109,109,111,111,111,110,111,110,111,110,111,110,111,107,108,107,107,106,105,105,105,111,111,111,105,105,111,111,111,110,111,111,111,111,111,111,111,110,111,109,110,109,111,110,111,110,111,110,111,110,111,110,111,111,111,111,111,111,111,110,111,110,109,110,111,110,111,111,111,111,109,109,109,104,106,107,104,104,108,108,108,108,108,107,106,106,107,107,108,107,108,106,107,106,107,107,107,107,107,106,107,106,106,106,106,27,67,26,67,106,67,23,67,22,68,67,68,67,68,30,68,29,69,29,218,28,218,27,218,26,218,25,218,25,218,24,218,30,218,28,218,27,218,25,218,24,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,217,218,217,218,217,218,217,218,217,218,217,217,217,217,217,217,217,217,221,217,221,217,221,217,221,217,221,217,221,217,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,196,196,197,197,198,197,198,198,197,196,197,196,197,197,196,197,198,198,198,198,198,198,198 +,108,252,108,252,252,252,252,252,108,109,108,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,108,109,108,108,109,252,109,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,108,108,108,252,252,252,108,252,252,252,109,109,108,109,108,109,252,252,252,252,252,252,252,252,252,252,252,252,252,107,109,107,109,109,109,109,109,109,109,109,252,109,252,109,252,252,252,252,252,252,252,252,252,107,252,107,252,107,107,107,109,109,109,109,109,107,109,107,68,70,68,69,69,67,69,68,70,70,69,69,68,70,70,70,70,69,68,70,69,71,105,105,105,105,105,105,111,111,110,110,111,111,110,110,111,111,111,110,110,110,110,110,111,111,111,111,111,111,110,109,110,110,110,110,110,110,110,110,110,110,110,110,110,109,109,110,110,111,111,110,111,111,111,111,111,111,111,110,110,110,110,109,109,109,109,109,110,110,109,109,111,111,111,111,111,111,110,110,110,110,110,110,111,110,111,110,111,111,111,111,110,109,109,109,110,109,110,109,110,110,110,110,110,110,110,110,111,111,111,109,109,109,109,109,110,110,110,109,110,110,111,111,110,110,110,110,111,111,111,111,111,109,109,109,105,105,105,111,111,111,111,111,105,105,111,111,111,111,111,111,111,111,111,111,111,111,109,109,110,110,110,110,111,110,111,110,111,111,111,111,111,111,111,111,111,111,111,111,111,109,109,110,110,111,111,111,111,111,109,109,109,109,104,106,108,104,108,108,108,108,108,108,108,108,106,106,107,108,108,107,106,106,106,106,107,106,107,106,107,106,106,106,106,106,67,29,67,28,67,27,68,26,68,25,218,24,218,23,218,22,218,29,218,28,218,27,218,27,218,26,218,25,218,24,218,24,218,23,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,217,217,217,218,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,221,217,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,220,220,220,221,220,220,220,221,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,196,197,197,197,197,198,198,198,196,196,196,197,196,196,196,197,198,198,198,198,198,198,197 +,252,252,252,252,252,252,252,108,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,108,252,108,252,252,252,109,252,252,252,109,109,109,108,109,252,109,252,109,252,252,252,109,252,252,252,252,252,252,107,107,109,107,252,107,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,109,252,252,252,107,252,107,109,107,109,107,109,107,109,107,109,107,107,107,68,70,70,71,69,69,69,69,70,69,70,70,69,70,70,71,70,70,71,105,105,111,111,105,111,111,111,111,111,110,110,110,111,110,111,111,111,111,110,110,111,110,111,110,111,110,111,111,111,111,110,109,110,109,110,109,110,109,110,109,110,109,110,110,110,110,111,110,111,111,110,110,111,110,111,110,111,110,111,109,110,109,109,109,110,109,110,109,109,110,110,110,111,110,111,111,110,109,110,110,111,110,111,110,111,110,111,111,111,109,110,109,110,109,110,109,110,109,110,109,110,109,110,110,111,110,111,110,111,111,109,109,110,109,110,109,109,109,110,110,111,111,110,109,110,109,110,110,111,110,111,110,111,110,105,105,105,105,105,105,105,105,105,105,111,111,111,110,111,110,111,111,111,110,111,109,110,109,110,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,111,111,111,109,109,110,109,110,110,111,110,111,109,110,109,110,110,111,104,104,106,104,108,108,108,108,108,108,107,108,106,107,107,108,108,108,106,107,106,107,107,107,107,107,106,107,106,106,106,106,106,68,30,68,29,68,28,68,26,68,25,218,23,69,22,69,68,69,69,70,69,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,217,217,217,217,217,217,217,221,217,221,217,221,217,221,217,221,217,221,217,221,221,221,221,221,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,220,220,221,220,220,220,221,220,220,220,221,220,220,220,221,220,220,220,221,220,220,220,221,220,220,220,221,220,220,220,221,220,220,196,197,196,197,197,198,197,198,197,198,197,198,196,197,196,197,196,198,197,198,198,198,197,198 +,108,252,108,252,108,252,252,252,108,109,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,108,108,109,108,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,108,108,108,252,108,252,252,252,252,252,252,109,108,109,108,109,252,109,252,252,252,252,252,252,252,252,252,252,107,107,109,109,107,107,109,109,109,109,252,109,252,109,252,252,252,109,252,252,252,252,252,252,252,252,252,107,252,107,107,107,109,107,109,107,109,107,109,107,109,70,71,70,71,70,70,71,70,71,71,72,71,71,71,71,70,105,105,105,105,105,105,111,111,111,111,111,110,110,110,110,110,110,111,111,111,111,111,111,110,110,111,111,111,111,111,111,109,109,109,109,110,109,110,109,109,109,110,109,110,110,110,110,110,110,111,111,111,111,111,110,110,109,109,109,109,109,110,109,110,109,110,109,109,109,110,110,110,110,111,111,111,110,111,110,109,109,109,109,110,110,110,110,110,110,111,111,111,109,110,109,109,109,109,109,110,110,110,109,110,110,110,110,110,109,109,109,109,109,109,109,109,109,110,109,110,109,110,110,111,111,110,110,110,110,110,110,110,110,111,110,111,105,105,105,105,111,111,111,111,111,111,111,105,111,111,111,111,111,111,111,111,111,111,109,109,109,110,110,111,111,111,110,111,110,111,110,111,111,111,111,111,111,111,111,111,111,109,109,110,109,110,110,110,110,111,111,110,110,110,110,110,104,106,104,106,108,108,108,108,108,108,108,108,107,108,106,107,108,108,107,107,106,107,106,107,106,108,107,107,106,106,106,106,106,106,106,68,29,68,28,68,27,69,26,69,25,218,24,218,23,218,22,218,27,218,27,70,26,218,25,218,24,218,23,218,23,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,217,218,217,218,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,221,217,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,197,198,198,198,197,198,197,198,196,196,196,197,197,197,197,198,197,198,198,198,197 +,252,108,252,252,252,252,252,252,252,108,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,108,109,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,108,108,252,252,252,252,252,252,252,252,109,109,108,109,252,109,252,109,252,109,252,252,252,252,252,252,252,107,109,107,109,107,252,107,252,107,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,109,252,107,252,107,109,107,109,107,109,107,109,107,109,107,107,107,109,71,71,71,71,71,71,71,70,71,71,72,71,70,105,105,111,105,105,111,111,111,111,111,111,111,111,110,111,110,111,110,111,110,111,111,111,111,111,110,111,110,111,111,111,111,111,109,109,109,110,109,109,109,110,109,110,109,110,110,110,110,109,109,109,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,110,109,109,110,110,111,110,111,110,111,110,111,110,111,110,111,110,111,111,111,109,110,109,110,109,110,109,110,109,109,109,110,109,110,109,110,109,109,109,109,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,110,111,111,110,110,110,110,110,110,111,110,111,110,105,105,105,111,111,111,111,111,111,111,111,111,105,111,111,111,111,110,111,110,111,111,110,109,110,109,110,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,111,111,111,109,109,110,109,110,110,111,110,111,111,110,109,110,110,111,104,106,104,108,108,108,108,108,108,108,108,108,108,108,108,108,106,108,107,108,107,108,106,107,106,108,108,107,106,107,106,107,106,106,106,106,27,69,26,69,24,218,23,218,218,70,69,70,30,218,30,218,29,218,29,218,28,218,27,218,27,218,26,218,25,218,25,218,24,218,24,218,23,218,23,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,217,217,217,217,217,217,217,217,217,221,217,221,217,221,217,221,217,221,217,221,217,221,221,221,221,221,221,221,221,221,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,198,197,198,197,196,196,197,196,197,196,197,197,198,197,198,198,197 +,108,252,108,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,108,108,108,109,109,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,108,108,252,252,252,108,252,252,252,252,252,108,109,109,109,252,109,252,109,252,252,252,252,252,252,252,252,107,107,109,109,109,107,109,107,252,109,109,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,107,252,107,107,107,109,107,109,107,109,107,109,107,109,109,70,70,70,70,71,71,72,71,71,72,72,105,105,105,105,105,111,111,111,111,111,111,110,110,110,110,111,110,111,110,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,110,110,110,109,109,109,109,109,109,110,110,110,109,109,109,109,109,109,109,109,109,110,109,110,109,110,110,110,110,110,110,110,109,110,110,110,110,111,111,111,110,111,110,111,110,111,111,111,110,111,111,111,109,109,109,109,109,110,110,110,110,110,110,110,110,111,109,109,109,110,110,110,109,109,109,110,110,110,110,111,111,110,110,110,109,110,110,110,110,109,110,111,110,110,110,110,110,110,110,110,110,111,105,105,111,105,111,111,111,111,111,111,111,111,105,111,105,111,111,110,110,111,111,111,111,110,109,109,109,110,110,111,111,111,110,110,110,111,111,111,110,111,111,111,111,111,111,111,109,111,109,109,109,110,110,110,110,111,111,110,110,110,110,110,110,111,104,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,107,108,107,107,106,106,107,108,107,107,107,106,106,106,106,106,106,106,69,69,30,218,28,218,26,218,29,218,28,218,26,218,25,218,24,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,218,218,217,218,217,217,217,218,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,221,217,221,221,221,217,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,220,221,221,221,220,221,220,220,220,221,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,196,196,197,197,197,197,198,197,198,198,198,198 +,252,108,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,108,252,108,252,108,252,108,252,109,252,109,252,252,252,252,252,252,252,252,108,108,252,108,252,252,252,252,252,252,252,252,108,252,108,109,109,109,252,109,252,109,252,109,252,252,252,252,252,107,109,107,109,109,252,107,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,107,252,107,109,107,109,107,109,107,109,107,109,107,107,107,109,107,70,70,70,70,70,71,71,105,105,105,105,111,111,111,111,111,111,111,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,111,111,111,111,111,111,111,111,110,111,111,110,110,109,109,109,109,110,109,110,109,110,109,109,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,110,110,110,111,110,111,111,111,110,111,110,111,110,111,110,111,111,111,109,109,109,110,109,110,109,110,109,110,110,111,110,111,110,111,110,109,109,111,111,110,110,110,110,111,110,111,111,110,109,110,109,110,109,110,109,110,110,110,109,110,110,111,110,110,110,111,110,105,105,111,111,105,111,111,111,111,111,111,111,111,111,111,105,111,110,111,110,111,111,111,111,110,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,111,111,110,111,111,109,109,110,109,110,110,111,111,110,109,110,110,111,110,111,104,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,107,108,107,108,107,108,106,106,107,108,106,107,106,107,106,107,106,106,106,106,69,218,69,70,69,70,70,70,23,70,31,71,30,218,29,218,28,218,27,218,26,218,26,218,25,218,24,218,23,218,23,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,218,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,217,217,218,217,217,217,217,217,217,217,217,221,217,217,217,221,217,221,217,221,217,221,217,221,217,221,217,221,221,221,221,221,217,221,221,220,221,221,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,198,197,198,197,198,197,198 +,108,252,108,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,109,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,108,108,108,109,108,109,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,108,108,108,252,108,252,252,252,252,252,252,252,108,109,109,109,109,109,252,109,252,252,252,252,252,252,252,252,107,107,109,109,109,107,109,109,109,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,107,252,107,107,107,109,107,109,107,109,107,109,107,109,109,107,107,70,71,70,71,105,105,111,111,111,111,111,111,111,111,111,111,110,110,110,110,110,110,111,110,111,110,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,110,110,109,109,109,109,110,109,110,110,110,109,109,109,109,109,109,109,109,109,110,109,109,110,110,111,110,110,110,109,109,109,110,110,110,110,111,111,111,110,111,110,111,110,111,111,111,111,111,111,111,111,109,109,109,109,110,109,110,110,110,110,110,110,110,110,111,110,111,111,111,111,110,110,110,110,111,110,111,111,110,109,110,109,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,105,105,105,105,105,105,111,111,111,111,111,111,111,111,111,105,111,105,111,110,110,111,111,111,110,110,110,110,110,110,110,110,110,111,110,111,110,111,110,111,110,111,111,111,111,111,111,111,111,111,109,109,109,109,109,110,109,110,110,110,110,110,110,110,110,110,109,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,107,108,108,108,108,107,108,107,107,106,106,108,107,107,107,106,106,106,106,106,106,106,218,28,70,27,70,26,70,25,71,25,71,24,218,24,218,23,218,23,218,22,218,30,218,28,218,26,218,24,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,217,218,217,218,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,221,217,221,217,221,217,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,220,221,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220,220 +,252,108,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,109,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,108,108,108,109,108,252,108,252,108,252,109,252,109,252,252,252,252,252,252,252,252,252,108,108,108,252,252,252,252,252,252,252,252,252,252,108,109,252,109,252,109,252,109,252,252,252,252,252,252,252,107,109,107,109,107,109,107,252,107,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,107,252,107,252,107,109,107,109,107,109,107,109,107,107,107,109,109,107,107,105,105,105,105,111,111,111,111,111,111,111,111,110,110,110,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,111,111,111,110,110,110,110,110,110,109,109,110,109,110,109,110,109,110,109,109,109,110,109,110,109,110,109,110,109,110,109,110,110,111,110,111,110,109,109,110,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,109,110,109,110,110,111,111,110,109,110,109,110,109,110,109,110,110,111,111,111,111,111,110,109,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,110,110,110,110,110,110,110,105,105,105,111,111,111,105,111,111,111,111,111,111,111,111,111,105,111,105,111,110,110,109,109,110,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,109,109,109,109,110,109,110,109,110,109,110,109,110,110,110,110,111,110,109,108,108,108,108,108,108,108,108,108,108,105,105,105,105,111,105,104,104,104,104,104,104,104,108,107,108,106,108,106,107,106,107,106,107,106,107,106,106,106,70,29,218,29,218,28,218,27,218,26,218,26,218,25,218,24,218,23,218,23,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,217,217,217,217,217,217,217,217,217,217,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,221,221,221,221,221,220,221,220,221,220,221,221,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221 +,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,109,108,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,108,108,108,108,108,109,109,109,109,252,109,252,109,252,252,252,252,252,252,252,252,252,108,108,252,108,252,108,252,252,252,252,252,252,109,108,109,252,109,252,109,252,252,252,252,252,252,252,252,107,107,107,107,109,109,109,109,109,109,109,109,252,109,252,109,252,252,252,109,252,252,252,252,252,252,252,107,252,107,109,107,109,107,109,107,109,107,109,107,109,109,109,107,107,111,111,111,111,111,111,111,111,111,111,111,110,110,110,110,110,110,110,110,111,110,110,110,111,111,111,111,111,111,111,111,111,111,111,110,109,110,111,109,109,109,110,109,109,109,109,109,110,109,110,109,110,110,110,110,109,109,109,109,110,109,110,110,110,110,110,110,110,110,111,110,111,111,111,111,110,110,110,110,111,110,111,110,111,111,111,110,109,109,109,109,110,110,110,110,110,110,111,110,111,111,111,110,110,111,111,111,111,111,110,109,109,109,109,109,109,109,109,109,110,109,110,109,110,110,110,109,110,110,110,110,110,110,110,110,110,105,105,105,105,111,111,105,105,111,111,111,111,111,111,111,111,111,111,111,105,111,111,111,109,109,110,110,111,110,110,110,110,110,110,110,111,110,110,110,111,110,111,110,111,111,111,110,111,111,111,111,109,111,109,109,109,109,109,109,110,109,110,109,110,110,110,110,110,110,105,109,105,105,105,105,105,105,105,105,105,105,109,109,109,109,109,109,104,104,104,104,104,104,104,104,108,107,107,106,108,107,107,106,107,106,106,106,106,106,106,106,218,24,218,23,218,23,218,22,218,25,218,24,218,23,218,31,218,30,218,29,218,28,218,27,218,27,218,26,218,25,218,24,218,23,218,22,218,218,218,218,218,218,218,218,218,218,218,217,218,218,218,217,218,217,218,217,218,217,217,217,218,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,221,217,217,217,221,217,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,220,221,220,220,220,221,220,220,220,221,220,220,220,221,220,220,220,221,220,220,220,221,220,220,220,221,220,220,220,221,220,220,220,221,220,220,220,221,220,220,220,221,220,220,220,221,220,220,220,221,220,220,220,221,220,220,220,221,220,220,220,221,220,220,220,221,220,220,220,221,220,220,220,221,220,220,220,221,220,220,220,221,220,220,220,221,220,220,220,221,220,220,220,221,220,220,220,221,220,220,220,221,220,220,220 +,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,108,108,252,108,109,108,252,108,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,108,108,252,252,252,252,252,252,252,252,252,109,109,109,109,252,109,252,109,252,109,252,252,252,252,252,107,109,107,109,109,252,107,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,107,252,107,252,107,109,107,109,107,109,107,109,107,107,107,109,109,107,107,107,111,111,111,111,111,111,111,111,111,111,111,110,110,110,110,111,110,111,110,111,110,111,110,111,110,111,111,111,110,111,111,110,109,110,110,109,109,110,110,111,110,109,109,110,109,110,109,110,109,110,110,111,110,109,109,110,109,110,109,110,109,110,110,111,110,111,110,111,110,111,111,111,111,110,110,111,110,111,110,111,110,111,110,111,110,109,109,110,109,110,109,110,109,110,110,111,110,111,110,111,110,111,111,111,111,110,109,109,109,109,109,109,109,109,109,110,109,110,109,110,109,110,109,110,109,110,110,110,109,110,110,110,105,105,105,111,105,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,105,111,110,111,110,109,109,110,110,111,110,111,110,110,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,111,111,110,111,109,110,111,109,109,110,109,110,109,110,109,110,110,110,109,110,110,111,110,111,110,111,110,111,110,111,110,111,111,110,109,110,110,111,110,111,111,111,109,104,106,107,108,104,104,108,107,107,106,107,106,107,106,107,106,107,106,107,106,106,24,218,23,218,23,218,22,218,25,218,31,218,29,218,27,218,26,218,24,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,218,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,217,217,218,217,217,217,217,217,217,217,217,217,217,217,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,221,221,217,221,221,221,221,221,221,221,221,221,221,221,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221 +,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,109,108,109,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,108,108,108,108,108,109,109,109,109,252,109,252,252,252,252,252,252,252,252,252,252,252,108,108,252,108,252,252,252,252,252,252,109,108,109,109,109,252,252,252,252,252,252,252,252,252,252,107,107,107,107,109,109,109,109,109,109,109,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,107,252,107,109,107,109,107,109,109,109,107,109,107,109,109,107,107,107,107,111,111,111,111,111,111,111,110,111,111,110,109,110,110,110,110,111,111,111,111,111,111,111,111,111,111,109,109,110,109,110,110,110,110,111,109,109,109,110,110,109,109,109,109,110,109,110,110,110,110,110,110,111,109,109,109,110,109,110,109,110,110,110,110,110,110,111,110,111,111,111,111,110,110,110,110,110,110,111,110,111,111,111,109,109,109,110,109,110,110,110,110,110,110,111,111,111,111,111,111,111,110,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,110,109,110,109,110,109,110,110,110,110,110,110,105,105,105,111,105,105,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,109,110,110,110,110,111,110,110,110,110,109,110,111,111,110,110,110,111,110,111,110,111,111,109,111,111,111,111,111,111,109,110,110,111,109,109,109,111,109,110,109,110,110,110,110,110,110,110,110,110,110,111,110,111,111,111,111,111,111,111,109,110,109,110,109,110,110,110,110,110,110,104,106,107,108,104,104,107,107,107,107,107,107,107,106,107,106,106,106,106,106,106,71,72,71,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,217,218,217,218,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,221,217,221,217,221,217,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220 +,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,109,108,108,109,108,252,108,252,108,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,108,109,108,109,252,109,252,109,252,252,252,252,252,252,252,107,107,107,109,107,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,107,252,107,109,107,107,107,109,107,109,107,107,107,109,107,107,107,107,107,111,111,111,111,111,110,111,110,111,110,111,111,110,110,110,110,111,110,111,111,111,110,111,111,109,109,110,110,111,111,110,109,110,110,109,109,110,109,110,109,110,109,110,109,110,109,110,110,111,110,111,110,109,109,110,109,110,109,110,109,110,110,111,110,111,110,111,110,111,111,111,110,111,110,111,110,111,110,111,110,111,110,109,109,110,109,110,110,111,110,111,110,111,111,110,110,111,110,111,111,109,109,109,109,110,109,109,109,109,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,105,105,105,111,111,105,110,111,111,111,105,111,111,105,105,111,105,111,111,111,109,111,111,111,105,111,110,109,109,110,110,111,111,111,110,111,109,110,109,111,110,111,110,111,110,111,110,111,110,109,110,111,110,111,110,111,111,109,109,110,109,111,110,111,109,110,109,110,109,110,109,110,110,110,110,110,110,111,110,111,110,111,110,111,111,111,109,110,109,110,109,110,109,110,110,110,110,111,110,104,106,107,107,104,104,104,107,107,107,107,106,107,106,107,106,107,106,106,106,106,29,218,28,218,26,218,25,218,24,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,217,217,217,217,217,217,217,217,217,217,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,221,221,221,221,217,221,221,221,221,221,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221 +,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,108,109,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,252,108,109,109,108,108,109,108,109,108,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,108,109,109,109,252,109,252,109,252,252,252,252,252,252,252,252,107,107,107,107,109,109,109,107,109,109,109,109,252,109,252,109,252,252,252,109,252,252,252,252,252,252,252,107,252,107,109,107,109,107,107,109,109,107,109,107,107,109,107,107,107,107,107,107,111,110,110,110,111,110,110,110,111,111,111,111,111,111,111,110,111,111,111,111,109,109,109,109,110,110,110,110,111,111,110,110,109,109,109,109,109,109,109,109,109,109,110,109,110,110,110,110,111,109,109,109,110,109,110,109,110,110,110,110,110,110,110,110,111,111,111,111,111,110,110,110,111,110,110,110,111,111,111,110,109,109,109,109,110,110,110,110,111,109,110,110,110,110,111,111,109,109,109,109,109,109,109,109,109,109,109,110,109,109,109,109,109,109,109,109,110,109,110,109,110,110,110,105,105,105,105,111,111,105,105,111,111,105,111,105,110,111,111,111,111,111,111,111,111,109,111,111,111,111,111,111,109,109,110,110,111,111,111,110,109,109,109,109,110,110,110,110,111,111,111,110,111,111,109,109,110,110,109,109,110,110,110,110,110,110,111,111,111,109,109,109,110,110,110,109,110,110,110,110,110,110,110,110,111,110,111,110,111,111,111,109,110,111,110,109,110,110,110,110,110,110,110,110,111,104,106,107,108,108,104,104,107,107,107,107,107,107,107,106,106,106,106,106,106,106,218,29,218,28,72,27,218,26,218,25,218,31,218,29,218,28,218,26,218,25,218,23,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,218,218,217,218,217,218,217,218,217,217,217,218,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,221,217,217,217,221,217,221,221,221,217,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,220,221,220,221,220,221,221,221,220,221,220,221,220,221,221,221,220,221,220,221,220,221,221,221,220,221,220,221,220,221,221,221,220,221,220,221,220,221,221,221,220,221,220,221,220,221,221,221,220,221,220,221,220,221,221,221,220,221,220,221,220,221,221,221,220,221,220,221,220,221,221,221,220,221,220,221,220,221,221,221,220,221,220,221,220,221,221,221,220,221,220,221,220,221,221,221,220,221,220,221,220,221,221,221,220,221,220,221,220,221,220,221,220 +,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,108,108,252,108,252,108,109,109,108,108,252,108,252,108,252,108,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,109,109,109,109,252,109,252,109,108,109,252,252,252,252,252,107,252,107,109,107,252,107,109,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,107,252,107,109,107,109,107,109,107,109,107,109,107,109,107,109,107,107,107,107,110,111,110,110,110,111,110,111,110,111,110,111,110,111,110,111,111,111,110,109,109,110,109,110,109,110,109,110,110,111,110,111,110,111,109,109,109,110,109,109,109,110,109,110,110,110,110,111,109,110,109,110,110,111,111,110,110,110,110,111,110,111,110,111,111,111,111,111,110,111,110,111,110,111,110,111,110,111,109,109,109,110,109,110,110,111,110,109,111,110,110,111,110,111,109,109,109,110,109,109,109,110,109,109,109,110,109,110,109,110,109,109,109,110,109,110,109,110,109,110,109,105,105,105,105,111,110,105,105,111,111,111,111,111,110,110,110,111,110,111,110,111,110,111,110,111,110,111,111,111,111,111,111,109,109,110,110,111,110,109,109,110,109,110,110,110,110,111,110,111,110,111,109,110,109,110,109,110,109,110,110,111,110,111,110,111,110,111,109,110,109,110,109,110,109,110,109,109,109,110,109,110,109,110,110,111,110,111,111,111,109,110,110,111,109,110,109,110,109,109,110,111,110,110,110,104,106,107,107,104,104,104,104,106,107,107,107,107,106,107,106,107,106,106,106,106,106,218,26,218,24,218,23,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,218,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,217,217,217,217,217,217,217,221,217,217,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,221,221,217,221,221,221,221,221,221,221,221,221,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221 +,109,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,108,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,108,108,252,109,109,108,108,108,109,108,109,108,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,109,109,109,252,252,252,252,252,252,252,252,252,252,252,107,107,107,109,109,109,109,109,109,109,109,109,109,252,109,252,109,252,252,252,252,252,252,252,252,252,107,252,107,109,107,109,107,109,107,109,107,109,107,107,109,109,109,109,107,107,107,111,109,109,110,110,110,110,110,110,110,111,110,111,111,111,111,111,111,111,109,109,109,110,110,110,110,110,110,111,111,111,111,111,109,109,109,109,109,110,109,109,109,110,110,110,110,109,109,110,110,110,110,110,110,111,111,110,110,110,110,111,110,111,111,111,111,111,110,110,110,110,110,111,110,111,110,111,109,109,109,110,110,110,110,111,111,109,111,110,110,111,111,109,109,109,109,109,109,109,109,109,109,110,109,109,109,109,109,109,109,109,109,109,109,109,109,110,109,105,105,105,105,105,111,105,105,105,111,111,111,111,111,111,110,110,110,110,110,110,110,111,110,111,111,111,111,111,111,111,105,111,111,111,109,110,110,111,110,109,109,109,109,110,110,110,110,110,110,110,110,111,111,111,111,110,110,110,110,110,110,110,110,111,111,111,111,111,109,109,109,109,109,110,109,109,109,109,109,110,109,110,109,110,110,110,110,110,110,110,110,111,110,111,110,111,111,111,111,109,110,110,111,110,110,110,104,106,107,108,104,104,104,106,108,106,107,107,107,107,107,107,106,107,106,106,106,106,106,218,25,218,24,218,31,218,30,218,28,218,27,218,26,218,24,218,23,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,217,218,217,218,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,221,217,221,217,221,217,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,217,221,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221 +,252,108,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,108,252,108,109,109,108,108,252,108,252,108,252,108,108,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,252,109,252,109,252,252,252,252,252,252,252,252,107,107,109,107,109,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,107,252,107,109,107,107,107,109,107,109,107,107,107,109,107,109,109,107,107,107,107,110,109,110,109,110,110,110,110,110,110,111,110,111,110,111,110,111,110,111,110,111,110,111,111,111,111,109,111,110,109,110,109,110,109,110,109,110,110,111,110,111,110,109,110,109,109,110,109,110,110,110,110,111,110,111,110,111,110,111,110,111,111,111,111,111,110,111,110,111,110,111,110,111,110,111,109,110,109,110,109,110,110,111,110,109,110,111,110,111,111,109,109,109,109,109,109,110,109,110,109,110,109,110,109,109,109,110,109,110,109,110,109,110,109,110,105,105,105,105,105,105,105,105,111,111,110,111,110,111,111,111,110,110,110,111,110,111,110,111,110,111,110,111,110,111,110,111,111,111,111,111,111,111,109,111,110,111,109,110,109,110,109,110,109,110,110,110,110,111,110,111,110,111,111,111,110,111,110,111,110,111,110,111,111,111,109,109,109,110,109,109,109,110,109,110,109,110,109,110,109,110,110,110,110,110,110,111,110,111,110,111,110,111,110,111,111,109,109,110,110,111,111,111,104,106,106,108,108,104,104,104,106,106,106,108,107,107,107,107,106,106,106,106,106,106,106,106,218,218,218,218,218,218,30,218,29,218,27,218,26,218,25,218,24,218,28,218,24,218,218,218,218,218,218,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,217,217,217,217,217,217,217,217,217,217,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,221,221,221,221,221,221,221,221,221,221,221,221,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221 +,252,252,109,252,108,252,252,252,108,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,108,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,109,109,109,108,108,108,108,108,252,108,108,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,109,109,109,252,252,252,252,252,252,252,252,252,107,107,107,109,109,109,109,109,109,109,109,252,109,252,109,252,252,252,109,252,252,252,252,252,252,252,107,252,107,109,107,109,109,109,107,109,107,109,107,107,107,109,109,109,107,107,107,107,110,110,110,110,110,110,110,110,110,110,110,111,110,111,110,111,111,111,110,111,109,110,110,111,111,109,109,110,109,109,109,110,109,110,109,110,110,110,110,110,110,110,110,109,109,109,109,110,110,110,110,110,110,111,110,111,111,111,110,111,111,111,109,111,111,111,111,111,111,110,109,109,109,109,109,110,110,110,110,110,110,109,109,109,110,111,111,110,109,109,109,109,109,109,109,109,109,109,109,110,109,109,109,110,110,110,109,109,109,109,109,109,109,105,105,105,105,105,105,105,111,111,111,111,111,111,111,111,111,111,111,111,111,111,110,110,110,110,110,111,111,111,110,111,111,111,111,111,111,111,111,111,110,110,110,110,109,109,109,110,109,110,109,110,110,110,110,110,110,110,110,111,111,111,111,110,110,110,110,111,111,111,111,111,111,109,109,109,109,109,109,110,109,110,109,110,110,110,110,110,110,110,110,110,110,110,110,111,110,111,110,111,111,111,109,109,110,110,110,111,111,111,110,104,106,107,108,104,104,104,107,107,106,106,106,107,107,107,107,107,107,106,106,107,106,106,106,106,27,218,27,218,26,218,25,218,25,218,24,218,23,218,22,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,217,217,217,218,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,221,217,217,217,221,217,221,221,221,217,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220 +,252,252,252,109,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,108,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,109,109,109,108,108,252,108,252,108,108,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,107,109,107,252,109,109,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,107,109,107,107,107,109,109,109,107,109,107,107,109,109,107,109,109,109,107,107,107,110,109,110,110,111,110,110,110,111,110,111,110,111,110,111,110,111,110,109,109,111,111,111,111,110,109,110,109,110,109,110,109,110,109,110,110,110,110,111,110,111,110,109,109,110,109,110,109,110,110,110,110,111,110,111,111,111,111,111,110,111,109,111,110,111,110,111,109,110,109,110,109,110,109,110,110,111,110,111,110,109,109,109,110,111,111,110,109,109,109,109,109,110,109,110,109,110,109,109,109,110,109,110,109,110,109,110,109,110,109,109,105,105,105,105,105,111,111,111,111,111,111,111,111,111,110,111,111,111,111,111,111,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,111,111,111,111,110,111,110,110,110,109,109,110,109,110,109,110,110,110,110,111,110,111,110,111,111,111,111,111,110,111,110,111,111,111,111,111,109,110,109,109,109,110,109,110,109,110,109,110,109,110,109,110,110,110,110,110,110,111,110,111,110,111,110,111,110,111,109,110,109,110,110,111,110,111,111,111,110,111,110,106,108,104,107,107,106,107,106,107,106,106,107,107,106,107,106,106,106,106,106,106,106,218,31,218,29,218,28,218,27,218,25,218,24,218,23,218,22,218,218,218,218,218,218,218,218,218,217,218,217,218,217,218,217,218,217,218,217,218,217,217,217,218,217,217,217,217,217,217,217,217,221,217,217,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,221,221,217,221,221,221,221,221,221,221,221,221,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221 +,108,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,109,108,109,108,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,109,108,109,108,109,108,109,108,109,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,109,252,109,252,252,252,252,252,252,252,252,252,252,252,107,109,109,109,107,109,109,109,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,107,109,107,109,107,107,109,109,107,109,107,107,107,109,107,109,109,109,109,107,107,107,110,110,110,110,110,110,110,110,110,111,110,111,110,111,111,111,109,110,111,111,111,111,111,110,109,110,110,110,110,110,110,110,110,110,110,111,110,111,111,111,111,111,109,111,111,110,110,110,110,110,110,111,111,111,111,111,110,111,111,111,111,111,111,110,110,110,109,109,109,109,109,110,109,110,110,110,110,110,109,109,109,109,110,111,111,111,109,109,109,109,109,109,109,110,109,110,109,109,109,109,109,110,109,110,109,110,110,109,109,105,105,105,105,105,111,111,111,111,111,111,105,111,111,111,110,111,111,111,111,111,110,110,110,110,110,110,110,111,110,111,110,111,111,111,111,111,111,111,111,111,110,110,110,110,110,110,109,109,109,109,109,110,110,110,110,110,110,110,110,111,111,111,111,111,110,111,110,111,111,111,111,111,109,109,109,109,109,110,109,110,109,110,109,110,110,110,110,110,110,110,110,110,110,110,110,111,110,111,110,111,111,111,109,109,109,110,110,110,110,111,111,110,110,110,110,111,110,106,107,107,106,107,106,106,106,106,107,106,108,107,107,107,106,107,107,106,106,106,106,218,218,218,31,218,30,218,29,218,28,218,27,218,26,218,24,218,23,218,22,218,218,218,218,218,218,218,217,218,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,221,217,221,217,221,217,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,109,109,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,108,109,252,109,108,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,109,109,252,109,252,252,252,252,252,252,252,252,252,252,109,109,109,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,107,109,107,107,107,109,107,109,107,109,107,107,109,109,107,109,109,109,107,107,107,110,110,110,110,109,110,111,110,111,110,111,110,111,110,111,110,111,109,110,109,111,111,109,109,110,110,111,110,111,111,111,110,111,110,111,110,111,110,111,109,110,110,111,109,110,110,111,110,111,110,111,111,111,110,111,110,111,110,111,111,111,111,110,109,109,109,110,109,110,109,110,109,110,110,110,110,111,110,111,109,109,111,110,110,111,110,111,111,109,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,110,110,105,105,105,105,105,111,111,111,111,111,111,111,111,111,111,111,111,111,110,111,110,111,111,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,111,111,111,111,110,111,110,111,109,109,109,109,109,110,109,110,110,111,110,111,110,110,110,111,110,111,110,111,110,111,110,111,111,111,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,110,110,110,110,110,111,110,111,110,111,110,111,110,111,110,109,109,110,110,111,110,110,110,111,110,111,110,111,104,111,109,108,107,107,106,107,106,106,106,106,107,106,108,107,106,106,106,107,106,107,106,106,106,218,25,218,23,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,217,218,217,218,217,218,217,218,217,218,217,217,217,217,217,217,217,217,217,217,217,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,221,221,221,221,221,221,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221,220,221 +,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,108,109,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,108,109,108,109,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,109,109,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,109,109,109,252,109,109,109,252,252,252,252,252,252,252,252,252,252,252,107,109,107,109,107,107,107,109,109,109,107,107,107,109,107,109,109,109,109,109,107,107,109,110,110,110,110,111,111,111,110,111,110,111,111,111,111,111,109,111,111,111,111,109,110,111,110,110,110,110,110,111,111,111,110,111,110,111,111,111,111,109,110,110,111,111,110,110,109,110,110,110,110,111,111,111,111,111,111,111,110,111,109,109,109,109,109,109,109,110,110,110,110,110,110,110,110,110,110,110,110,111,109,109,109,110,110,110,110,111,111,109,109,110,109,109,109,110,110,110,109,110,110,110,110,110,110,105,105,105,105,111,111,111,111,111,111,111,111,105,110,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,110,111,110,111,110,111,111,111,110,111,111,111,111,111,111,111,110,110,109,109,109,109,109,109,109,110,110,110,110,110,110,110,110,110,110,110,110,111,110,111,110,111,111,111,111,111,109,109,109,110,109,109,109,110,110,110,109,110,110,110,110,110,110,110,110,110,110,110,110,111,110,111,110,111,111,111,109,110,109,110,111,111,110,110,110,110,110,110,110,111,104,111,109,108,108,107,107,107,106,107,106,106,106,107,106,108,107,107,106,107,107,108,106,106,106,106,31,218,29,218,27,218,26,218,24,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,217,217,217,218,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,221,217,217,217,221,217,221,221,221,217,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221 +,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,108,109,252,109,108,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,109,107,109,107,109,107,109,107,109,107,109,107,107,107,109,107,109,109,109,107,109,107,110,109,110,110,111,110,111,110,111,111,111,110,111,109,111,109,111,110,111,111,110,109,110,110,111,110,111,111,111,110,111,110,111,111,111,110,111,110,109,109,111,111,111,111,111,110,111,110,111,110,109,109,110,110,111,109,110,109,110,109,110,109,110,109,110,109,110,110,110,110,110,110,111,110,111,110,111,110,111,110,109,109,110,109,110,110,111,111,111,109,110,109,110,109,110,109,110,109,110,109,110,109,110,105,105,105,105,111,111,110,111,111,111,111,105,111,105,110,111,111,111,110,111,111,111,110,111,111,111,111,111,111,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,111,111,111,109,109,110,109,110,109,110,109,110,109,110,109,110,110,110,110,110,110,111,110,111,110,111,110,111,111,111,111,111,109,110,109,110,109,110,109,110,109,110,109,110,110,110,109,110,110,111,110,110,110,111,110,111,110,109,109,110,109,110,110,111,110,111,111,111,110,111,110,110,110,111,110,111,104,111,109,108,107,108,107,107,106,107,106,107,106,106,106,108,106,107,106,106,106,107,107,107,106,107,106,106,30,218,28,218,26,218,31,218,28,218,25,218,23,218,217,218,218,218,217,218,217,218,217,218,217,218,217,218,217,218,217,217,217,217,217,217,217,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,221,221,217,221,221,221,221,221,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221,221,221,220,221 +,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,109,108,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,108,109,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,109,109,109,252,109,252,109,252,252,252,252,252,252,252,252,252,107,109,107,109,107,109,107,109,107,109,107,107,107,107,107,109,109,109,109,109,107,107,107,110,110,110,110,111,110,111,111,111,111,111,111,111,111,111,111,111,111,110,110,110,110,110,110,111,110,111,111,111,111,111,110,111,111,111,111,109,109,109,110,109,109,109,109,109,109,109,109,110,109,110,109,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,109,109,109,110,110,111,111,111,110,110,110,110,110,110,110,111,111,111,111,111,111,109,109,110,109,110,110,110,110,110,110,105,105,111,111,111,111,110,110,111,111,111,105,105,111,111,110,111,111,111,111,111,105,111,110,111,111,111,111,111,111,111,110,110,110,110,109,111,110,111,110,111,111,111,111,111,111,111,111,109,109,109,109,109,109,110,109,110,110,110,110,110,110,110,110,110,110,110,110,111,110,111,111,111,111,111,111,111,109,109,109,110,109,110,109,110,110,110,110,110,110,110,110,110,109,110,110,110,110,110,110,111,109,109,109,110,110,110,110,110,110,111,111,111,111,110,110,110,110,110,110,104,104,111,106,108,108,108,107,107,107,107,106,106,106,107,107,106,106,106,107,107,106,106,107,107,106,106,106,106,106,106,26,218,24,218,22,218,218,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,221,217,217,217,221,217,221,217,221,217,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221 +,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,108,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,252,109,252,109,108,109,252,109,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,109,107,109,107,109,107,109,107,109,107,109,107,109,107,109,107,109,107,109,109,109,107,107,110,111,110,111,110,111,110,111,110,111,110,111,111,111,111,111,111,110,109,110,109,110,110,110,110,111,110,111,110,111,110,111,111,111,110,109,109,110,109,109,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,110,110,110,110,110,111,110,111,110,111,109,110,109,110,109,110,110,111,110,111,111,110,110,110,110,111,110,111,110,111,110,111,110,111,111,111,111,110,109,110,105,105,105,105,105,105,110,111,110,111,110,111,105,111,110,111,110,111,111,111,111,111,111,111,110,111,110,111,110,111,111,111,109,110,109,111,110,111,110,111,110,111,110,111,110,111,111,111,111,109,109,110,109,110,109,110,109,110,109,110,109,110,110,110,110,111,110,111,110,111,109,111,110,111,110,111,111,111,109,110,109,110,109,110,109,110,109,110,109,110,109,110,110,110,109,111,110,111,110,111,110,111,109,110,109,110,109,110,110,111,110,111,110,111,111,111,110,111,110,111,110,104,106,108,104,109,108,108,107,108,107,107,106,107,106,107,106,107,107,106,107,106,107,106,106,107,107,106,106,107,106,106,106,218,25,218,31,218,28,218,25,218,22,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,217,217,217,221,217,217,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,217,221,221,221,221,221,221,220,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221 +,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,108,109,108,109,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,109,252,252,108,252,108,252,108,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,109,252,109,109,109,252,252,252,109,252,252,252,252,252,252,252,107,107,109,109,107,109,107,109,107,109,107,107,107,107,107,109,107,109,109,109,107,107,107,107,110,111,111,111,110,111,109,111,111,111,111,111,111,111,109,109,109,110,110,110,110,110,110,110,110,110,110,110,110,111,111,111,111,111,111,110,110,111,109,109,109,109,109,109,109,110,109,109,109,110,110,110,109,110,110,110,110,110,110,110,110,110,110,110,110,109,109,109,109,110,110,110,110,110,110,111,111,111,110,110,110,110,110,110,110,110,110,110,110,111,111,111,111,111,111,111,105,105,105,111,111,110,110,110,110,111,111,111,111,111,111,110,110,111,111,111,111,105,111,111,110,111,111,111,111,111,111,111,110,110,110,111,111,111,110,111,110,111,111,111,111,111,111,111,111,109,109,109,109,109,109,109,109,110,110,110,110,110,110,110,110,110,110,110,110,109,110,111,110,111,111,111,111,111,109,109,109,110,109,110,109,110,110,110,110,110,110,110,110,109,110,111,110,110,110,110,110,111,109,109,109,110,110,110,110,110,110,111,111,111,111,111,111,110,110,110,110,106,107,109,104,109,107,108,108,108,107,107,107,107,107,106,106,106,107,107,106,106,107,107,107,106,107,106,107,106,107,106,106,106,106,218,218,218,218,218,218,218,218,218,218,218,218,218,217,218,218,218,217,218,217,217,217,218,217,217,217,217,217,217,217,217,217,217,217,217,217,217,221,217,221,217,221,217,221,221,221,217,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,108,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,252,109,252,109,252,109,108,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,252,109,252,109,252,109,252,109,252,109,252,252,252,109,252,252,252,109,107,107,109,107,109,107,109,107,109,107,109,107,107,107,109,107,109,109,109,109,109,107,107,107,110,109,110,110,110,110,111,110,111,111,111,109,109,109,110,109,110,109,110,109,110,110,111,110,111,110,111,110,111,111,111,111,110,110,111,110,111,110,111,109,109,109,105,105,105,105,105,105,105,105,110,109,110,109,110,109,110,110,111,109,109,109,110,109,109,109,110,109,109,109,110,110,111,111,110,109,110,110,110,109,110,110,111,110,111,110,111,110,111,110,111,110,111,110,105,105,111,111,111,111,110,110,111,110,111,110,111,110,111,110,111,109,110,110,111,111,111,110,111,111,111,110,111,110,111,111,111,111,110,109,110,111,111,110,111,110,111,111,111,110,111,111,111,110,109,109,110,109,110,109,110,109,110,109,110,109,110,110,110,110,110,110,111,110,109,110,111,109,111,111,111,111,111,109,110,109,110,109,110,109,110,109,110,109,109,111,110,109,109,109,111,111,110,110,109,110,111,110,109,109,110,109,110,110,111,110,111,111,111,111,111,111,111,110,111,110,106,107,108,106,104,104,108,107,108,108,108,107,108,107,107,106,106,106,108,107,106,106,106,107,107,106,106,106,107,107,107,106,106,106,106,106,218,218,218,222,218,218,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221 +,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,108,109,108,109,108,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,252,109,108,252,108,252,108,252,108,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,107,109,109,109,109,252,109,252,109,252,252,252,252,252,252,252,109,109,107,109,109,109,107,109,107,109,107,109,107,107,107,107,107,109,109,109,109,109,107,107,107,107,107,110,110,110,110,110,110,111,111,111,111,111,111,110,110,110,109,109,109,110,110,110,110,111,111,109,109,110,110,110,110,110,110,110,110,111,110,111,105,105,105,105,109,107,107,106,106,106,106,106,105,105,105,105,105,105,105,105,105,105,109,109,109,109,109,109,109,110,109,110,109,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,105,105,111,111,111,111,110,110,110,110,110,111,110,111,111,111,110,111,111,110,110,110,110,105,111,111,110,110,110,111,110,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,110,110,110,110,110,110,109,109,109,109,109,109,109,110,109,110,110,110,109,110,110,110,110,110,110,109,110,110,109,110,110,111,111,111,109,109,109,110,109,110,109,110,110,110,110,109,110,111,109,110,110,111,111,109,111,110,110,111,110,111,110,109,109,110,110,111,111,111,111,111,111,111,111,111,110,110,110,106,107,108,104,104,104,106,104,108,107,108,108,108,107,107,107,108,107,107,106,107,106,106,106,107,107,107,106,107,107,107,106,107,106,106,106,106,218,218,218,218,218,218,218,218,218,218,217,218,217,218,217,218,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,221,217,221,217,221,217,221,217,221,217,221,221,221,217,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,108,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,252,109,252,109,252,109,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,107,109,252,109,252,109,252,109,252,109,252,109,252,252,252,109,109,107,109,107,109,107,109,107,109,107,109,107,109,107,107,107,109,107,109,107,109,109,109,107,107,107,107,109,110,110,111,110,111,110,111,110,111,110,111,110,111,111,110,110,111,110,111,110,109,109,110,109,109,109,110,110,111,110,111,110,105,105,105,105,109,109,110,105,105,111,104,107,106,106,106,106,106,106,106,106,107,107,107,107,107,105,105,105,105,108,109,109,110,109,110,109,110,109,110,109,110,109,110,109,110,110,110,110,110,110,111,110,110,110,111,110,105,105,111,111,111,110,110,110,111,110,111,110,111,110,111,110,111,105,111,110,111,110,111,110,111,111,111,110,111,110,111,110,111,110,111,111,111,110,111,111,111,111,110,109,110,110,110,110,110,110,110,110,110,109,109,109,110,109,110,109,110,109,110,109,109,109,110,110,111,110,111,110,111,109,109,109,110,110,111,110,111,111,110,109,110,109,110,109,110,109,110,109,110,109,111,109,110,110,111,109,111,110,111,110,111,110,111,110,111,110,111,109,111,110,111,110,111,111,111,110,111,110,111,110,106,107,104,104,110,110,104,106,107,107,108,108,104,104,108,107,108,107,107,106,106,106,107,106,106,106,108,107,107,106,107,107,106,106,107,106,107,106,106,104,104,104,104,104,218,218,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,218,217,217,217,217,217,217,217,217,217,217,221,217,221,217,221,217,221,217,221,221,221,221,221,221,221,221,221,221,221,221,221,222,222,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221 +,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,108,109,108,109,108,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,252,252,252,252,108,252,108,252,108,252,108,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,107,109,109,252,109,109,109,252,252,252,252,252,252,252,109,109,107,107,107,109,109,109,107,109,107,109,107,109,107,109,107,107,107,107,107,109,109,109,109,109,107,107,107,110,110,110,110,111,110,111,110,111,111,111,111,111,111,110,110,110,110,109,109,110,109,110,110,110,110,110,110,111,105,105,105,105,109,109,109,110,105,105,105,111,111,111,104,107,106,107,106,107,106,107,106,107,106,107,106,107,106,107,107,108,108,109,108,109,109,109,109,110,109,110,109,110,110,110,109,110,110,110,110,110,110,110,110,110,110,110,105,105,111,111,111,111,110,110,110,110,110,110,110,111,111,111,109,110,105,111,110,111,111,110,110,111,111,111,110,110,110,110,110,111,111,111,111,111,111,111,111,111,111,110,110,110,110,110,110,110,110,110,110,110,109,109,109,109,109,109,109,110,110,110,109,109,110,110,110,111,111,111,110,111,109,109,109,110,110,110,110,111,110,111,111,111,109,110,109,110,110,110,110,110,109,109,109,110,110,110,111,111,110,110,110,111,110,110,110,111,111,111,111,111,111,111,111,111,111,111,111,110,109,109,110,110,104,104,110,111,111,109,104,106,106,107,107,108,108,104,104,104,108,108,107,107,106,106,106,107,107,106,106,107,107,107,106,108,106,108,106,106,106,106,106,106,104,104,104,104,104,104,104,104,104,104,104,218,217,218,217,218,217,218,217,217,217,217,217,217,221,217,217,217,221,217,221,217,221,217,221,221,221,221,221,221,221,217,221,217,221,221,221,222,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,252,109,252,109,252,109,108,252,252,252,108,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,109,107,109,107,109,107,109,109,109,107,109,107,107,107,109,107,107,107,109,107,109,107,109,107,109,107,107,107,107,107,111,110,111,110,111,110,111,110,111,110,111,111,109,109,110,109,110,109,110,110,110,110,110,110,105,105,105,105,105,105,105,105,105,105,105,105,111,110,111,110,111,111,111,104,107,106,107,106,107,106,107,107,108,107,107,107,107,107,107,108,107,108,109,108,109,108,110,109,110,109,110,109,110,109,110,109,110,109,110,110,110,109,110,110,105,105,105,111,111,110,111,110,111,110,111,110,111,110,111,110,111,109,111,111,111,111,110,110,111,110,111,111,110,109,110,110,111,110,111,110,111,110,111,111,111,110,111,111,110,109,110,110,110,109,110,110,111,110,110,109,110,109,110,109,110,109,110,109,109,109,110,109,110,110,111,111,111,110,111,110,109,109,110,109,110,109,110,110,111,110,111,111,110,109,110,109,110,109,110,109,110,109,110,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,111,111,110,111,111,111,109,110,109,110,110,111,110,111,110,109,109,110,109,104,106,107,106,107,107,108,108,104,104,104,104,107,106,107,106,107,107,107,106,106,107,108,107,107,106,106,107,107,106,107,106,106,106,104,104,104,104,104,104,104,104,104,104,104,106,104,217,218,217,217,217,218,217,217,217,217,217,217,217,217,217,217,217,217,221,217,221,217,221,217,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,222,222,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221 +,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,109,109,108,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,252,109,252,252,252,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,109,109,109,252,109,252,252,252,252,252,252,109,109,107,107,109,107,109,109,109,107,109,107,107,109,109,107,109,107,107,107,109,107,109,109,109,109,109,107,107,107,107,110,110,110,111,110,111,110,111,111,111,109,109,109,109,109,110,109,110,110,110,105,105,105,105,111,111,111,111,111,110,110,110,110,110,110,110,110,111,111,111,111,111,111,104,107,107,106,107,107,107,106,107,107,108,107,107,107,107,107,107,108,108,108,109,108,109,109,109,109,110,109,110,109,110,110,110,110,110,110,110,110,110,110,105,105,105,105,105,105,105,111,111,110,110,110,110,109,110,110,111,111,111,111,105,111,111,110,111,111,111,110,110,110,110,110,110,110,111,110,111,110,111,111,111,111,111,111,111,110,110,110,110,110,110,110,110,110,110,110,109,109,109,109,109,109,110,109,109,109,110,110,110,110,111,111,111,110,111,110,109,109,110,110,110,110,110,110,111,111,111,109,110,109,110,110,110,110,110,109,109,109,110,110,111,111,111,110,110,110,111,110,111,110,111,111,111,111,111,111,111,111,111,111,111,109,109,109,110,110,111,111,111,109,110,110,110,110,104,106,106,106,107,107,108,108,108,108,104,104,104,104,104,106,106,106,107,107,107,106,106,107,107,107,107,106,108,106,107,106,106,106,106,106,104,104,104,104,104,104,104,104,104,106,107,108,104,217,218,217,218,217,217,217,217,217,217,217,217,221,217,221,217,221,217,221,217,221,217,221,222,221,217,221,217,221,222,221,222,221,222,221,222,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221,221 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,109,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,252,109,107,109,252,109,252,109,252,109,252,252,109,109,107,107,109,107,109,107,109,109,109,107,107,109,109,107,109,107,107,107,109,107,109,107,109,109,109,107,109,107,107,107,107,110,111,110,111,110,111,110,111,109,109,109,110,109,110,109,105,105,105,105,111,105,105,111,111,111,111,109,110,109,110,110,110,110,111,110,111,110,111,110,111,111,110,104,107,107,107,106,107,107,107,107,107,107,108,107,107,107,107,107,107,108,107,108,109,108,110,108,110,109,110,109,110,109,110,109,110,109,110,109,110,105,105,105,105,105,111,111,111,110,109,109,110,109,110,110,111,110,111,110,111,111,105,111,110,110,111,111,110,109,110,109,110,110,111,110,111,110,111,110,111,110,111,111,111,111,111,111,110,110,110,110,110,110,110,110,110,110,111,109,109,109,110,109,110,109,110,109,110,109,110,110,110,110,111,110,111,110,111,109,110,109,110,110,111,110,111,109,110,109,110,109,110,109,110,109,110,110,109,109,111,111,111,110,111,110,111,110,111,110,111,110,111,110,111,109,110,109,110,109,110,110,111,110,111,111,110,110,111,111,110,109,110,110,110,110,104,106,107,106,107,107,108,107,108,108,104,108,104,104,104,104,107,106,107,106,107,107,106,106,106,106,108,107,106,108,107,106,107,106,107,106,106,106,104,104,104,104,104,106,104,106,107,107,104,104,106,217,218,217,217,217,217,217,217,217,217,217,217,217,217,221,217,221,217,221,217,221,221,221,221,221,217,221,221,221,221,221,221,221,221,221,221,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222 +,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,108,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,252,109,252,252,108,252,108,252,108,252,108,252,108,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,107,107,107,252,109,252,109,252,252,252,252,252,109,107,107,107,107,107,107,109,109,109,109,107,109,109,107,109,107,109,107,107,107,107,107,109,109,109,107,109,107,107,107,107,107,110,110,110,110,110,110,111,109,109,109,105,105,105,105,105,105,105,111,105,105,111,111,111,110,110,110,110,110,110,110,110,110,110,110,111,111,111,111,111,111,111,104,108,107,107,107,108,107,107,107,107,107,107,107,107,108,107,108,107,108,107,108,107,108,109,108,110,109,109,109,110,109,110,109,110,110,110,109,105,105,111,111,111,111,111,111,111,110,110,110,109,109,110,110,111,111,111,111,111,111,105,111,111,110,111,110,111,109,110,109,110,110,110,110,110,110,110,110,111,111,111,111,111,111,111,111,111,110,110,110,110,110,110,110,110,110,110,109,109,109,109,109,110,111,110,109,110,110,110,110,110,110,110,110,111,110,111,110,109,110,111,111,111,109,109,109,110,109,110,109,110,110,110,109,110,110,110,109,111,110,110,110,110,110,110,110,111,110,110,110,111,111,111,109,109,109,110,110,110,110,110,110,111,111,109,111,110,110,110,110,110,110,110,110,110,110,104,106,107,107,107,107,108,108,108,108,104,104,104,104,108,107,106,106,107,107,107,106,106,106,106,108,107,106,108,106,107,107,106,106,107,106,106,106,104,104,104,106,104,104,104,106,107,108,104,106,106,217,218,217,217,217,217,217,217,221,217,221,217,221,217,221,217,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,221,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,108,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,252,109,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,107,252,107,252,109,252,109,252,109,252,109,252,252,109,107,107,107,109,107,109,107,109,107,107,107,109,107,109,107,109,107,107,107,109,107,109,107,109,109,109,107,109,107,107,107,109,107,110,110,111,110,111,105,111,105,105,110,105,110,105,111,111,110,111,111,111,111,110,110,110,110,110,110,111,110,111,110,111,110,111,110,111,110,111,111,104,104,108,107,108,107,107,107,107,107,107,107,107,107,107,107,107,108,107,108,107,108,108,108,108,108,109,108,110,108,110,109,110,109,110,109,110,105,105,111,111,110,111,110,111,110,111,110,111,110,111,109,110,109,110,110,111,111,111,105,111,110,111,110,111,110,111,109,110,109,110,110,110,110,110,110,111,110,111,110,111,110,111,111,111,110,111,110,110,109,110,110,110,110,110,110,111,109,110,109,110,110,111,111,110,109,110,109,110,109,110,110,111,110,111,110,111,110,111,111,111,111,111,109,110,109,110,109,110,109,110,109,110,109,110,110,110,109,110,110,111,110,110,110,111,110,111,110,111,110,111,110,111,109,110,109,110,109,110,110,111,110,111,111,111,110,111,111,110,109,110,110,110,109,110,110,111,110,104,104,106,106,107,107,108,108,104,104,104,104,106,108,107,106,106,106,107,106,107,106,106,106,106,107,106,107,107,106,107,106,106,106,107,106,106,104,104,104,104,104,104,104,106,107,104,106,106,106,218,217,218,217,218,217,217,217,217,217,217,217,217,217,222,221,217,221,217,221,221,221,222,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,109,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,108,252,108,252,252,252,108,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,107,107,107,107,252,109,252,252,252,252,252,252,109,107,107,107,107,107,109,109,109,109,107,107,109,109,109,107,109,107,109,107,107,107,109,107,109,109,109,107,109,107,107,107,107,107,107,107,105,111,111,105,111,111,111,111,111,111,111,111,111,111,111,110,110,110,110,110,110,110,110,110,110,110,111,110,111,111,111,111,111,111,111,111,104,108,108,108,108,107,108,107,108,108,108,107,107,107,107,107,107,108,107,107,107,108,107,108,107,108,108,108,109,108,109,109,110,109,110,109,105,105,111,111,111,111,111,110,110,110,110,110,110,110,110,110,111,110,109,110,110,111,111,111,110,110,111,110,111,111,111,109,109,109,110,110,110,110,110,110,110,110,111,110,111,111,111,111,111,111,111,111,110,110,110,110,110,110,110,110,109,109,110,110,110,110,111,111,111,109,110,110,110,110,110,110,111,110,111,111,111,111,111,111,111,111,111,109,109,109,110,109,110,109,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,110,111,110,111,110,111,111,109,110,110,111,109,109,109,109,110,110,110,110,110,110,111,111,111,111,110,110,110,110,110,110,110,104,106,106,107,107,108,108,104,104,104,104,107,107,107,108,106,106,106,107,107,107,106,106,106,107,107,107,106,108,107,107,107,106,106,107,107,107,106,104,104,104,104,104,106,107,104,106,107,106,106,106,218,217,217,217,217,217,217,221,217,221,221,221,217,217,217,221,222,221,217,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,221,221,221,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221,221,221,222,221,221,221,221,221 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,107,107,107,252,107,252,109,252,109,252,252,109,109,107,107,109,107,109,107,109,107,109,107,109,107,109,107,109,107,109,107,107,107,109,107,109,107,109,109,109,107,109,107,107,107,107,107,107,107,111,110,111,110,111,111,111,110,111,111,111,109,110,109,110,109,110,110,110,110,111,110,111,110,111,110,111,110,111,110,111,110,111,111,104,108,108,108,108,107,108,107,108,108,108,108,108,107,108,107,107,107,107,107,107,108,107,108,107,108,108,108,107,108,109,108,110,109,110,105,105,105,105,111,110,109,110,109,110,109,110,110,110,110,111,110,111,110,111,110,109,111,111,111,111,110,111,110,111,110,111,111,110,109,110,109,110,110,110,110,111,110,111,110,111,110,111,111,111,110,111,111,111,110,110,110,110,110,110,110,109,109,110,109,110,110,111,110,111,109,110,110,110,110,111,110,111,110,111,110,111,111,111,110,111,111,111,109,110,109,110,109,110,109,110,109,110,109,110,109,110,110,110,110,110,110,110,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,109,109,110,109,110,109,110,110,110,110,111,110,111,110,111,111,110,110,111,110,111,110,111,104,104,104,104,106,107,107,104,104,104,107,108,107,107,108,107,106,107,107,107,106,106,106,106,107,108,106,108,107,107,106,107,106,106,106,107,106,106,104,104,104,104,106,104,106,107,107,107,106,106,106,218,217,217,217,217,217,217,217,217,217,217,222,217,222,221,221,222,221,221,221,221,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,108,252,252,252,252,252,252,252,108,252,108,252,108,252,252,252,108,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,107,107,107,252,252,252,109,252,252,252,109,107,107,107,107,109,107,109,107,109,109,107,107,109,109,109,107,109,107,109,107,107,107,107,107,109,109,109,107,109,107,109,107,107,107,107,107,107,111,111,110,111,111,111,111,111,111,111,109,110,110,110,110,110,110,110,110,110,110,110,110,111,111,111,111,111,111,111,111,111,104,104,108,108,108,108,108,108,108,108,107,108,108,108,108,108,108,108,107,107,107,107,107,107,107,107,108,107,108,107,108,107,108,109,108,109,105,105,105,105,111,109,109,110,109,110,109,110,110,110,110,110,110,110,110,111,111,111,109,111,110,111,110,111,111,111,111,111,111,111,109,110,110,110,110,110,110,110,110,111,111,111,111,111,111,111,111,111,111,111,111,111,111,110,110,110,110,109,109,110,110,110,110,111,110,111,109,110,110,110,110,110,110,110,110,111,111,111,111,111,111,111,111,111,109,109,109,110,109,110,109,110,110,110,109,110,110,110,110,110,110,110,110,110,110,110,110,111,110,110,110,111,111,111,110,111,111,111,111,111,109,109,109,110,110,110,110,110,110,110,110,111,111,111,111,110,110,110,110,111,110,110,110,111,111,111,110,104,106,108,104,104,108,107,107,107,107,108,106,106,106,107,106,106,106,106,106,106,107,106,108,107,107,107,106,106,107,106,107,107,106,104,106,107,108,104,106,106,106,107,107,106,106,106,106,218,217,221,221,217,217,217,221,217,217,217,221,217,222,217,221,222,221,222,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221,222,221,221,221 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,252,108,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,109,252,109,108,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,107,107,252,107,252,107,252,252,252,252,109,107,109,107,109,107,109,107,109,107,109,107,107,107,109,107,109,107,109,107,109,107,109,107,109,109,109,107,109,107,109,107,107,107,109,107,107,107,107,110,111,111,111,111,111,109,110,109,110,109,110,109,110,110,111,110,110,110,111,110,111,110,111,110,111,111,111,111,111,104,108,107,108,108,108,107,108,107,108,107,108,107,108,107,108,108,108,107,107,107,108,107,107,107,108,107,107,107,107,107,107,108,108,109,105,105,105,105,105,111,110,109,110,109,110,109,110,110,110,110,111,110,111,110,111,111,111,109,111,110,111,110,111,110,111,110,111,111,111,111,110,109,110,109,110,110,111,110,111,110,111,110,111,111,111,110,111,111,111,111,111,111,111,111,110,110,109,109,110,110,111,109,110,110,111,110,111,110,110,110,110,110,111,110,111,111,111,111,111,110,111,110,111,109,110,109,110,109,110,109,110,109,110,109,110,110,110,109,110,110,111,110,109,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,111,109,109,110,109,110,109,110,110,111,110,111,111,111,110,110,110,111,110,111,110,111,110,111,110,111,110,111,104,106,107,108,104,104,107,108,107,108,107,108,107,107,106,107,106,107,106,106,106,108,106,108,107,107,106,107,106,106,107,107,107,104,106,107,108,104,107,106,106,107,106,107,106,107,106,106,106,217,221,217,217,217,217,217,221,222,221,222,221,217,221,221,221,221,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,108,252,109,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,107,107,107,107,252,252,252,252,252,109,109,107,107,107,107,107,109,107,109,109,107,107,109,107,109,109,109,107,109,107,107,109,109,109,109,107,109,107,109,107,109,107,107,107,107,107,107,107,111,111,111,111,109,109,110,109,110,110,110,110,110,110,110,110,110,110,110,110,111,110,111,111,111,111,111,111,111,104,108,108,108,108,108,108,108,108,108,108,108,108,108,107,108,108,108,107,107,107,107,108,108,107,107,107,107,107,107,107,107,107,107,105,105,105,105,105,105,111,109,109,109,109,110,109,110,110,110,110,110,110,111,109,110,110,111,111,111,110,111,110,111,111,111,111,111,111,111,111,111,109,110,110,110,110,110,110,111,111,111,110,111,110,111,110,111,111,111,111,111,111,111,111,111,110,110,110,109,109,109,109,110,110,110,110,111,111,110,110,110,110,111,111,111,111,111,110,111,111,111,111,111,109,109,109,109,109,110,109,110,109,110,110,110,110,110,110,110,109,110,110,111,111,110,110,110,110,110,110,111,110,111,111,111,111,111,111,111,111,111,111,109,109,110,110,110,110,110,110,111,111,110,110,110,110,110,110,110,110,110,110,111,110,111,110,111,104,106,106,107,108,104,104,108,107,107,107,107,107,107,107,107,106,106,106,106,106,106,106,108,107,107,107,107,107,107,106,107,107,104,106,106,107,104,108,107,106,106,106,107,107,107,106,106,106,106,106,217,221,217,221,217,221,217,221,217,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,108,252,109,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,107,252,107,107,109,252,109,252,252,109,109,107,107,109,107,109,107,109,107,109,107,107,107,109,107,109,107,109,107,109,107,107,107,109,107,109,107,109,107,109,107,107,107,107,107,109,107,107,107,111,111,109,109,110,109,110,109,110,109,110,110,110,110,110,110,111,110,111,110,111,110,111,110,111,111,111,104,108,108,108,108,108,108,108,108,108,107,108,107,108,107,108,107,108,108,108,107,108,107,108,108,108,107,108,107,108,107,107,107,105,105,105,105,111,105,105,111,110,109,110,109,109,109,110,109,110,109,110,109,110,110,111,110,111,110,111,110,111,110,111,110,111,110,111,111,111,111,111,111,110,110,111,110,111,111,110,110,110,110,111,110,111,110,111,110,111,111,111,110,111,110,111,111,111,110,111,109,110,109,110,109,110,110,111,110,111,111,111,110,111,111,111,110,111,110,111,110,109,111,111,109,110,109,111,109,110,109,110,109,110,109,110,109,110,109,110,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,111,111,111,110,109,109,109,110,110,111,111,110,110,110,110,110,110,111,110,111,110,111,110,111,110,111,110,111,104,104,106,107,107,108,108,104,107,108,107,108,107,107,108,107,106,107,106,107,106,107,106,106,106,108,106,108,107,107,106,107,106,106,107,104,106,104,108,108,107,107,106,107,106,107,106,107,106,107,106,106,221,217,221,217,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,109,252,252,252,109,252,252,252,252,252,252,252,252,252,252,108,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,108,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,107,107,107,107,252,109,252,252,252,109,109,109,107,107,107,107,107,107,109,109,109,109,107,107,109,109,109,107,109,107,109,107,107,107,109,107,109,107,109,107,109,107,107,107,107,107,107,107,107,107,109,109,109,109,110,109,110,109,110,110,110,110,110,110,110,110,111,111,111,110,111,111,111,111,104,104,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,107,108,108,108,107,108,107,107,108,108,108,108,107,108,107,105,105,111,105,111,105,105,111,110,109,110,110,110,110,110,110,109,109,110,110,110,110,111,111,111,110,111,110,111,110,111,111,111,111,111,111,111,111,111,111,111,110,111,109,109,109,110,110,110,110,110,110,109,109,111,111,111,111,111,111,111,111,111,111,111,110,111,109,109,109,110,110,110,110,110,110,111,111,111,110,110,110,111,110,111,110,111,111,111,111,111,109,109,110,111,109,109,109,109,109,109,109,110,110,110,110,110,110,111,110,111,111,111,110,110,110,110,110,111,111,111,110,111,111,111,111,111,111,111,111,111,110,110,110,111,111,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,110,111,110,111,111,104,106,107,107,108,108,104,104,106,107,108,107,107,107,107,107,107,106,107,106,106,106,106,106,106,107,106,107,108,107,107,106,107,107,108,104,104,107,108,108,107,107,107,106,107,107,107,106,106,106,106,106,106,221,217,217,222,221,222,217,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,109,252,252,109,109,252,252,252,252,252,252,252,252,108,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,109,107,252,109,252,109,252,109,109,109,109,107,107,107,109,107,109,107,109,107,109,109,107,107,109,107,109,107,109,107,107,107,109,107,109,107,109,107,109,107,107,107,109,107,107,107,109,107,107,109,110,109,110,109,110,109,110,109,110,109,110,110,111,110,111,110,111,110,111,111,111,111,104,108,108,108,108,108,108,108,108,108,108,108,108,108,108,107,108,108,108,107,108,107,108,107,108,107,108,107,108,108,108,107,108,105,105,105,111,105,111,105,105,111,110,109,110,109,110,109,110,110,109,109,110,109,110,110,111,111,111,110,111,110,111,110,111,110,111,110,111,111,111,111,111,110,111,110,110,109,110,109,109,109,110,109,110,110,109,109,110,110,111,110,111,111,111,110,111,109,110,109,110,109,110,109,110,109,110,110,111,110,111,110,111,110,111,110,111,110,111,110,111,111,111,110,111,109,110,110,111,111,110,109,110,109,110,109,110,110,111,110,111,110,111,110,111,111,111,111,111,110,111,110,111,110,111,110,111,110,111,110,111,111,111,111,111,109,110,110,111,110,111,111,110,110,110,110,110,110,111,110,111,110,111,110,111,110,111,110,111,110,111,104,106,106,107,107,108,108,104,106,106,107,108,107,107,107,107,106,107,106,107,106,107,106,106,106,106,107,108,106,107,107,106,107,108,104,107,107,108,107,108,107,107,106,107,106,107,106,107,106,107,106,107,106,106,221,217,221,217,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,109,109,252,252,109,109,252,252,252,252,252,252,108,252,252,252,252,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,107,107,107,107,252,252,252,252,252,252,109,109,109,107,107,107,107,107,109,107,109,109,109,107,109,109,109,107,109,107,107,109,109,107,109,107,109,107,109,107,109,107,107,107,107,107,107,107,107,107,107,109,109,109,109,109,110,109,110,111,110,110,109,111,110,110,111,111,111,111,111,111,107,107,108,108,108,108,108,108,108,108,108,108,108,108,107,107,108,108,108,108,108,108,108,107,108,107,108,107,108,107,107,108,105,105,105,111,111,105,111,105,111,111,110,109,110,110,110,110,110,110,109,109,110,110,110,110,111,111,110,110,111,110,111,110,111,111,111,111,111,111,111,111,111,111,111,111,111,109,109,109,110,109,110,110,110,109,109,109,110,110,110,110,111,111,111,109,109,109,109,109,110,109,109,109,110,110,110,110,110,110,111,111,111,110,111,110,111,111,111,111,111,111,109,109,109,109,110,110,111,110,110,110,110,110,110,110,110,110,110,110,111,109,110,111,111,111,111,111,111,110,110,110,111,110,111,110,111,111,111,111,111,111,111,111,111,109,110,110,110,110,111,111,111,111,110,110,110,110,110,110,110,110,110,110,111,110,111,110,111,111,111,104,106,106,107,107,108,108,104,104,106,106,108,107,108,107,107,107,107,107,107,106,107,106,106,106,106,106,106,107,107,107,107,106,107,108,104,108,108,108,108,107,107,107,107,106,106,107,107,107,107,106,106,106,106,106,106,221,217,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,109,252,109,252,252,109,109,252,109,252,109,252,252,252,252,108,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,252,107,252,109,252,109,252,109,252,109,109,109,107,107,107,107,109,107,109,107,109,107,109,107,109,109,109,107,107,107,109,107,109,107,109,107,109,107,109,107,107,107,107,107,109,107,107,107,107,107,107,109,110,109,110,110,111,110,109,111,110,110,111,110,111,110,111,110,109,109,110,107,107,107,107,108,108,108,108,108,108,108,108,107,108,107,107,107,108,108,108,107,108,107,108,107,108,107,108,107,108,107,105,105,111,111,111,111,111,105,111,111,110,109,110,109,110,109,110,110,110,109,110,109,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,111,111,111,111,110,111,110,109,109,110,109,110,109,110,109,110,109,109,109,110,109,110,110,111,110,111,111,109,109,110,109,110,109,110,110,111,111,110,110,110,110,111,110,111,110,111,110,111,110,111,110,111,111,110,109,110,109,111,110,111,109,110,110,110,110,111,110,111,110,111,110,109,109,110,110,111,110,111,111,111,111,111,110,111,110,111,110,111,110,111,110,111,110,111,111,111,111,110,109,110,110,111,110,111,110,111,111,110,110,110,110,111,110,111,110,111,110,111,110,111,110,111,104,106,106,107,107,108,108,104,104,104,106,106,106,108,107,108,107,107,107,107,106,107,106,107,106,107,106,106,106,108,107,108,107,107,104,107,108,108,107,108,107,108,107,108,107,107,107,107,106,107,106,107,106,107,106,107,106,106,221,217,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,109,252,109,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,109,252,252,252,252,252,109,109,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,252,252,252,252,252,252,108,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,109,107,107,109,109,252,252,252,252,109,109,109,107,107,107,107,107,109,107,109,107,109,109,109,109,109,109,109,107,109,109,109,107,109,107,109,107,109,107,109,107,107,107,107,107,107,107,107,107,107,107,110,109,110,110,110,109,111,111,111,111,111,110,110,110,111,111,109,109,110,110,107,106,107,107,107,107,108,108,108,108,108,108,108,108,108,107,107,107,108,108,108,108,108,105,105,105,105,105,105,105,105,105,111,111,111,111,111,105,111,111,110,109,110,110,110,110,110,110,110,110,109,110,111,110,111,110,110,110,111,111,111,110,111,111,111,111,111,111,111,110,111,111,111,110,109,109,109,109,110,109,110,109,110,110,109,109,110,110,110,110,110,110,111,111,111,109,109,109,110,110,110,109,110,110,110,110,110,110,110,110,111,110,111,110,111,111,111,111,111,110,109,109,110,110,110,110,111,111,110,110,110,110,110,110,111,110,110,110,109,109,110,110,110,110,111,111,111,111,111,110,111,110,111,110,111,111,111,111,111,111,111,111,111,111,109,109,110,110,110,110,111,110,111,111,111,111,110,110,110,110,110,110,111,110,110,110,111,111,111,110,104,106,108,109,108,104,110,108,104,104,104,106,106,106,108,107,108,107,107,107,107,107,107,106,107,106,106,107,106,106,108,107,107,107,107,108,108,108,108,108,108,108,108,107,108,107,106,108,107,107,107,106,106,106,106,106,106,106,107,221,222,217,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,109,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,107,107,252,109,252,109,252,109,252,109,109,109,109,107,109,107,109,107,109,107,109,107,109,107,109,109,109,107,109,107,109,107,109,107,109,107,109,107,109,107,107,107,109,107,107,107,109,107,107,107,107,107,110,110,111,110,111,110,111,110,111,111,111,110,111,110,109,109,110,109,110,107,107,106,107,106,107,107,107,108,108,108,108,108,108,108,108,107,107,105,105,105,105,105,111,111,105,105,105,105,105,111,111,110,111,111,111,105,111,111,110,109,110,110,110,109,110,110,111,110,109,110,111,110,111,110,111,110,111,110,111,110,111,111,111,110,111,111,111,110,111,110,111,110,111,109,109,109,110,109,110,109,110,109,109,109,110,109,110,109,110,110,111,110,111,111,110,109,110,109,110,109,110,110,110,110,110,110,111,110,111,110,111,110,111,111,111,110,111,109,109,109,110,110,111,110,111,111,111,110,110,110,111,110,111,110,111,110,109,109,110,109,110,110,111,110,111,110,111,111,111,110,111,110,111,110,111,110,111,111,111,110,111,111,109,109,110,109,110,109,110,110,111,110,111,111,111,110,110,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,106,110,108,104,104,111,104,107,106,106,107,108,107,108,107,107,107,107,106,107,106,106,106,107,107,106,106,108,107,108,108,108,108,108,108,108,108,108,107,108,107,108,106,107,108,107,106,106,106,107,106,107,106,107,106,107,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,107,107,109,109,109,252,109,252,252,109,109,109,109,107,107,107,107,107,107,109,107,109,109,109,109,109,109,107,107,109,109,109,107,109,107,109,107,107,107,109,107,107,107,107,107,107,107,107,107,107,107,107,110,110,110,110,110,111,111,111,111,111,110,110,110,109,109,109,109,110,107,107,106,107,106,107,106,107,107,107,107,108,108,105,105,105,105,105,105,105,111,105,111,105,105,105,105,105,105,111,111,105,111,111,111,111,105,111,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,110,111,110,111,111,111,111,111,111,111,111,111,110,111,110,111,111,111,111,111,109,109,109,109,109,109,109,110,109,110,109,109,109,110,110,110,110,111,110,111,111,109,109,110,109,111,110,110,110,110,110,110,110,110,110,111,110,111,111,111,111,111,111,110,109,109,109,110,110,111,111,111,110,110,110,110,110,110,110,111,110,111,110,109,109,109,109,110,110,110,110,110,110,111,110,111,111,111,110,111,111,111,111,109,111,111,111,111,109,109,109,110,110,110,110,111,111,111,111,111,110,110,110,110,110,110,110,110,110,110,110,111,110,111,110,111,111,111,111,111,111,106,107,108,104,104,104,107,106,106,106,106,107,108,107,107,107,107,107,107,107,107,106,107,107,107,106,106,106,108,108,108,108,108,108,108,108,108,108,108,108,108,107,106,107,108,107,106,106,107,107,107,106,106,106,107,107,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,109,252,109,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,252,109,252,109,252,109,252,109,109,109,109,107,107,107,109,107,109,107,109,107,109,109,109,109,107,107,107,109,109,107,109,107,109,107,109,107,109,107,107,107,107,107,109,107,109,107,109,107,107,107,107,110,111,110,111,110,111,109,110,110,110,110,109,109,110,109,110,109,107,106,107,106,107,106,107,106,105,105,105,105,105,111,105,105,111,105,105,111,105,111,111,111,105,105,105,105,105,105,105,111,111,111,111,105,111,109,110,109,110,110,110,110,110,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,111,111,111,111,110,111,110,111,110,111,110,111,109,109,109,109,109,110,109,110,109,110,109,110,109,110,109,110,110,111,110,111,111,110,109,109,109,110,110,111,110,110,110,110,110,111,110,111,110,111,110,111,111,111,111,109,109,110,109,110,110,111,110,111,111,111,110,111,110,111,110,111,110,111,110,111,109,110,109,110,109,110,109,110,110,111,110,111,110,111,111,111,110,111,110,109,110,111,111,109,109,110,109,110,110,111,110,111,110,111,111,110,110,110,110,110,110,111,110,111,110,111,110,111,110,111,110,109,110,111,110,111,110,111,110,106,106,110,104,107,106,107,106,107,106,106,107,108,107,108,107,107,106,107,106,106,106,107,107,106,106,106,108,108,108,108,108,108,108,108,108,108,107,108,107,108,107,106,107,107,106,106,106,107,106,107,106,107,106,107,106,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222,221,222 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,108,252,108,252,108,108,109,252,109,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,252,109,109,109,109,109,252,109,109,109,109,107,107,107,109,107,109,107,109,109,109,109,107,107,109,107,109,107,109,107,109,107,109,107,107,107,109,107,107,107,107,107,107,107,107,107,107,107,107,107,111,111,111,109,110,110,110,110,110,110,110,109,109,109,110,109,110,107,107,105,105,105,105,105,105,105,105,105,105,105,111,111,111,111,111,111,111,111,111,105,105,105,111,111,111,111,111,111,111,111,105,111,111,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,111,111,110,111,111,111,111,111,111,111,110,111,110,110,110,111,111,111,110,111,109,109,109,109,109,109,109,110,109,109,109,109,109,110,109,110,110,110,110,111,111,109,109,109,109,110,110,111,111,110,110,110,110,110,110,111,111,111,111,111,111,111,109,109,109,110,110,111,110,110,110,111,111,111,110,110,110,110,110,111,110,111,110,111,111,109,109,110,109,110,110,110,110,110,110,111,111,111,111,111,111,111,110,111,109,110,111,109,109,109,109,110,110,110,110,111,111,111,111,110,110,110,110,110,110,110,110,111,110,110,110,111,110,111,110,109,111,111,111,111,111,111,106,107,108,104,110,107,107,107,106,107,106,106,106,108,107,107,107,107,107,107,107,107,106,106,106,107,107,106,106,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,107,107,107,106,106,107,107,107,106,106,106,106,106,107,107,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,108,109,108,252,108,252,108,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,252,109,109,252,109,252,109,109,109,109,109,107,107,107,107,109,107,109,107,109,107,109,107,109,107,109,109,109,107,109,107,109,107,109,107,109,107,109,107,109,107,107,107,109,107,107,107,107,107,107,109,110,109,110,109,110,109,110,110,111,110,109,109,110,109,110,105,105,105,111,111,111,105,111,105,111,111,105,111,109,111,111,111,111,111,111,111,105,105,105,105,111,105,111,111,111,111,105,111,111,111,110,109,110,109,110,110,110,109,110,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,111,111,110,111,110,111,110,111,110,111,110,111,110,109,109,109,109,109,109,109,109,110,109,109,109,109,109,110,110,111,110,111,109,110,109,109,109,110,110,111,111,111,110,111,110,111,110,111,110,111,110,111,111,109,109,110,109,110,109,110,110,111,111,111,111,111,110,110,110,111,110,111,110,111,110,111,110,111,109,109,109,110,109,110,110,110,110,111,110,111,110,111,111,111,110,111,110,111,110,111,109,110,109,110,110,111,110,111,110,111,111,110,110,111,110,110,110,111,110,111,109,110,109,110,110,111,110,111,110,111,110,111,110,111,106,107,108,104,110,107,107,107,106,106,107,107,106,106,106,108,107,108,107,108,106,107,107,106,106,107,107,107,106,106,106,108,108,108,108,108,108,108,108,108,108,108,108,108,107,108,107,108,107,106,106,107,107,107,106,106,106,107,106,107,107,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222,222,222,221,222 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,108,108,108,108,108,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,252,252,109,109,109,109,252,252,109,109,109,107,107,107,107,107,109,109,109,109,109,107,107,107,109,109,109,109,109,107,109,107,109,107,107,109,109,107,107,107,107,107,107,107,107,107,107,107,107,107,109,109,109,109,109,109,110,109,110,109,110,110,109,109,110,110,110,111,111,110,111,105,105,111,111,105,111,111,111,111,111,111,111,111,111,105,105,111,105,111,111,111,111,111,111,105,111,111,105,111,110,109,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,110,111,111,111,110,110,110,111,111,111,110,111,110,111,110,111,110,111,111,111,111,111,109,109,109,109,109,109,109,109,109,109,109,109,109,109,110,110,111,109,109,109,109,110,109,110,110,111,111,110,110,110,110,110,110,109,110,111,111,111,109,109,109,110,109,109,109,110,110,110,110,111,111,111,110,110,110,110,110,110,110,111,110,111,110,111,110,109,109,109,109,110,110,110,110,110,110,111,111,111,110,111,110,111,111,111,111,111,111,109,109,110,110,110,110,111,111,111,111,111,110,110,110,110,110,110,110,109,109,110,110,110,110,110,110,111,111,111,111,111,111,111,111,106,107,108,104,110,107,107,107,106,106,107,107,107,106,106,106,108,107,107,107,106,106,107,106,106,106,107,107,106,106,106,106,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,107,107,106,106,106,107,107,107,106,106,106,107,107,107,106,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,108,252,108,252,108,252,108,252,108,252,108,252,108,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,107,252,252,252,252,109,109,252,109,252,109,109,109,107,107,109,107,109,107,109,107,109,107,107,107,109,107,109,107,109,107,109,107,109,107,109,107,109,107,109,107,107,107,107,107,107,107,109,107,109,107,107,109,109,109,110,109,110,109,110,109,111,109,110,109,110,109,110,110,111,110,111,111,111,111,111,111,111,110,111,110,111,111,111,111,105,105,105,105,105,105,111,105,111,111,111,105,111,111,111,109,110,109,110,109,110,109,110,110,110,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,111,111,110,111,110,111,110,111,110,111,109,109,109,109,109,109,109,109,109,109,109,110,109,110,109,110,109,109,109,110,109,110,109,110,109,111,110,110,110,111,109,110,109,110,110,111,110,111,109,110,109,110,109,110,109,110,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,109,109,110,109,110,110,111,110,111,111,111,110,111,110,111,110,111,110,111,111,111,109,110,109,110,110,111,110,111,111,111,111,110,110,110,110,111,110,109,109,110,109,110,110,111,110,111,111,111,110,111,110,111,110,106,107,108,104,110,107,108,107,107,106,107,106,107,107,107,106,106,107,108,107,108,107,107,106,107,106,107,106,107,106,106,107,106,108,108,108,108,108,108,108,108,108,108,108,108,107,108,107,108,107,106,107,106,106,107,106,106,106,107,107,107,107,106,106,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,108,108,108,108,108,252,108,108,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,252,252,109,109,109,252,252,252,252,109,107,107,107,109,109,109,109,109,107,109,107,107,107,107,107,109,109,109,107,109,107,109,107,107,109,109,107,109,107,107,107,107,107,107,107,107,107,107,107,107,109,109,109,110,110,110,110,111,110,110,109,110,110,110,110,110,110,110,110,111,111,111,110,111,111,111,111,111,111,111,111,105,111,111,111,105,111,111,111,111,111,105,105,111,111,109,109,110,109,110,109,110,110,110,110,110,110,110,110,110,110,110,110,111,111,111,111,111,110,110,110,111,110,111,111,111,111,110,110,111,111,111,110,111,111,111,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,110,109,109,109,110,109,110,109,110,110,109,109,110,110,110,110,110,110,111,110,111,111,109,109,110,109,109,109,110,110,110,110,111,111,111,111,110,110,110,110,111,110,110,110,111,110,111,110,111,111,111,110,111,111,111,111,111,111,111,111,111,110,111,110,111,111,111,111,111,111,111,111,111,109,109,110,110,111,111,110,111,111,111,110,110,110,110,110,109,109,109,109,110,110,110,110,111,111,111,110,111,111,111,111,111,106,107,108,109,110,108,107,107,107,106,106,107,107,107,106,106,106,106,107,108,107,107,107,107,107,107,106,107,107,106,106,107,107,106,108,108,108,104,104,104,104,108,108,108,108,108,108,108,108,108,107,106,106,106,106,107,107,106,106,107,107,106,106,106,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,108,108,252,108,252,108,252,108,252,108,252,108,252,108,252,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,107,252,252,252,109,109,109,252,109,252,252,107,107,109,107,109,107,109,109,109,107,107,107,109,107,109,109,109,109,109,107,109,107,109,107,107,107,109,107,109,107,107,107,109,107,107,107,109,107,107,107,110,109,110,110,111,111,110,109,110,109,110,110,110,109,110,110,111,110,111,110,111,110,111,110,111,110,111,111,111,105,105,111,111,105,105,111,111,105,111,105,105,111,111,111,110,109,110,109,110,109,110,109,110,109,110,110,111,110,111,110,111,110,111,111,111,111,111,110,110,110,111,110,111,111,111,110,111,110,111,110,111,110,111,111,111,109,109,109,110,109,109,109,109,109,109,109,110,109,109,109,110,109,110,109,109,109,110,109,110,109,110,110,109,109,110,109,110,109,110,110,111,110,111,110,111,111,110,109,110,109,110,110,111,110,111,111,111,110,110,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,111,111,111,111,111,111,110,111,110,111,110,111,111,111,111,111,109,110,109,110,110,111,110,111,110,111,110,110,110,111,110,109,109,110,109,110,110,109,110,111,110,111,110,111,110,111,110,111,111,109,109,109,108,108,107,108,107,108,107,107,106,106,106,107,107,107,106,108,107,108,107,107,107,107,106,107,106,106,106,107,106,104,104,104,104,104,104,104,104,104,104,104,108,108,108,108,108,108,107,108,107,108,106,107,106,107,106,107,106,107,107,107,106,106,222,222,222,222,222,222,222,223,222,222,222,222,222,222,222,223,222,222,222,222,222,222,222,223,222,222,222,222,222,222,222,223,222,222,222,222,222,222,222,223,222,222,222,222,222,222,222,223,222,222,222,222,222,222,222,223,222,222,222,222,222,222,222,223,222,222,222,222,222,222,222,223,222,222,222,222,222,222,222,223,222,222,222,222,222,222,222,223,222,222,222,222,222,222,222,223,222,222,222,222,222,222,222,223,222,222,222,222,222,222,222,223,222,222,222,222,222,222,222,223,222,222,222,222,222,222,222,223,222,222,222,222,222,222,222,223,222,222,222,222,222,222,222,223,222,222,222,222,222,222,222,223,222,222,222,222,222,222,222,223,222,222,222,222,222,222,222,223,222,222 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,108,108,108,108,108,108,108,108,108,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,252,252,252,252,252,107,107,107,107,109,109,109,107,107,107,107,107,109,109,109,109,109,107,109,107,109,107,109,107,109,107,109,107,107,107,107,107,107,107,107,107,107,107,107,110,110,111,111,109,110,109,110,109,110,110,110,110,110,110,110,110,111,110,111,110,111,111,111,111,111,111,105,105,111,105,105,105,105,111,111,111,111,111,111,111,111,109,109,109,109,109,110,109,110,110,110,110,110,110,110,110,111,110,111,111,111,111,111,110,110,110,110,110,110,110,110,110,110,110,111,110,111,110,111,111,111,111,111,111,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,110,110,109,109,109,109,110,110,110,110,110,110,111,110,111,111,111,111,110,110,110,110,111,110,111,111,111,110,110,110,110,110,110,110,110,110,111,110,111,110,111,110,111,110,111,111,111,111,111,111,111,111,111,111,111,110,111,111,111,111,111,111,111,111,111,110,110,109,109,109,110,110,110,110,111,111,110,110,110,110,110,109,110,110,110,111,109,110,111,111,111,111,111,111,111,111,111,111,109,109,109,109,108,108,108,107,107,107,107,107,106,106,107,107,107,106,106,106,107,107,107,107,107,106,106,106,106,104,104,104,104,104,109,109,109,109,109,109,109,109,109,104,104,104,104,108,108,108,108,107,108,107,107,107,107,107,107,107,106,106,107,106,106,106,106,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,108,108,108,252,108,252,108,252,108,252,108,252,108,252,108,109,108,252,108,252,107,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,107,109,107,109,107,109,107,107,107,109,107,109,107,109,107,109,109,107,109,107,107,109,109,107,109,109,107,109,107,107,107,107,107,109,107,109,107,109,107,109,109,110,109,110,109,110,109,110,109,110,110,110,110,111,110,111,110,111,110,111,110,111,111,111,105,105,105,105,105,111,110,111,111,111,111,111,111,110,111,111,111,109,109,110,109,110,109,110,109,110,110,110,110,111,110,111,110,111,110,111,111,110,109,110,110,110,110,110,110,111,110,111,110,111,110,111,110,109,110,111,110,111,109,109,109,109,109,109,109,110,109,109,109,109,109,109,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,109,109,110,109,110,109,110,110,111,110,111,110,111,111,111,110,111,110,111,110,111,111,110,109,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,111,111,111,111,111,109,110,111,110,111,111,111,111,111,111,110,110,109,109,110,109,110,110,111,111,111,110,111,110,111,110,111,110,111,110,109,111,111,110,111,110,111,110,111,110,111,110,109,109,110,109,108,107,108,107,108,107,108,107,107,106,107,106,107,106,107,106,106,106,107,106,106,104,104,104,104,104,109,109,110,109,110,109,110,110,111,110,111,109,110,109,110,109,110,110,109,109,109,107,108,107,108,107,108,107,107,107,107,106,107,106,107,106,107,106,106,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,108,108,108,252,252,108,108,108,108,108,108,252,108,252,108,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,109,109,109,109,107,107,107,109,107,109,107,109,109,109,109,107,107,107,107,109,107,107,107,109,107,109,107,107,107,107,107,107,107,107,107,107,109,109,109,110,109,110,109,110,110,110,110,110,110,110,110,111,110,111,110,111,111,111,111,105,105,111,105,105,111,111,111,111,111,111,111,111,111,110,110,111,110,110,110,109,109,109,109,110,110,110,110,110,110,110,110,111,111,111,111,110,110,110,110,110,110,110,110,110,110,110,110,111,110,110,110,109,109,110,110,110,110,111,111,109,111,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,110,109,109,109,110,109,110,109,109,109,109,109,110,110,110,110,110,110,110,110,111,111,111,111,111,110,111,111,111,111,110,109,111,110,110,110,110,110,110,110,111,110,110,110,111,111,111,110,111,111,111,111,111,111,111,111,111,111,111,111,109,109,110,110,111,111,111,111,111,111,110,110,110,110,109,109,110,111,111,110,110,110,110,110,111,110,110,110,111,110,109,111,111,111,111,110,111,111,111,111,111,109,109,109,110,109,108,108,108,108,108,107,108,107,107,107,106,106,106,106,107,107,106,104,104,104,104,104,104,109,109,109,110,110,110,110,110,110,110,110,111,110,111,109,109,109,110,110,110,110,110,110,111,111,104,104,106,108,108,107,107,107,107,107,107,107,106,106,107,106,106,106,106,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,108,108,108,108,108,252,108,252,108,252,108,252,108,252,108,252,108,252,107,252,107,252,252,252,107,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,109,109,109,107,107,107,107,107,109,107,109,107,109,107,109,107,107,107,109,107,109,107,109,107,109,107,109,107,107,107,107,107,109,107,109,107,109,109,109,109,110,109,110,109,110,109,110,110,111,110,111,110,111,110,111,111,111,105,105,105,105,105,111,111,111,110,111,111,111,110,111,111,110,110,111,110,111,111,110,110,109,109,110,109,110,109,110,110,111,110,111,111,110,109,110,109,110,109,110,110,110,110,110,110,111,110,111,110,111,109,110,109,110,110,111,110,111,111,111,110,109,109,109,109,110,109,109,109,109,109,109,109,110,109,109,109,110,109,110,109,110,109,109,109,110,109,109,109,110,109,110,109,110,109,110,110,111,110,111,110,111,110,111,111,111,110,111,111,109,109,111,111,111,110,110,110,111,110,111,110,109,110,111,110,111,110,111,110,111,110,111,111,111,110,111,111,111,111,109,109,110,110,111,111,111,110,111,111,110,109,110,110,110,110,110,110,111,110,111,110,111,110,111,110,111,110,111,110,109,109,111,110,111,110,111,110,111,110,111,109,110,108,108,108,108,108,108,108,108,107,108,107,108,107,106,106,107,110,110,110,110,110,109,109,110,109,110,109,110,109,110,110,110,110,110,110,111,110,111,110,111,109,109,109,110,109,110,110,111,110,111,110,111,111,104,104,106,107,108,107,108,107,107,107,107,106,107,107,107,106,106,106,106,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,108,108,108,252,252,252,108,108,108,108,108,108,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,109,107,109,107,107,107,107,107,109,109,109,109,109,109,107,107,109,109,109,107,109,107,109,107,109,107,109,107,107,107,107,107,107,107,107,109,109,109,109,109,110,110,110,110,110,110,110,110,111,111,111,111,111,111,105,105,105,105,111,111,111,111,111,111,111,111,111,105,111,111,111,110,110,110,111,111,110,110,110,110,109,109,110,110,111,111,109,109,110,109,110,109,110,110,110,110,110,110,110,110,110,110,110,110,111,110,111,109,109,109,110,110,110,110,111,111,111,111,111,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,110,109,110,110,110,110,110,109,110,111,111,110,111,111,111,111,111,109,110,110,110,111,111,110,110,110,110,110,110,109,110,110,111,111,111,110,111,111,111,111,111,111,111,111,111,111,111,111,109,110,110,111,111,111,111,111,111,111,111,111,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,109,111,110,111,110,111,110,111,111,111,111,109,109,109,108,108,108,108,108,108,108,108,108,108,108,108,110,110,110,110,110,109,109,109,109,109,109,110,109,110,110,110,110,110,110,110,110,110,110,110,110,110,110,109,109,109,109,110,109,110,110,110,110,111,110,111,111,111,111,104,106,106,107,108,107,107,107,107,107,107,106,107,106,107,106,106,106,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,252,252,252,252,252,252,252,108,108,108,252,108,252,108,252,108,252,107,252,107,252,107,252,107,252,252,252,107,252,252,252,252,252,252,252,252,252,252,252,252,107,107,109,107,107,107,109,107,109,107,109,107,109,109,109,107,109,107,109,107,109,107,109,107,109,107,109,107,107,107,107,107,109,107,109,107,109,109,110,109,110,109,110,109,110,110,111,110,111,110,111,110,111,105,105,105,111,105,111,110,111,110,111,111,111,111,111,111,111,111,111,109,110,110,111,111,110,109,110,109,110,109,109,109,109,109,110,109,110,109,110,109,110,109,110,109,110,110,110,110,111,110,111,110,111,110,111,110,111,109,110,109,110,110,111,111,111,109,110,110,111,109,109,109,109,109,110,109,110,109,110,109,109,109,110,109,110,109,110,109,109,109,109,109,110,109,110,109,110,109,110,109,110,110,111,110,111,111,111,110,111,110,111,110,109,109,110,109,111,110,111,111,110,110,111,110,111,109,110,109,111,110,111,110,111,110,111,110,111,110,111,110,111,111,111,111,111,111,111,110,111,110,111,110,111,111,111,110,111,110,110,110,110,110,110,110,111,110,111,110,111,110,109,109,110,110,111,110,111,110,111,110,111,110,111,110,109,109,108,108,108,108,108,108,108,108,108,108,111,111,110,110,109,109,109,109,110,109,110,109,110,109,110,109,110,109,110,109,110,110,110,110,110,110,111,110,111,110,109,109,110,109,110,109,110,109,110,110,111,110,111,110,111,104,111,104,107,106,106,107,108,107,108,107,107,107,107,106,107,106,107,106,107,106,223,222,223,222,223,222,104,104,104,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,108,252,108,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,108,108,108,108,107,107,107,252,107,107,107,252,107,252,107,252,252,252,107,252,252,252,252,252,252,252,252,252,107,252,107,109,107,107,107,109,107,109,107,109,109,109,109,107,107,107,109,109,107,109,107,109,107,109,107,109,107,107,107,107,107,107,107,107,107,109,109,110,109,110,110,110,110,110,110,111,111,111,111,105,105,105,111,111,111,111,111,111,111,111,111,111,105,111,105,111,111,110,109,110,110,111,111,110,110,110,109,110,110,110,109,109,109,109,109,110,109,110,109,110,110,110,110,110,110,110,110,110,110,110,110,111,111,111,111,111,111,109,109,110,110,111,111,110,109,110,110,111,111,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,110,110,110,110,111,110,111,111,111,111,110,110,111,111,111,109,109,109,110,110,110,110,111,111,110,110,110,110,110,110,109,109,110,110,111,110,111,111,111,110,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,109,111,109,111,111,110,110,110,110,110,110,110,110,110,110,111,110,109,110,111,110,110,110,111,111,111,110,111,111,111,110,109,108,108,108,108,108,108,108,108,111,111,111,111,110,111,109,109,109,109,109,109,109,109,109,110,109,110,109,110,110,110,110,110,110,110,110,110,110,110,110,110,110,109,109,109,109,109,109,110,110,110,110,110,110,110,110,111,111,111,111,104,106,106,106,106,107,107,107,107,107,107,107,107,107,107,106,106,106,106,106,223,222,104,104,104,104,104,104,104,104,104,104,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,108,108,252,107,107,107,252,107,252,107,252,107,252,107,252,107,252,107,252,107,252,107,252,107,252,252,252,107,252,107,107,107,109,107,109,107,109,109,109,109,109,107,109,107,109,109,109,107,107,107,109,107,109,107,109,107,107,107,109,107,107,107,109,107,109,109,110,109,110,110,111,110,111,110,111,111,105,105,105,105,105,105,111,105,111,111,111,110,105,105,111,111,111,111,109,109,111,111,110,109,110,109,110,109,110,109,110,109,109,109,110,109,110,109,110,109,111,109,110,109,110,110,111,110,111,110,111,110,111,110,111,110,111,109,110,109,110,110,111,111,109,109,110,109,110,110,111,111,109,109,110,109,109,109,110,109,109,109,110,109,109,109,110,109,109,109,110,109,110,109,110,109,110,110,111,110,111,110,111,110,111,110,111,110,111,111,109,109,110,109,110,110,111,110,111,110,111,110,111,110,111,110,111,109,111,110,111,110,111,110,111,110,111,110,111,110,111,111,111,109,109,109,110,109,110,110,111,110,111,111,111,110,111,111,110,110,110,110,111,110,110,110,111,110,109,109,111,110,111,110,111,110,111,110,109,110,111,110,111,110,109,108,108,108,108,108,108,108,111,110,110,110,111,110,109,109,109,109,110,109,110,109,110,109,109,111,110,109,110,109,110,109,110,110,110,109,110,110,111,110,110,110,109,109,109,111,110,109,110,109,110,109,110,110,111,110,111,110,111,110,106,108,104,106,106,106,106,107,108,107,108,107,107,107,107,106,107,106,107,106,106,106,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,108,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,107,107,107,107,107,107,107,107,107,252,107,252,107,252,107,252,107,252,252,252,252,252,252,252,252,252,107,252,107,107,107,107,107,109,109,109,109,109,107,107,107,109,109,109,109,109,107,109,107,109,107,109,107,109,107,107,107,107,107,107,107,107,109,109,109,110,110,110,110,111,111,111,105,105,105,111,111,111,111,111,111,111,111,111,111,111,111,109,110,111,111,109,111,110,109,110,109,110,110,110,109,110,110,110,110,110,109,109,109,109,109,110,109,110,110,111,110,110,110,110,110,110,110,111,110,111,111,111,109,109,109,110,110,110,110,111,111,109,109,110,110,110,110,111,111,111,109,109,109,109,109,110,110,110,109,109,109,109,109,109,109,109,109,109,109,110,110,110,110,110,110,110,110,111,111,111,111,111,110,111,110,109,109,109,109,110,110,110,110,111,110,111,111,111,110,109,111,110,110,110,110,111,110,111,110,111,110,111,110,111,111,111,111,111,111,111,109,109,109,110,110,110,110,110,110,111,111,111,111,111,111,110,110,110,110,110,110,110,110,110,109,110,110,111,110,111,110,110,110,111,109,110,111,111,111,111,110,109,109,108,108,108,108,108,108,110,110,110,110,110,110,109,109,109,109,109,109,109,109,109,109,110,110,111,111,110,110,110,110,110,110,110,110,110,110,110,110,110,110,109,110,111,111,109,109,110,110,110,110,110,110,110,110,110,110,111,110,106,107,104,104,106,106,106,106,106,107,107,107,107,107,107,107,106,107,107,106,106,106,106,106,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,107,107,252,107,252,107,252,107,252,107,252,107,252,107,252,107,252,107,252,107,252,107,252,107,252,107,252,107,107,107,109,107,109,107,109,107,109,109,107,107,109,107,109,107,109,109,109,107,109,107,109,107,109,107,107,107,107,107,109,107,109,107,252,109,110,109,110,110,111,111,105,105,105,110,111,110,111,109,111,110,111,111,111,111,109,109,110,109,110,110,111,111,110,109,110,109,110,109,110,109,110,109,110,109,110,109,109,109,110,109,110,109,109,109,110,110,111,110,111,110,111,110,111,110,109,109,110,109,110,110,111,110,111,110,111,111,109,109,110,109,110,110,111,110,111,110,109,109,110,109,110,109,110,110,110,109,109,109,109,109,109,109,110,109,110,109,110,110,110,110,111,110,111,110,111,111,109,109,110,109,110,109,110,109,110,110,111,110,111,110,111,111,111,109,110,111,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,109,110,109,110,110,110,110,111,110,111,111,111,111,111,111,110,110,110,110,110,110,110,110,109,109,110,110,111,111,111,110,111,110,109,109,110,110,109,109,111,111,109,109,110,108,108,108,108,108,108,110,110,110,111,110,109,109,109,109,110,109,110,109,109,109,110,110,111,110,111,109,110,109,110,109,110,109,110,110,110,110,109,109,110,110,111,111,110,109,110,109,110,109,110,110,110,110,111,110,111,110,106,107,109,104,107,106,107,106,106,106,106,107,108,107,108,107,106,106,107,106,107,106,106,106,106,106,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,106,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,108,252,108,252,252,252,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,252,107,107,107,107,107,107,252,107,107,107,252,107,107,107,252,252,252,107,252,252,252,252,252,252,109,107,109,107,107,107,109,107,109,107,109,109,109,109,107,107,107,107,109,109,109,107,107,107,109,107,109,107,109,107,107,107,107,107,107,107,107,252,109,109,110,110,111,105,105,105,111,111,109,109,110,110,111,111,111,105,111,109,109,109,110,109,110,110,110,110,111,111,111,111,110,110,110,109,110,110,110,110,110,110,110,109,109,109,109,109,110,109,110,110,111,111,109,109,110,109,110,110,110,110,110,110,111,110,111,110,111,111,111,110,109,109,109,109,110,110,110,110,111,111,109,109,110,109,110,110,109,109,109,109,110,110,109,109,109,109,109,109,110,110,110,110,110,110,110,110,111,109,109,109,110,109,110,109,110,110,110,110,110,110,110,110,111,111,111,111,109,109,110,110,111,110,110,110,111,110,110,110,111,110,111,110,111,111,111,109,110,110,111,111,109,109,110,110,111,111,111,110,111,111,111,111,110,110,110,110,110,110,110,110,110,110,110,109,111,110,110,110,111,110,110,110,109,109,110,109,110,110,110,110,111,111,109,109,108,108,108,108,110,110,110,110,110,110,109,111,109,109,109,109,109,109,109,109,110,110,110,110,111,110,110,109,110,110,110,110,110,110,110,109,110,110,110,110,111,111,109,109,110,109,110,109,110,110,110,110,110,110,110,110,111,106,108,104,107,107,106,106,106,106,106,106,106,107,107,107,107,107,106,106,107,107,107,106,107,107,106,106,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,106,106,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222,223,222,222,222 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,252,252,107,107,252,107,252,107,252,107,252,107,252,107,252,107,252,107,252,107,252,107,252,252,109,107,109,107,107,107,107,107,109,107,109,109,109,109,107,107,109,107,109,107,109,107,109,107,109,107,109,107,109,107,109,107,109,107,107,107,109,107,252,252,109,110,105,105,105,111,111,109,110,109,110,110,111,111,111,105,111,109,109,110,111,109,110,110,110,110,111,110,111,110,111,111,111,109,110,109,110,109,110,110,110,109,109,109,110,109,110,110,111,110,111,109,110,109,110,109,110,109,110,110,111,110,111,110,111,110,111,109,111,110,109,109,110,109,110,109,110,110,111,109,109,109,110,109,109,109,109,109,110,109,110,109,110,109,109,109,110,109,110,109,110,110,110,110,111,110,109,109,110,109,110,109,110,109,109,110,111,110,110,110,111,110,111,110,111,110,109,109,110,110,111,110,111,110,111,110,111,110,111,110,111,110,111,109,110,109,110,110,111,110,111,111,109,110,111,110,111,110,111,111,111,111,110,110,110,109,110,110,111,110,110,110,111,110,110,110,111,110,111,110,111,110,111,109,109,109,110,109,110,110,111,110,111,111,110,108,108,108,110,110,110,110,109,109,111,111,109,109,110,109,110,109,110,109,109,109,111,111,110,109,110,109,110,110,110,109,110,110,109,109,110,110,111,110,111,111,110,109,110,109,110,109,110,109,110,109,110,110,111,110,111,110,106,109,107,106,107,106,107,106,107,106,106,106,106,107,108,107,108,107,107,107,106,106,106,106,107,107,106,106,104,104,104,104,104,104,104,104,104,104,106,104,104,104,104,104,104,106,106,106,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,109,108,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,108,252,252,252,107,107,107,107,107,107,107,252,107,107,107,252,107,252,107,252,252,252,252,252,252,109,109,109,107,109,107,107,107,109,107,109,109,109,107,109,107,107,107,109,107,109,109,109,109,109,107,109,107,109,107,109,107,107,107,107,107,107,107,107,107,252,105,105,105,105,111,111,109,109,110,110,110,111,111,111,105,111,111,109,110,111,111,110,109,110,110,110,110,110,110,111,110,111,111,111,111,110,110,110,110,110,110,110,109,109,109,110,110,111,111,111,110,109,109,109,109,110,110,110,110,110,109,109,109,110,110,110,110,111,111,111,109,109,109,110,110,110,110,110,110,109,109,110,109,109,109,109,109,109,109,110,109,110,109,109,109,109,109,110,110,110,110,110,110,110,110,109,109,109,109,110,110,110,110,111,111,111,111,110,110,111,110,111,111,111,109,109,110,110,110,111,111,110,110,110,110,110,110,111,110,111,110,111,109,109,109,110,110,110,110,111,111,110,110,110,110,110,110,111,109,110,110,111,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,109,109,109,110,109,110,110,110,110,111,111,111,111,110,109,110,110,109,109,110,110,111,111,109,109,109,109,109,109,109,109,110,109,110,109,110,110,110,110,110,110,110,110,110,109,109,109,110,110,111,111,109,109,109,109,109,109,110,109,110,110,110,110,110,110,110,110,110,110,110,109,107,107,107,107,107,106,106,106,107,107,106,106,106,107,107,107,107,107,107,107,107,106,106,106,107,107,106,106,104,104,104,104,104,104,104,104,106,104,104,104,104,104,104,104,106,106,106,106,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,108,252,108,252,252,252,107,252,107,252,107,252,107,252,107,252,107,252,107,252,107,252,107,252,107,109,107,109,107,109,107,107,107,109,107,109,109,109,107,109,107,107,107,109,107,109,107,109,107,109,109,109,107,109,107,109,107,109,107,107,107,109,107,109,107,252,107,252,105,111,111,111,109,110,109,110,110,111,110,111,111,111,110,111,110,111,110,111,109,110,109,110,110,111,110,111,110,111,110,111,111,110,109,110,109,110,109,110,110,110,109,109,109,110,109,110,109,110,109,110,109,110,110,110,110,111,110,111,110,111,110,111,110,111,110,111,111,110,109,110,109,110,109,110,110,109,109,109,109,110,109,110,109,110,109,110,109,110,109,109,109,109,109,110,109,110,109,110,109,110,109,110,110,111,110,111,110,111,110,111,110,111,111,111,110,111,110,111,109,110,109,110,110,111,110,111,111,111,110,111,110,111,110,111,110,111,110,111,109,110,109,110,110,111,110,111,109,110,109,110,109,110,110,111,110,111,110,111,111,110,109,110,110,110,110,110,110,111,110,110,110,111,109,110,109,110,109,110,110,109,109,110,109,110,109,110,110,111,110,111,111,110,109,108,109,110,109,110,110,111,111,109,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,110,110,109,110,110,111,111,111,110,109,109,110,109,110,109,110,109,110,109,110,109,110,110,110,110,110,110,111,109,107,107,107,106,107,106,106,106,107,106,107,106,106,106,106,107,108,107,108,107,107,106,106,106,107,106,107,106,106,106,104,106,104,104,104,104,104,104,106,107,104,106,104,104,104,106,107,106,106,106,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,108,109,108,109,109,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,108,108,252,252,252,107,107,107,107,107,107,107,107,107,252,107,252,107,252,252,252,107,252,107,107,107,109,109,109,107,109,107,109,109,109,107,109,107,109,107,107,107,107,107,107,107,109,109,109,109,109,109,109,107,109,107,109,107,107,107,107,107,107,107,107,107,252,252,111,111,111,111,109,109,110,110,110,110,111,111,105,111,110,110,110,110,111,111,110,110,110,110,110,110,111,111,111,111,111,111,110,110,110,110,110,109,109,109,109,109,110,109,109,109,110,110,110,110,110,110,110,110,110,110,110,110,111,110,111,110,111,111,111,111,111,111,111,109,109,109,110,109,110,110,110,109,109,109,109,109,109,109,109,109,110,109,109,109,109,109,109,109,110,109,110,109,110,110,110,110,110,110,110,110,111,110,111,110,111,111,111,111,111,111,110,110,109,109,109,109,110,110,110,110,111,111,111,110,111,110,110,110,111,110,110,110,111,111,111,110,109,110,111,109,109,109,109,109,110,110,110,110,111,111,111,111,111,111,111,110,110,110,110,110,110,110,110,110,110,110,109,109,109,109,110,109,110,110,109,109,110,110,110,110,110,110,111,110,111,111,110,109,108,108,109,109,110,110,111,111,109,109,109,109,109,109,109,109,110,109,110,109,110,110,110,109,110,110,110,110,110,110,109,109,111,111,110,110,109,109,109,109,109,109,109,109,110,110,110,109,110,110,110,110,110,110,110,109,107,107,107,107,107,107,107,106,106,106,107,107,107,106,106,106,106,107,107,107,107,107,107,107,106,107,106,107,107,106,106,104,106,108,104,104,104,104,104,104,106,107,108,104,104,106,107,106,107,106,106,106,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,108,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,252,108,252,108,252,107,252,107,252,107,252,107,252,107,252,107,252,107,252,107,252,107,252,107,107,107,109,107,109,107,109,107,107,107,109,107,109,107,109,107,109,107,107,107,109,107,109,107,109,107,109,109,109,107,109,107,109,107,109,107,107,107,107,107,252,107,252,107,252,252,111,110,111,109,110,110,111,110,111,111,111,111,110,110,111,110,111,111,111,109,110,110,110,110,110,110,111,110,111,109,110,109,109,109,110,109,110,109,110,109,110,109,110,109,110,110,110,109,110,110,111,110,110,110,111,110,111,110,111,110,111,110,111,110,111,111,111,111,111,109,110,109,110,110,111,109,109,109,110,109,109,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,110,110,109,110,110,111,110,111,110,111,110,111,110,111,110,111,111,111,110,109,109,110,109,110,110,111,110,111,111,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,109,109,109,109,110,109,110,110,110,110,111,110,111,110,111,111,111,111,110,110,110,110,110,110,111,110,110,110,109,109,110,109,110,109,110,110,109,109,110,109,110,109,110,110,111,110,111,109,110,109,108,108,110,109,110,110,111,111,109,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,110,110,109,110,110,109,110,111,110,111,110,109,109,110,109,110,109,110,109,110,109,110,109,110,110,110,109,110,110,111,109,108,107,108,107,107,107,107,106,107,106,107,106,107,107,107,106,106,106,106,107,108,107,108,107,107,107,107,106,107,106,106,106,104,106,104,104,104,104,104,104,104,106,107,108,104,104,108,107,107,106,107,106,106,106,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,108,109,108,109,108,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,108,108,252,252,252,252,107,107,107,107,107,107,107,107,107,107,252,107,252,107,252,252,252,107,107,107,109,109,109,107,109,107,109,107,109,107,109,107,109,107,107,107,107,107,107,107,109,107,109,109,109,109,109,109,109,107,109,107,109,107,107,107,107,107,107,107,107,107,252,111,111,111,109,109,110,110,111,111,111,110,110,110,110,110,111,111,111,111,109,109,110,110,109,109,109,109,109,109,109,109,110,109,110,109,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,110,111,110,111,111,111,111,111,111,111,111,111,111,110,110,110,110,110,109,109,109,109,109,109,109,109,109,109,109,109,109,110,109,109,109,110,109,110,109,110,110,110,110,110,110,110,110,110,110,110,109,111,110,111,111,111,111,111,111,109,109,109,109,110,110,110,110,111,111,111,111,110,110,110,110,111,110,111,110,111,110,111,110,111,111,109,109,109,109,109,109,110,110,110,110,110,110,111,111,111,111,111,111,111,111,110,110,110,110,110,110,110,110,109,109,109,109,110,109,110,110,110,110,109,109,110,110,111,111,111,111,111,109,109,109,110,109,109,110,110,110,111,111,109,109,109,109,109,109,109,109,110,109,110,109,110,110,110,110,110,109,111,110,110,110,110,110,110,110,110,110,111,109,109,109,109,109,109,109,110,109,110,109,110,110,110,110,110,110,110,109,108,107,107,107,107,107,107,107,107,107,107,106,106,106,107,107,106,106,106,106,106,107,107,107,107,107,107,106,107,107,106,106,106,104,104,104,104,104,104,104,104,104,106,107,104,104,108,107,107,107,106,107,107,106,106,106,223,223,223,223,223,223,223,222,223,223,223,223,223,223,223,222,223,223,223,223,223,223,223,222,223,223,223,223,223,223,223,222,223,223,223,223,223,223,223,222,223,223,223,223,223,223,223,222,223,223,223,223,223,223,223,222,223,223,223,223,223,223,223,222,223,223,223,223,223,223,223,222,223,223,223,223,223,223,223,222,223,223,223,223,223,223,223,222,223,223,223,223,223,223,223,222,223,223,223,223,223,223,223,222,223,223,223,223,223,223,223,222,223,223,223,223,223,223,223,222,223,223,223,223,223,223,223,222,223,223,223,222,223,223 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,109,108,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,108,252,108,252,107,252,252,107,107,252,107,252,107,252,107,252,107,252,107,252,107,252,107,107,107,109,107,109,107,109,107,109,107,109,107,107,109,109,107,109,107,107,107,109,107,109,107,109,107,109,107,109,109,109,109,109,107,109,107,109,107,107,107,107,107,252,107,252,252,111,109,111,110,109,110,111,111,111,111,110,110,111,110,111,110,111,111,111,109,109,109,109,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,110,110,110,110,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,109,111,111,111,110,110,110,109,109,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,110,110,110,109,109,110,110,111,110,111,110,111,110,111,111,111,109,110,109,110,109,110,110,111,110,111,111,111,110,111,110,111,110,111,110,109,111,111,110,111,110,111,109,109,109,110,109,110,109,110,110,111,110,111,110,111,111,111,110,111,111,111,110,110,110,110,110,110,110,111,109,109,109,110,109,110,109,110,109,110,110,109,110,111,110,111,110,109,109,108,108,111,109,110,109,110,110,111,111,109,109,109,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,111,110,110,110,110,111,110,111,110,111,110,109,109,109,109,110,109,110,109,110,109,110,109,110,110,110,110,109,109,108,107,108,107,108,107,108,107,107,107,107,106,107,106,107,106,107,106,107,106,106,106,106,107,108,107,108,107,107,106,107,106,106,106,104,104,104,104,104,104,104,104,106,107,104,104,108,107,108,107,108,106,107,107,107,106,106,106,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223,222,223 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,108,109,108,109,108,109,108,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,108,252,252,252,252,252,107,107,107,107,107,107,107,252,107,107,107,252,107,252,107,252,107,107,107,109,109,109,107,109,107,109,107,109,107,109,107,109,107,107,107,107,107,107,107,109,107,109,107,109,109,109,109,109,107,109,107,109,107,107,107,107,107,107,107,252,107,252,111,111,111,109,109,109,111,111,111,110,110,110,110,111,111,109,109,109,109,109,109,109,109,109,109,110,109,109,109,110,110,110,109,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,110,111,110,111,111,111,110,109,109,110,110,111,111,111,111,111,110,110,109,109,109,109,109,109,109,109,109,110,109,109,109,110,109,110,109,110,109,109,109,110,110,110,110,110,110,109,109,110,110,110,110,111,110,111,110,111,111,111,111,111,109,109,109,110,110,110,110,110,110,111,111,111,110,110,110,111,110,110,109,110,110,110,110,111,111,111,109,109,109,109,109,110,110,110,110,110,110,111,111,111,111,110,110,111,111,111,111,111,110,110,110,110,110,110,110,109,109,109,109,110,109,110,110,110,110,110,110,110,110,110,110,108,108,108,108,111,110,109,109,110,110,111,111,110,109,109,109,109,109,109,109,109,109,109,109,110,110,110,109,110,109,110,111,110,110,110,110,110,110,110,110,111,110,110,109,109,109,109,109,111,109,110,109,110,110,110,110,110,106,110,108,108,108,108,107,108,107,107,107,107,107,107,107,107,107,107,106,107,106,106,106,106,106,106,106,106,108,107,107,107,107,106,106,106,106,104,104,104,104,104,104,104,104,104,106,108,104,108,108,108,108,107,107,107,106,107,107,107,106,106,223,223,223,223,222,223,223,223,223,223,223,223,222,223,223,223,223,223,223,223,222,223,223,223,223,223,223,223,222,223,223,223,223,223,223,223,222,223,223,223,223,223,223,223,222,223,223,223,223,223,223,223,222,223,223,223,223,223,223,223,222,223,223,223,223,223,223,223,222,223,223,223,223,223,223,223,222,223,223,223,223,223,223,223,222,223,223,223,223,223,223,223,222,223,223,223,223,223,223,223,222,223,223,223,223,223,223,223,222,223,223,223,223,223,223,223,222,223,223,223,223,223,223,223,222,223,223,223,222,223,223,223,223 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,108,109,252,109,108,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,252,252,107,107,107,107,252,107,252,107,252,107,252,107,252,107,252,107,107,107,109,107,109,107,109,107,109,107,109,107,109,107,107,107,109,107,107,107,109,107,109,107,109,107,109,109,109,109,109,107,109,107,109,107,109,107,107,107,252,107,107,107,252,107,252,111,111,109,110,110,111,110,110,110,111,110,109,109,110,109,109,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,110,110,110,110,110,111,110,110,110,111,110,111,110,111,109,109,109,110,109,110,109,110,110,110,110,111,110,111,110,111,111,111,111,110,109,109,109,110,109,109,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,110,111,110,111,110,111,110,111,110,111,110,111,111,109,109,110,109,110,110,111,110,111,110,111,110,111,110,111,109,110,109,110,110,111,110,111,111,111,109,109,109,110,109,109,109,110,109,110,110,111,110,111,111,111,110,111,110,111,110,111,111,110,110,110,110,111,110,109,109,109,109,110,110,111,109,110,110,110,110,110,110,111,108,108,108,108,111,111,109,109,109,110,110,111,111,110,110,109,109,109,109,110,109,110,111,110,109,110,109,110,109,110,110,109,110,111,110,110,110,110,110,111,110,111,110,111,109,110,110,111,109,110,110,111,109,110,110,110,106,108,108,110,108,108,108,108,107,108,107,108,107,108,107,108,106,108,107,107,106,107,106,107,106,107,106,107,106,106,106,106,107,108,107,108,106,106,106,106,106,104,104,104,104,104,104,104,104,104,108,104,108,108,108,108,107,108,107,106,106,107,107,107,106,106,222,223,222,223,223,223,222,223,222,223,222,223,223,223,222,223,222,223,222,223,223,223,222,223,222,223,222,223,223,223,222,223,222,223,222,223,223,223,222,223,222,223,222,223,223,223,222,223,222,223,222,223,223,223,222,223,222,223,222,223,223,223,222,223,222,223,222,223,223,223,222,223,222,223,222,223,223,223,222,223,222,223,222,223,223,223,222,223,222,223,222,223,223,223,222,223,222,223,222,223,223,223,222,223,222,223,222,223,223,223,222,223,222,223,222,223,223,223,222,223,222,223,222,223,223,223,222,223,223,223,222,223 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,108,109,108,109,108,109,108,109,109,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,252,252,107,107,107,107,107,107,107,107,107,107,107,107,252,107,109,107,107,107,109,109,109,107,109,107,109,107,109,107,109,107,109,107,107,107,107,107,107,107,109,107,109,109,109,109,109,109,109,107,109,107,109,107,109,107,107,107,107,107,107,107,252,107,111,111,111,111,111,111,111,110,110,110,109,109,109,109,109,109,109,109,109,109,109,109,110,109,110,109,110,109,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,109,109,109,109,109,110,110,110,110,110,110,110,110,111,111,111,111,111,111,109,109,109,109,109,110,111,109,109,109,109,109,109,109,110,109,110,109,110,109,110,109,110,109,110,109,109,109,110,110,110,110,111,110,111,111,110,110,111,110,111,111,111,111,109,109,109,109,110,110,110,110,111,110,111,111,110,110,110,109,109,109,110,110,110,110,110,110,111,111,111,111,109,109,110,109,109,109,110,110,110,110,111,111,110,110,111,111,111,111,111,111,110,110,110,110,110,110,109,109,110,110,111,109,110,110,110,110,110,110,110,110,111,108,108,108,108,108,111,109,110,109,110,110,111,111,110,110,110,110,109,109,109,109,110,111,109,109,110,109,110,109,110,110,110,110,109,111,110,110,110,110,110,110,111,110,111,109,110,110,111,109,110,110,110,110,111,110,106,107,108,109,110,108,108,108,108,108,108,108,108,107,108,107,107,106,107,107,108,107,107,107,107,106,107,106,106,106,106,106,106,106,106,107,108,107,107,106,104,106,104,104,104,104,104,104,104,104,108,108,104,108,108,108,108,108,108,108,108,107,106,106,107,107,106,106,106,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,108,109,108,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,252,107,252,107,252,107,252,107,252,107,107,107,109,107,109,107,109,107,109,107,109,107,109,107,107,109,109,107,107,107,109,107,109,107,109,107,109,107,109,109,109,109,109,107,109,107,109,107,107,107,107,107,252,107,252,107,252,107,111,110,111,110,111,110,110,110,109,109,109,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,110,110,110,110,110,111,110,110,110,111,110,111,110,111,109,109,109,110,109,110,109,110,109,110,110,111,110,111,110,111,110,109,109,109,109,109,109,110,110,111,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,109,109,110,109,110,109,110,110,111,110,111,111,111,110,111,110,111,110,111,110,109,109,110,109,110,110,110,110,111,110,111,111,111,110,111,110,109,109,110,109,110,109,110,110,111,110,111,110,111,111,110,109,110,109,109,109,110,110,111,110,111,110,111,110,111,110,111,111,110,110,110,110,110,109,110,110,111,109,109,109,110,109,110,109,110,110,110,110,108,108,108,108,108,108,111,109,110,109,110,110,111,111,111,110,111,110,109,109,110,111,111,111,110,109,110,109,110,109,110,109,110,109,110,110,110,110,110,110,111,110,111,110,109,109,110,110,111,109,110,109,110,110,111,106,107,107,109,109,110,108,108,108,108,108,108,107,108,107,108,107,108,107,106,106,107,107,108,107,107,106,106,108,106,106,107,106,106,106,106,106,106,107,108,107,106,107,104,104,104,104,104,104,104,104,108,108,104,108,108,108,108,108,108,108,108,107,106,106,108,106,107,107,107,106,106,222,223,222,223,223,223,222,223,222,223,222,223,223,223,222,223,222,223,222,223,223,223,222,223,222,223,222,223,223,223,222,223,222,223,222,223,223,223,222,223,222,223,222,223,223,223,222,223,222,223,222,223,223,223,222,223,222,223,222,223,223,223,222,223,222,223,222,223,223,223,222,223,222,223,222,223,223,223,222,223,222,223,222,223,223,223,222,223,222,223,222,223,223,223,222,223,222,223,222,223,223,223,222,223,222,223,222,223,223,223,222,223,222,223,222,223,223,223,222,223,222,223,222,223,222,223,222,223,223,223 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,108,109,108,109,108,109,252,109,109,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,107,107,107,107,107,107,252,107,107,107,109,109,109,107,109,107,109,107,107,107,107,107,109,109,107,107,107,107,107,107,109,107,109,107,109,109,109,109,109,107,109,107,109,107,252,107,107,107,107,107,107,107,107,107,252,107,252,110,111,111,110,110,109,109,109,109,109,109,109,109,110,109,109,109,110,109,110,109,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,110,110,110,111,111,111,110,109,109,109,109,110,110,110,110,110,110,110,110,111,111,111,111,109,109,109,109,110,110,111,111,109,109,109,109,109,109,109,109,110,109,109,109,110,109,110,109,110,109,109,109,110,110,110,110,110,110,111,110,111,111,110,110,111,110,111,110,111,111,111,109,109,109,110,110,110,110,110,110,111,111,111,110,110,110,110,110,109,109,109,109,110,110,110,110,111,111,111,109,110,109,110,109,110,110,110,110,110,110,110,110,111,111,111,111,111,111,110,110,110,110,109,110,111,110,110,110,109,109,109,109,110,110,110,110,110,110,108,108,108,108,111,111,110,109,110,110,109,110,111,110,111,110,111,110,109,109,110,110,111,109,109,109,110,109,110,109,110,110,110,110,110,110,110,110,110,110,110,110,111,109,109,109,110,110,111,111,109,109,110,110,110,106,107,107,108,109,109,110,108,108,108,108,108,108,108,108,108,108,108,107,108,106,106,107,107,108,108,107,106,107,107,108,106,106,106,106,106,106,106,106,106,108,106,108,104,104,104,104,104,104,108,104,104,104,107,108,108,108,108,108,108,106,108,108,108,107,106,106,107,107,106,107,108,108,106,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,252,109,109,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,252,107,252,107,109,107,109,107,109,107,109,107,109,107,109,107,109,107,109,109,109,107,107,107,109,107,109,107,109,107,109,107,109,107,109,109,109,107,109,107,252,107,252,107,252,107,107,107,252,107,252,107,252,252,252,111,111,110,110,109,110,109,109,109,110,109,110,109,110,109,110,109,110,109,110,109,110,109,110,110,110,110,110,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,109,110,109,110,109,110,109,110,110,111,110,111,110,111,110,109,109,109,109,110,110,111,109,110,109,110,109,109,109,110,109,110,109,110,109,110,109,110,109,109,109,110,109,110,109,110,110,111,110,111,110,111,111,111,110,111,110,111,110,111,110,111,110,109,109,110,109,110,110,111,110,111,111,111,111,111,110,111,110,111,110,109,109,110,109,110,110,111,111,111,109,110,109,110,109,110,110,110,110,110,110,111,110,111,110,111,110,111,111,110,110,110,109,110,110,111,110,111,110,111,110,109,109,110,109,110,109,110,110,108,108,108,111,111,109,110,109,110,109,110,110,109,110,111,110,111,109,110,110,111,111,109,109,110,109,110,109,110,109,110,109,110,109,110,110,110,110,110,110,111,110,111,109,110,109,110,110,111,111,111,109,110,109,106,106,107,107,108,108,109,109,110,108,108,108,108,108,108,107,108,107,108,107,108,107,108,106,107,107,108,108,107,106,107,107,108,108,107,106,107,106,107,106,106,106,106,104,104,104,104,104,104,106,104,104,104,104,107,108,108,108,108,108,108,108,106,107,108,107,108,107,106,106,107,106,107,107,108,108,106,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223,223,223,222,223 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,109,108,109,108,109,109,109,109,109,109,109,108,109,108,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,107,107,107,107,107,107,109,107,109,109,109,107,109,107,107,107,109,109,109,109,107,107,107,107,107,107,109,107,109,109,109,109,109,109,109,107,109,107,252,107,252,107,107,107,107,107,107,107,107,107,252,107,252,252,252,111,110,109,109,109,109,109,109,109,109,109,110,109,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,110,111,110,111,110,111,111,111,111,111,111,111,111,111,109,109,109,110,109,110,110,110,110,111,110,111,111,111,109,109,109,110,110,111,109,109,109,109,109,110,109,109,109,109,109,109,109,109,109,110,109,110,109,110,109,110,110,110,110,110,110,111,111,111,111,110,110,110,110,111,110,111,111,111,111,111,109,109,109,110,110,110,110,111,111,111,111,111,110,110,110,111,110,111,110,109,109,110,110,110,110,111,111,109,109,110,109,110,110,110,110,110,110,110,110,111,111,111,111,111,111,110,110,110,110,109,110,111,110,110,110,110,110,110,110,109,109,110,110,110,110,108,108,111,111,109,109,109,109,110,110,110,110,110,110,111,111,109,109,110,110,111,109,109,109,109,109,109,109,109,109,110,109,110,110,110,110,110,110,110,110,110,110,110,110,109,109,110,110,111,111,111,111,109,109,106,106,107,107,108,108,109,109,110,110,108,108,108,108,108,108,108,108,108,108,108,108,108,107,106,106,107,107,108,108,106,106,107,107,108,108,107,106,106,106,106,106,106,106,106,104,104,104,104,108,104,104,104,104,107,108,108,108,108,108,108,108,108,108,106,108,108,108,108,106,106,106,107,107,108,108,108,106,106,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223 +,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,109,109,108,109,108,109,252,109,252,109,252,109,252,109,252,109,252,109,252,109,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,107,107,107,252,107,252,107,107,107,109,107,109,107,109,107,109,107,107,107,109,107,109,107,109,107,109,107,109,107,109,107,109,107,109,109,109,109,109,107,252,107,252,107,109,107,107,107,252,107,252,107,252,107,252,107,252,252,252,110,109,109,109,109,110,109,110,109,110,109,110,109,110,109,110,109,110,110,110,110,111,110,111,110,111,110,111,110,111,110,111,110,111,110,111,111,111,111,111,110,111,252,109,109,110,109,110,109,110,110,111,110,111,110,111,109,109,109,109,109,110,109,110,109,110,109,110,109,110,109,109,109,110,109,110,109,110,109,110,109,110,109,110,110,110,110,110,110,110,111,111,111,111,110,110,110,110,111,110,111,111,111,111,111,109,109,109,110,110,110,110,111,111,111,111,111,110,110,110,111,110,111,110,109,109,110,110,110,110,111,111,109,109,110,109,110,110,110,110,110,110,110,110,111,111,111,111,111,111,110,110,110,110,109,110,111,110,110,110,110,110,110,110,109,109,110,110,110,110,108,108,111,111,109,109,109,109,110,110,110,110,110,110,111,111,109,109,110,110,111,109,109,109,109,109,109,109,109,109,110,109,110,110,110,110,110,110,110,110,110,110,110,110,109,109,110,110,111,111,111,111,109,109,106,106,107,107,108,108,109,109,110,110,108,108,108,108,108,108,108,108,108,108,108,108,108,107,106,106,107,107,108,108,106,106,107,107,108,108,107,106,106,106,106,106,106,106,106,104,104,104,104,108,104,104,104,104,107,108,108,108,108,108,108,108,108,108,106,108,108,108,108,106,106,106,107,107,108,108,108,106,106,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223]} +); diff --git a/apps/animclk/animclk.pal b/apps/animclk/animclk.pal new file mode 100644 index 0000000000000000000000000000000000000000..d33bfcdb9524e027f6819cc62f6e853f28eb03bd GIT binary patch literal 512 zcmZQz*nfZi`S|tr^Z&Q~kJ}%&->zQIp6$Qre%^XnIo-WFF*d)gXFA7Ei%z}h9DH=^ zw%z;wZi`<(XWq@$l4+&Kf{$*C*%o6QveDV!TF?5N6rZ-g^+o54&Yyr#$VJ%2*vD#~ zzO*-!784g3YBQbX(wDwyEMybxvn8aw)^gc@ASiFWnqyWvqt|lT?tM`}EPLMe`ksCB zp4(oZ_dI&r&!s!&miL;qey!P3a<$}ZjaaQ&Yk2R?xzXG19;?4U)koN7qjrGwMr~o6 zsXpSVokbt6EDL;WkSL&D^ltU!rvb&mb3S#O@BP#rPzif=jThCtHBJqFPH<4$P?h0J( ZKf=3b&1QpakQszs>05:>%&)),0235699<=?ssstststssssstststtuuuuu"#%&'()*,-./ "#%'(*,-/ !!"##$%&&''()**+,,-.02478;=?Ɯ$%( "#%&()+,./--.././Ɯ)*+,-./++--./Ɯ-../ &%&&'&'(Ɯ,- "$%()+- !"#%&'()//5689;<>?0134679:<=?024:<=?02467ƛ/ "#&'*+- #%(*-/>?014589<=?02367:;=?014589<=?Ɯ)*+,--// !"#$%& !"#$%&()*,-./::;;<<==>>??KKLMNNO5556!"##%%&&''((**++,,--// !##%%'(**,,./?02367:;>>;EGGHIJJLLNNO45465767 "$&)*-/!!""##$$%%&&''(()**++,,-..// !#$%&()*+-./566>??@ACDEFHIJKMNO344 !!""##$$%%&&''(())**++,,--..//001122<>?@AACCEEGH . "%'*,/ !!""##$$%%&&''(())**++,,--../0111=>??@ABB !"#$%&'()*+,-./ !!""##$$%%&&''(())**++,,--..//001<>=>>,,,,,,, $'+/ !"#$%&'()*+,-./ !!!"""##$$%%%&&'''(())**+++,,,--..//0011<==--------- #(+/ ! ! !!"!""##$#$$%%&%'&''(')())**+*++,,-,--.././0101122< !!!!!!! !!!!""""####$$$$%%&&&&''(((())))****++,,,,---...///0111122334"" ! !!"!#"##$#$$%$%%&%&&''('(())*)**+*++,+,,--.-.././deeff0011213233545""""#$$%%%%&&&&''(((())))**++++,,,,----..///abbccdde00111223334445%&%()())*)**+*++,+,,-,--.-.././/eeff``aa00112233438(+,,,,----....////aabbccdde0011222334455667././//fg`abcdef``00112233445565778788:eefffgg`01122334455566778899::;;;0112233445566778899::;;<<==>566778999:;;<===>??@@BB;;<<==>>?YZYZZ[@BBEEƀXXYYYYYYZ@BDFHKMO2Ɔƀ@BDEHILMO@CEHJMOOƎ@@AABBCCCDDEEEFFGGHHHIIJJJKKLLMMMNNOO=??012244667899;;==>?@@@AABBBCCCDDDEEFFFFGGHHFEFFGFHGHHIHJIJJKJKKLKLLMLMMNNONOb7c89:::fd6778899:::>>>>??A@?B?AA@ABABCCDBDEFFGGHHFFFFGGHHHHIIJJJJKKLLLMMMNNNOO2425556779fd6778899:::::=>==>>>>>@>?ABAABCCCDCDFFFFGGHHEEFFGGHHIIJJKKLLMMNNOOO/deeeeeeefd67fd67787899:::::=====>>>??????@?A?ABDDEEF@FFGGHH@ABCDEFFHHIJKLMNOdde/ed/dddedfe/ffeecc6fc88f8f99=:::=======??????@=@=ACDCDEEFFFFGGHHKIHL@NLMd//e/ee/ed/dddedfe/ffeecc6fc88f889:9::<<<========>????=A=D=EEFFFFGGHHEJDFc/dddddde/ed/dddedfe/ffeecc6fc88ff888::9:9>99e:==>==>>>>?>??@@@^]@_B\AHƂcdddeeee/ed/dddedfe/ffeecc6fc88f778899:::<=:===>>>??>?=>>?>Z>^[Z^[^\]]ƀcccdde/ed/dddedfe/ffeecc6fc88f778897:9:=:<=>==>>??>>>>>?>[[\Z\\[\]]^d/dddedfe/ffeecc6fc88ffd6778899:::<<<=====>>>?<==>>\>\\]\^^^^FGGHHIĈ787889899c9:9:9::;:;:;;;;<;<<=<=<===<==???=>>???]\]]^^]^^^__^_@AABBCCDDEEFFGGHĈ9999:9::::;d;;;;;;<<<<<<=<======>>>>>???\>?\]\]]^^^^@^A@BACBCCDDDDEEEFGGG:::;:;:;;<;<;<<<<=<=<=====>=>>>??>>????\]]\^^@BAB@BABCCCDDCCDDDDEEFFFGGGČAAB;;;;<<<<<<<<========>>>>>=>>>>>>?0???5?ŀƏƄ]^^\]@A]DBBDCCDDDDFDDEEEFFFFGGHHIIIIBBN<=<=<====>=>=>=>>>>?>>>>>>?>?>=><=?X???\AA]B@B\@C@ECEFFFFFEFFEEFFGFHGHHIIJIJJKKLKLLMMNMNNOOO@O@@@A@BABBCCDƈMMM>=>>>>>>>>??????<<===?==>>>?>>>=>>;=XXXXY;>Y?YYC[AAB\D\ABDACBDCDADCDDDFFGFGFFGGFGGGGHHHHIIJJJJKKLLLLMMMMNNNNOOO@O@@@AAAABBCCDDDDEFFFGGHHIIIIJJKKLLLLLLLMMMM>?>>?>>?>?>>>=?===?=>=?=??>>=>==>X??Y>Y=ZZA@ZBC@CCCBDCDEBDEECDFDEFEGGHHGHHGHGHHIHIIJIJKJJKKLKLLMLMMNNONOOOOO@O@@@AABBCBCCDDEEFEFFGGHHIHIIJJKKLLL>?===??>>?>>>==<=====>=?==???>:>:=>YXW>VX@ZZ@BABCDDCBCDDDDEEFEDEFEFEEFFGIJHHJHIHIIIIIIJKKJKKKKLLLLMMMMNNNNOOOOOOO@@@@@A>?SSR=>?R>???=STT>>>>>>>?>>>??>>>>>U>=>VWXYABCDCCEDEDEFEFEFFFGGFGGGGHHGIHIHJJJJJJJJKJKKJLKKKLLLMLMLMMNMNNONONOOO@O@AQQ@??RR>RR@>RSR<>S=>@>?B>@=>U>V?VUVWW@ACDCEDDEEEFFFHFGGGGHHIHIHIHIHJIJJIKKKKJKJJKJLLKLLKLLLLMMMMNNNNONOOOOO@O@AAB@Q@QARRAR@S?ASSBSSS>@TSCACB?C@@UAVAWAEVEBCEEFFFGFFFGGHGHIHJIJJIIIJIJIJKJJJKKJLKLKLKJKKLMKLLLLMLMMNMNNNNONONOOO@O@@@AABCCAAARAARRBBCCSDTCBATS@AEECDDDDDEFBECCGFGGGGGHHGGGGGGHIHJKJJJJJKJKJJJJJKKJKJKLKKLKKLKKLKLMLLMMMMMMNMNNNNONOOOOO@O@@@@@AAABCCDBA@BBA@AABDDEDEDDEDCCEGCFFEGFFGHGFEIFGHGHHHHHHHIIIIIJJJJKJJKJKKJKKKKKJKKKKKKKLLKLMLMLLLLLMLMMNMNMNNONONONOOO@OO@@ABBCCDEABABBCCDCCDEDDDEDEFGHGGFHFHGIGFGGGHHIHIHHHIHIIIJHIIIJKIJJKKKKKLKKLKKKKKKLLKLKLKLLLMLLMMLMMMMNNNNNNNNOOOOOO@O@@@AABCCDDCCBCCCCCCDDDEDEEFEEFHGHHHGHGIHGHHIIJIGJIIIIIIIJIJIJKJJJJJJJKKKKKLKKLLKKLKMLLKLMLLLLMMLMMMNMNNNNNNONOOOOO@O@O@@@AABBCDDECCCCCCDCCDDDEEEEGEFGFGHGHHHIIHIIIHJHIHIJJJJIIIJJIKJJJJJJJJJKKKKKKKKLLLLLMMLMLLMLNMLMLMNMNNNNNNOOOOOOOOO@@@@@@@AABBCCDDEOCCCDDDDDDEEEDEEEFEEFGGGHHHHIIHIIIIJIJIJJJJJIJIJKJKIJKKJJJKJKLKLKKKLLMLMLMMMMLMNMNMMMNNMNNONONOOOOO@O@O@O@@@A@AABBCCDDEEFODDCCEEFEEFEFEFFFFGGGGFFGHHIHGIHIJIIJIJJJKKJJKJJKJKJKKKKKKKJKLKLLLLLLMLMMMMMMMNMNNNNNNNNNOOOOOOOOOO@@@@@@@@AAAABBBBBBCCDDEEFFGHFFGEGFFGGGGFGHGGHGHHGHGGFHHIIHIIIIJJJJJJJKJKKKKJKKKKKLLKKLKKLLLMLMLMLMMNMNMNMNNONONONOOO@O@O@O@O@@@@@AAAABBCCDDEEFFGGHHHGGGHGIGGIHHHHHHIHHHHIIGHIGHIHIIIIIJIJJJJJJKJKKKKKKKKLLLLLLLLMMMMMMMMNMNNNNNNONOOOOOOOOOO@O@@@@@@@AAAABABBBBCCCCDDDEEFFFGGHJJHGIJHIIHIIIIIHHHHHHJJIIIIJJJIJJJKJKKJKJKJKKLKLKLKLLLLMLMLMLMMNMNMNMNNONONONOOOOOOO@O@O@O@O@@@@@AABBBCBCBCCDCDDEDEEFEFFGGHHIhLHIJJJIKJIJIJIJJJJJJJJJJKJKJKKKKKKKKKKKKKLKLLLLLLLLMMMMMMMMNMNMNNNNNNNNOOOOOOOOOOO@O@@@@@@@@@@@AAAABBBCCCDDDEEFFGGGHHHnhhJKLJKKKKKJKKJJJJKKLLKKKKKKLLKKKKLLLKLKLLMLMLMLMLMMNMNMNMNNNNNNONONONOOO@O@O@O@O@OO@@@@AAABBCCCDCDCDDEDEDEFFGGHHHIIohohLLLLKLLLKKLKLLKKLLLLLMLMLLLLLMMMMMMMMMMMMMMMMMNMNMNNNNNNNNOOOOOOOOOO@O@O@@@@@@@@@AAABBBCCCCCCDDDDEEEEFFFFFFGGGGHHINOhjhjjKKLLLKLLLLLMMLLLMMMMLLMLMLMMMMMMMMMMMMNMNMNMNMNNNNONONONOOOOO@O@O@O@O@O@@@@@@@A@AAABBBCCDDDEEEFFGGGHHHIINNOOoohjjLLKKLLMLLLLMLLLLLMMMMMMMMMMMMMMMMMMMMNMNNNNNNNNOOOOOOOOOOOO@O@@@@@@@@@@@AAABBBBCCCDDDEEFFFFGGHHHIIINOOjhkkjjKLLLLLMMMMLMLMLMNMMNNMNMNMNNMMNNMMNNMNNONONONOOOOOOO@O@O@O@O@O@O@@@@@A@AABBBCBCBCCDCDDDDEEEFFFGGGHHHIIIJJJlhkjjjjLLLLLLLMMMMMMMMMMMNMNMNNNNNNNNNNNNNONOOOOOOOOOOOOO@O@O@@@@@@@@@@@@@AAAAABBBBBBCCCCCDDDEEEEEFFFGGGHHHIIIIJJlhkkjjjLLLLMMLMLMLMMMMNNMMNNMNMNMNNONONONOOOOOOO@O@O@O@O@O@O@@@@@AAAABABBBCCCDDDEEEFFFFGGMMMNIIIJJJhkkkkjjjLLLMMMMMMMMMMMMMNNNNNNNNONONOOOOOOOOOOOOOOOOO@O@O@O@O@O@O@@@AAAABBBBBBBBCCCDDDDEEEFFFGGGGNNNOOklkkjkjjjLMMMMMMMNMNMNMNNONONONOOOOOOO@OOOOOOOOO@@@AABBBBCCCCDDDEEEFFFFGGGHHHCIOkkkkkjjjjMMMMMNNNNNNNNNNONOOOOOOOOOOOOO@@@@@AAAAAAABBBBCCCDDDDEEEFGGGGHHHIjkkkjkjkjjMNMNNNNONONONONOOOOO@O@OOOO@@AAAABBEFGHIJKMNOGGGGHHHIkkkkkjjkjjNNNNNNOOOOOOOOOOO@@@@@AAAAAAHIKMOCHjkjkkkjkjjjONONOOOOOO@OO@@AAAABBBBBCCCDFFFGGGjjjkkjjjjjjjOOOOOOOOO@@BGKO@AAAABBBBCCCCDDDEEkljkkkjkjjjjOOOOOOO@@@@AAAABBBBCCCDkkkjkkkjkjjjjOO@@@@@@@AAAABBBBCklkjjkjkjkjjjjOO@O@@AAAABBBBCCCDDkkkjkjkjjjjjjj@@@@@AAAABBBBCEEkkkkjkjkjkjkjjj@@AAAABBBBDlkkkjjjjkkkjjjjAAAABBBBCCDDDEEklkkjjjkjkkkjkjjBBBBCCCDDDDDklkkjjkkjkkjjjjjjBBBCCCCCklkljkjkkkkkjkjjjjCCjCCDCDCDDEkllkjjjjkjkjkjjjjjCCCDDkllljkjkkkkkjkjjjjjDDDDDEEDEEFEkllkkjkjkjlkkjjjjjjjDDDEEFjlklkljkjllkjkjkjjjjEEFEFlllklkkjjklkkkjjjjjjjEEllklklkljjkljkjkjkjjjjEEFEFFFFGkllllklkkjjlkkkjjjjjjjFFFGGhhhhhhhlkljljkjkjkjkjjjFhhhhhhhhlkkjlkkjkjjjjjjjoomhjklhhlkkjkjkjkjkjkjjnnnnhjklhhkkkkkkkjkjjjjjjGHGnnnonhjkkhhhkkkkjkjkjkjjjjnnnnohjkllhhkkkkkkkjjjjjjjHnonnnhjkkhhhhjkkkkjkjkjjjjjnonnnhjklhhhjljkkkkkkjkjjjjjnooohjjllhhhjjjlkkkkjjjjjjjjooonhjklhhhkkjjjkkkkkkjjkjjjjnooononjlhkkjkjkjjkkjkjjjjjjjoonnnnonjkkjkjjjjkjlkkkjkkjjjjnononohomlkkjkjjjjkjlkjjjkjkjjjnnnnohomllkkkjkjjjkjlkkjkkljjjjnonohomlklkkjkjkjjjljkjjjkkkjkjjnnhhojlllkkkkjjjkkjjjkkjjkkjjjjjjnhjlhmllklkkjkjkjkkjkjkjjkkjjkjjjjkmhmklllkkkkkjjjkkjjkkkjkjkjkjjjjkljhhlklllklkkjjjlkjjjkkjjjkkkjjjjjlhhhjhlklllkkklkkjkjjjkkkjkkkjkjjjjhnnhjkkllhhlklkkjjjkjjjlkkjkkjjkjkjjhhhhhoomhjjkkllhhhllkkjjjkkjjkkkjljljjjjjjhhhhhhhhhhhmnmhjkjkkllhhhhkjkjkkkjjklkkjjkkjkjjjhhhhhhhhhhhjhnnhjjjkkllllhhhhhjjjkkkjjkkkkjljkjjjjjhhhhhhhhhjklhnhjkjkklkllhlhhhhkjkjkkjjjjlkjlkjkjkjjjhhhhhjhjkkhhjnnhjkkkkllllhhhhlkjjkkkjjjjlkjljkkjjkjjjhhhjhhhjklhjjnonhhjjkkllhhhhjlkjjjkjkjjjjkjkkjkjjjkjjhhhhhhhjkhjjjnnnhjjkkllhhhhkkkljjjkkkjjjkkkjlkkkjjkkkjhhhhhjkhjkjjjnonohhhhjkkhhhklkklkjkkkjjjjkljlkkjkjjjkjjhhhhjhjkkkjjjonnnooonhjlhhlkkkkljjjkjjjjjjkjlkkkjjkjkkjhjklhjjjkkjjjjnonononohjklhhklklklkkjkjkjjjljlkkjkjjkkkhjklhkjjkjkjkjjjnnononohjjklhhlkkkkkkkkjjjjjjjlkkkkkkjkkhjjkhlkjjjkkkjjjjjnononohhjkkllhklklkklkjkjkjkjjjljlkkjkjjkhjhllkkjkjkjkjkjjononoohjkkllhhjklkkkkkkjkjjjjjjkjklkkjkklhhkllkkkjkkkjjjjjjnononohjjkkllhjjklkkkkjkjkjkjjjjkljkkjklhkklklkkjkjkjkjkjkjjonooohjjkkllhhjjlklkkkkkkjkjjjjjjkkkkjklhllllkkkkjjkkkkjjjjjjnonohjjkkllhhhjjjlklkkkkjkjkjkjjjlklkkhkllklklklkkkkjkjkjkjkjjooonhjlmlhnlhhhjjjlklkkkkkkjkjjkjjlkkkkllllllllklkjlkkkjjjjjjjknonononojnlhhohkjjklklkkkkjkjjjkkjjlklllllllllklkljklkjjjkjkjkjkonoooooojklhhhkjjjjklkkkkkkkkjkkkjjjlllllllllllllkjklkjjkkkjjjkknmnonononjjnhkjkjkjjklklkkjkjjjkkjjjllllllllllklklkjkkjjjkjkjkjkjmoooooojklhnkkkjkjjjlkkkkkkkkjjjkkjjlllllllllllllllkkkjjkkkjjjjjkknononojklhnkkkjjkkjjjlklkljkkjjkkkjjjlllllllllllllklklkjjkkkjjjkjkkoooooojklhnkkkjjkkkjjjlkkkjjkjjjkkjjjjlllllllllllllllkkjjjkkkjjjkkkjnononjklhnklkkjkjkkkjjklklkkjkjkjkjjkjllllllllllllklklkjkjjkjjjkkkkjjooooojklmnlkkkjjkkkjjjjklkkkkkkjkkjjkkjlllhhhhlllllllllkjjjjkkjjkkjjjnonoommmllklklkkjjjkkkjlklkkkkjkjjjkjhhhhhhhhhhhllllllklkljkjkjkjkkkjjoooommmmlllkkkkkjjkkkjjjkkkkkjjjjhhhhhmmmmmmmmmhhhhllllklkkkkkkkjjkjjjjnonmmnmlklklklkkjkjkjkjjjkjjhhhhhmmnmnmnnonomnmnmnnmmmklklklkkkkjkjkjkjj \ No newline at end of file diff --git a/apps/animclk/app-icon.js b/apps/animclk/app-icon.js new file mode 100644 index 000000000..f904072e3 --- /dev/null +++ b/apps/animclk/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwxH+i4AFnYHGBBIAPDA0dAH4A/ABtBFtlk0uALlml0uBF1uAvQvtvQvroGAF4NWdteARwIvsXwNWq1BAFEdwK+CF9VBF4d6F9SOBR4OAF1OIF4KOB0opjwV6vd7rrtCFwIvlwN70q6BFQN6RwIEBsoAHrwJIACGBdINWvTtDAoIvINgIuYxAvBwAsCLwIjB0glGxKbCMDGCvYvBDwItBGYdWxIAExBpBp9dx4LFAAuPx+IxAQELoK9BE4S+CLgKQCC4IAD1gKBp9WBQoAFxOCE4WCAAIvB0uBWgIuCq2kAoIiBp962YAECIVPqFWBYoAEWQIAH0qNBLwYDBLwRfCF49Pp+BAIIuI1gnBvYADAoIBC0q9BAAWl0hiBp4nBDwoRBLwOzNwOtBgms1ouBq4mBAAQECRwICBGAJeCvQEEldeAAZxESIIzBBgeCq9dFwKKEqwuDvS/CMAQCCXgJiBp9dAAQFBFYUrAAgrBAAszmddq4ABJwI0CFANVXIjsCAIU5nMznNXLYIpBlksmUyq0yBgIBBroDBAwQKCJAMrJIIiBDYJNBAoILBqoJBHIIaDJYIABJgIsBAAIKBAAI7CAgIJBHgNVqsrkgCBPAgwBAAMkDARYBJ5AAFGgcrFQOIAALBFEQQwBbQQ3BAASGCqokDLAwACToKfDAYRyCwQzBFYaODfAOl0q/BR4I1BL4IcDAYIyDmUOhw4DN4IABr1eLQJkDxGsAAWBLAQxBA4L3BYQQoChEIFAIABFAuCKoWIAYYqE1oAB2ez6+sxGrLwOr6HW63XBQOrFYQxBFIRRBEgglBFogqEFYQtC2YODGAWl1nQGQXWU4geBAYNeE4YXD0mBFIoqBJ4RpG1YwEAQOBvQNBZYQHBwI1EBIQABcAOsFoaOCSw4XFeIkr0mlwACBBYYgBCooSBbwIrDwOIB4oAFMAITC6GrL4N60gCBAgSFBRAQCDvUkkgwBruIw+CQIYsHXQQAHwGAF4YTB5+kMwgABqp0Cp+BNgwsEFpQABD4JdDFQgxCAgOAAYIwCqzgEQwgsLAAWkEAIACGIQ2DNQmkYIUrOIRaEFx/QXA4oCY4g4CFwSRBB4SJOX4wiBMIYpDFwhfCGAtPSYJeCACC5FLoYEDNQYJBSAcqAQNWF6oeBXQgrCAoIzBAIKQFGAeAdwIAQDwNVqt6vLeDLQYzDFwVWfAYHCCIYAOwAaEEwJbCLQSTC0krHwV6CwOkqqWBYgVWF5whCRwr1BMgQ8ECAYCBp8kFwIwCAQIvN")) diff --git a/apps/animclk/app.js b/apps/animclk/app.js new file mode 100644 index 000000000..451003d62 --- /dev/null +++ b/apps/animclk/app.js @@ -0,0 +1,116 @@ +var pal = new Uint16Array(E.toArrayBuffer(E.toString(require("Storage").read("animclk.pal")))); +var img1 = require("Storage").read("animclk.pixels1"); +var img1height = img1.length/240; +var img2 = require("Storage").read("animclk.pixels2"); +var img2height = img2.length/240; +var cycle = [ + {reverse:0,rate:1,low:32,high:47}, + {reverse:0,rate:3,low:48,high:63}, + {reverse:0,rate:3,low:64,high:79}, + {reverse:0,rate:2,low:80,high:95}, + {reverse:0,rate:1,low:96,high:103}, + {reverse:0,rate:3,low:128,high:143}, + {reverse:0,rate:2,low:22,high:31} +]; +var is12Hour = (require("Storage").readJSON("setting.json",1)||{})["12hour"]; +var IX = 80, IY = 10, IBPP = 1; +var IW = 174, IH = 45, OY = 24; +var inf = {align:0}; +var bgoptions; + +require("Font7x11Numeric7Seg").add(Graphics); +var cg = Graphics.createArrayBuffer(IW,IH,IBPP,{msb:true}); +var cgimg = {width:IW,height:IH,bpp:IBPP,transparent:0,buffer:cg.buffer}; +var locale = require("locale"); +var lastTime = ""; + +// store clock background image in bgimg (a file in flash memory) +var bgimg = require("Storage").read("imgclock.face.bg"); +// if it doesn't exist, make it +function createBgImg() { + cg.drawImage(img,-IX,-IY,bgoptions); + require("Storage").write("imgclock.face.bg", cg.buffer); + bgimg = require("Storage").read("imgclock.face.bg"); +} +if (!bgimg || !bgimg.length) createBgImg(); + +function drawClock() { + var t = new Date(); + var hours = t.getHours(); + var meridian = ""; + if (is12Hour) { + meridian = (hours < 12) ? "AM" : "PM"; + hours = ((hours + 11) % 12) + 1; + } + // draw time + cg.clear(1); + cg.setColor(1); + var x = 74 + 32 * inf.align; + cg.setFont("7x11Numeric7Seg",3); + cg.setFontAlign(1,-1); + cg.drawString(hours, x, 0); + x+=2; + if (t.getSeconds() & 1) + cg.fillRect(x, 10, x+2, 10+2).fillRect(x, 20, x+2, 20+2); + x+=6; + cg.setFontAlign(-1,-1); + cg.drawString(("0"+t.getMinutes()).substr(-2), x, 0); + x+=44; + cg.setFont("7x11Numeric7Seg",1); + cg.drawString(("0"+t.getSeconds()).substr(-2), x, 20); + cg.setFont("6x8",1); + cg.drawString(meridian, x+2, 0); + let date = locale.date(t); + if (cg.stringWidth(date) < IW-64) { + cg.setFontAlign(0, -1); + cg.drawString(date,IW/2+32*inf.align,IH-8); + } else { + cg.setFontAlign(inf.align, -1); + cg.drawString(date,IW*(inf.align+1)/2,IH-8); + } +} + +function draw() { + var t = (new Date()).toString(); + if (t!=lastTime) { + lastTime = t; + drawClock(); + } + // color cycling + cycle.forEach(c=>{ + var p = pal.slice(c.low,c.high); + pal[c.low] = pal[c.high]; + pal.set(p,c.low+1); + }); + // draw image + g.setColor(-1); + // draw just the clock part overlaid (to avoid flicker) + g.drawImages([{x:0,y:OY,image:{width:240,height:img1height,bpp:8,palette:pal,buffer:img1}}, + {image:cgimg,x:IX,y:IY+OY}], + {x:0,y:OY,width:239,height:img1height}); + // now draw the image on its own below - this is faster + g.drawImage({width:240,height:img2height,bpp:8,palette:pal,buffer:img2},0,OY+img1height); +} + +if (g.drawImages) { + // draw clock itself and do it every second + draw(); + var secondInterval = setInterval(draw,100); + // load widgets + Bangle.loadWidgets(); + Bangle.drawWidgets(); + // Stop when LCD goes off + Bangle.on('lcdPower',on=>{ + if (secondInterval) clearInterval(secondInterval); + secondInterval = undefined; + if (on) { + secondInterval = setInterval(draw,100); + lastTime=""; + draw(); + } + }); +} else { + E.showMessage("Please update\nBangle.js firmware\nto use this clock","animclk"); +} +// Show launcher when middle button pressed +setWatch(Bangle.showLauncher, BTN2, { repeat: false, edge: "falling" }); diff --git a/apps/animclk/app.png b/apps/animclk/app.png new file mode 100644 index 0000000000000000000000000000000000000000..63eac03e5ea382874275acb5595292d7ac4bac70 GIT binary patch literal 4797 zcmV;u5<=~XP)WFU8GbZ8()Nlj2>E@cM*01_cdL_t(&-p!e5jAci4 zfWNx8?*5j3@AW>@Gws4)&)Bne&-6_9>-FvXdY8(Ne!b1~*g%MsE0yl{Ro%L$PMve= zl$dy2DJ1|vC1;M5)J+rN%^6z-d@ld*ga`_iIv3}bkUf37e7B^rsh(>6(MCsw_~{sRlg7L$ zGq|{!+3#1e8wDD=WF=ogY8tYyZw!;VjeZUqzy0g~TV~sJCTNi>HE=x}!<4j2J!Bx( zhgm7Hss9`QvMCicP=%We%s^|1wo8>;8MWOItDl_F1|z&rH3?8u>uvh|0HNtfPYcly zMB0W5uG{Zun@S3$Zei9Z)fS@-#I|9Sw=-;O2eFe;0~Oiw&Kq-a%kwB92!&w0S7Bl} zO|epAemRflSjZt=Y_qTHRkVTXZR#TbTSg5CvBMkO%&foPo#_cds*oj>jB)1D9HW^b zTJ0_}rmgov2!T=?K5$@-#7#axh{1;#NLwK`RqghSwqc=mVbtJTZ^alo91Lqz>TMD+ zm*rfEu}l(a>o?he9p*sX>OFrFX49hVWOl9o7EB`YIprzNUav3|cR4@1$gw*nkx~qF zafc~T+wAg&KyJfqJl&1i9L2#ox=nbojR`ajtJxyes*@X^06-5Ff4cfz7K&9mU7udB zPq)`+YIF!`O0nbLcXQt2Ci%QsQ1GU~gZ37T5WMe=XUV+uEWT#a4HT6lr^!zrAig$B zsn%wtSfSQfSEEpcNK5Pzr?cIhZh5JjWBHAHwJq|zIhOxP7(4PgUd*!U#d*i^1ezA{ z+>f5dJnu64@H8`5YV03N^TR?F&o&W&9NXyBF7cES;QAeg=U!#;@Y_MtZxQRd4HsKK zyxS0otx#OtZg_+s6?SRV8;qwc`hJUVKX;ai(G>R{Nl>abF-=J?hzNs-;Z&SRDWqv` z%^?wO#Z?N}+gRg)CqK(lTd;cIZgAt9%=W3Uz0NJ6#b!98h=kbc^G!@7V6vP;1tF#j z^GkUixbqMzg$hf#0znWmnn|Le7*EAGv}c$L7w3_gfk>19rEdu&*{N~ryZ=DG6*9k& zBYp8K;=zYdVYC@DZ7oH&En@}&;dVv8d2Ei>Ww8zr8;s_ZUxF)c12@fC(pTyb7Y1R=vFO(T*9sEDbBE6B@laP`tG58pk)ORrxe z?mE<(UC=%DPYg3Vze3RM((rv^j?HSZ!s#RXkQr0lBCSw^y``%ZhKHy$+O)bIiqCzA zbW|JP4;f3@EUx7Vqli|whv&p`l4BIg4IBfmXV-Z2p?g?cE;2neh98D#qlRF_ zgi#YlOc*f*6G5FyqeHpY;>PkCLen|^u7_E8<$2D2?sJTqg0VrJje5f(V90MXYH6hX z4$RKds#ef~4x&@1Q(hzL)bKksw4lX^Xh5le)2gtPFC%ru@qI2M=>)EAkg;`A2^XVR z;KacRdi{`cwLv=WGLv27oj-qy)nXM*1R=s-FIu3`{0O-;L$TJP(e9$_I<^((mmm8W zN>ePIeS==1hzJzIj}U%@9zbwqj_Rc=P$=P! z9%gl=M77?gP^@tB*gno(THwTiNxt#y86G%!kh_lU=iAS|My1_B{KjV=R~zeTO@&O& ze22=?b>fKxYioI=l+>FoDxHX)udq#heUV|B3_bDz%#kUAFaS+QY_4Y`l;5FRTA>#P zOvPNBeve2u==D0BE}!MUUcA6>f8-Ach0cw|WlqIfNa^$1xhvdxc$#Xd&iHtm#X_0M zOp3*&JoC8%?|blGesJaj2d5{PUC1HZjT}NLdVUYfl$1yI<16UbOBA{xULuZ4C-5SH zo6MjkhOv4*I`uqVze!MCCQ=H7#MBi*7!n2nLI@JE1YxhsVxfo=PheXnh7<&K398FW zPkn*(y$^9B;q&~N*QgY$D529)A)Qtq%e9$XU8U>$JaguCe&McTeDwz}a&2)1&9m4u zHH=jKHbE3&SvG``YUThMChhLxzR=%hDp%rfKnKyMHCveyDfy! z@y!TjI<)FlgcYMt8{!E9KfrY@;`IWhK%jN%)K$o`Gt9&<-bJdD=Qn@ty`S$U4QavWk`*_AK>@<1VMk0<`D>8M@kcE7-)t>=*A%L z6QOBx5K3r7LQv^+F)SNx-~)2SJW|&!?{AJ=vWgMdp{u2LuzSX)`7+wI{xHuKpPjvu}Q@#v?% zpnMf#Dn+Z`qZ>q|QYm`9K6BaY1b%>sB0Se4R1s_W9IhL~uncU|!m%A(*C7#eNO~?q zom->w;;4X>je; z*C>`N2>B}?RHow*i^s7IiHH=Z4j&?B+l-H<@hl5J2)J`<&wAA0_d$b7yGJVSk?|}_ z^(M7?lhCk9$32psgOrlEWiaHqpgKTsHkAZDAJ;f8H!^n;KWuFP?x(q_-_FlncQ zTDgv1Z4uS0xTeYE^c2Z-8q0NYJr~1VZ$rNSz3)W|ofBgtj3*MPDCFM5lT^Dtg<6Yz zy~%Q^#*MWSdq)xsB|Vfhnd)99apNqyfLNu59|SC?k8u3NdytwUZd(Wex~>z2AyU_{ zgd*lx7*gkzxg{)&Zw}sMpRzKt*zoY7PVeLAZ>IMOQ{2l?%9Ks5|fBzWs%AH0%q7}wb&q) z^vIQJ{L?p{W?^ZK&wTSqQsbleK|rMG5Qg-E4y{gub|<9V?@_EPgds_q3Qq)>LL*Wk z2!YnjqskScPKYGHj6xF0IBTUc=PzBLR;$sd*Qr(;Gu z(CI^~A5mY;(y!%+WRi?(5rsW8r4a=_LO0O;E|CU$uaD?-QJRKfNL$e(i}BGEwrw$ceTjCbPcoUH@B5T04bGjPWpZMScHr~t58aQB#?{3f#ZsLs zU;iq{k4=+^r%;VN1R(l-2qScK9mAE8y7{SKfG?gD)TE*vS(ZL>RV- zWm%Y(g%^)uIu3?uVp{fk6gxNqKR{?2+qZjm?fGAmG~dMPzmbqGQa=Wf>bAWopj|7cbwSQf)A`cMKK6^wb!-u2HH~xck&m zdi?;)FzEDp#A6P*Y6U+CFr;K=bs1Y4G}khb^H*WZVzqHnyzc)@TQB3AXlg`HlE?&9eZfDJE$mP-`+8FU8mV>BMlSF zH1LCvJN8X*<@y5u_@7TRGBm_}NA@uk_t?K@6dgclv;&{de&un#^o6gG$qeCo4zBB= z>-ufe+)8cRcoDlp`tLmQj!)zYRhsQKwr%1$4tplYNF_abJ)gesV;Tlw6wzq3SX|Cy zI~LVy13w7KF0PPCC;9x>pW#n(d_}$67}=#YdSS%Z zo_&GuymF34yUl1aNwHq1*AFPys{F^Z&+&Jk`8@Snoo=_gqjWkQI-Snu_08|Q-7fzF XyIFCj-P>bJ00000NkvXXu0mjf37H@B literal 0 HcmV?d00001 diff --git a/apps/animclk/create_images.js b/apps/animclk/create_images.js new file mode 100644 index 000000000..8436d99b3 --- /dev/null +++ b/apps/animclk/create_images.js @@ -0,0 +1,57 @@ +/* Creates an image and palette based off of +an image from http://www.effectgames.com/demos/canvascycle/ + +You just need to open devtools and find the `CanvasCycle.processImage` +call, then create a file for it. eg. + +http://www.effectgames.com/demos/canvascycle/image.php?file=V29&callback=CanvasCycle.processImage + +Finally cycles just needs adding +*/ +var CanvasCycle = { + processImage : function(info) { + const IMG1_HEIGHT = 55; + const IMG2_HEIGHT = 240-(24+55); + var img1 = Buffer.alloc(240*IMG1_HEIGHT); + var img2 = Buffer.alloc(240*IMG2_HEIGHT); + var n=0; + /* img.writeUInt8(240, n++); + img.writeUInt8(240, n++); + img.writeUInt8(8, n++);*/ + var pal = Buffer.alloc(256*2); + + for (var i=0;i>3); + pal.writeUInt16LE(p, i*2); + } + + function getPixel(x,y) { + return info.pixels[(x+640-240)+((y+480-240)*640)]; + } + + n = 0; + for (var y=0;y Date: Thu, 28 May 2020 14:38:46 +0100 Subject: [PATCH 392/464] fix formatting using eslint --- apps/sleepphasealarm/app.js | 178 ++++++++++++++++++------------------ apps/verticalface/app.js | 40 ++++---- 2 files changed, 109 insertions(+), 109 deletions(-) diff --git a/apps/sleepphasealarm/app.js b/apps/sleepphasealarm/app.js index dbb91c23f..d54ae1307 100644 --- a/apps/sleepphasealarm/app.js +++ b/apps/sleepphasealarm/app.js @@ -2,7 +2,7 @@ const alarms = require("Storage").readJSON("alarm.json",1)||[]; const active = alarms.filter(a=>a.on); // Sleep/Wake detection with Estimation of Stationary Sleep-segments (ESS): -// Marko Borazio, Eugen Berlin, Nagihan Kckyildiz, Philipp M. Scholl and Kristof Van Laerhoven, "Towards a Benchmark for Wearable Sleep Analysis with Inertial Wrist-worn Sensing Units", ICHI 2014, Verona, Italy, IEEE Press, 2014. +// Marko Borazio, Eugen Berlin, Nagihan K�c�kyildiz, Philipp M. Scholl and Kristof Van Laerhoven, "Towards a Benchmark for Wearable Sleep Analysis with Inertial Wrist-worn Sensing Units", ICHI 2014, Verona, Italy, IEEE Press, 2014. // https://ubicomp.eti.uni-siegen.de/home/datasets/ichi14/index.html.en // // Function needs to be called for every measurement but returns a value at maximum once a second (see winwidth) @@ -13,124 +13,124 @@ const sleepthresh=600; var ess_values = []; var slsnds = 0; function calc_ess(val) { - ess_values.push(val); + ess_values.push(val); - if (ess_values.length == winwidth) { - // calculate standard deviation over ~1s - const mean = ess_values.reduce((prev,cur) => cur+prev) / ess_values.length; - const stddev = Math.sqrt(ess_values.map(val => Math.pow(val-mean,2)).reduce((prev,cur) => prev+cur)/ess_values.length); - ess_values = []; + if (ess_values.length == winwidth) { + // calculate standard deviation over ~1s + const mean = ess_values.reduce((prev,cur) => cur+prev) / ess_values.length; + const stddev = Math.sqrt(ess_values.map(val => Math.pow(val-mean,2)).reduce((prev,cur) => prev+cur)/ess_values.length); + ess_values = []; - // check for non-movement according to the threshold - const nonmot = stddev < nomothresh; + // check for non-movement according to the threshold + const nonmot = stddev < nomothresh; - // amount of seconds within non-movement sections - if (nonmot) { - slsnds+=1; - if (slsnds >= sleepthresh) { - return true; // awake - } - } else { - slsnds=0; - return false; // sleep - } - } + // amount of seconds within non-movement sections + if (nonmot) { + slsnds+=1; + if (slsnds >= sleepthresh) { + return true; // awake + } + } else { + slsnds=0; + return false; // sleep + } + } } // locate next alarm var nextAlarm; active.forEach(alarm => { - const now = new Date(); - const alarmHour = alarm.hr/1; - const alarmMinute = Math.round((alarm.hr%1)*60); - var dateAlarm = new Date(now.getFullYear(), now.getMonth(), now.getDate(), alarmHour, alarmMinute); - if (dateAlarm < now) { // dateAlarm in the past, add 24h - dateAlarm.setTime(dateAlarm.getTime() + (24*60*60*1000)); - } - if (nextAlarm === undefined || dateAlarm < nextAlarm) { - nextAlarm = dateAlarm; - } + const now = new Date(); + const alarmHour = alarm.hr/1; + const alarmMinute = Math.round((alarm.hr%1)*60); + var dateAlarm = new Date(now.getFullYear(), now.getMonth(), now.getDate(), alarmHour, alarmMinute); + if (dateAlarm < now) { // dateAlarm in the past, add 24h + dateAlarm.setTime(dateAlarm.getTime() + (24*60*60*1000)); + } + if (nextAlarm === undefined || dateAlarm < nextAlarm) { + nextAlarm = dateAlarm; + } }); function drawString(s, x, y) { - g.clearRect(0,y-15,239,y+15); - g.reset(); - g.setFont("Vector",20); - g.setFontAlign(0,0); // align right bottom - g.drawString(s, x, y); + g.clearRect(0,y-15,239,y+15); + g.reset(); + g.setFont("Vector",20); + g.setFontAlign(0,0); // align right bottom + g.drawString(s, x, y); } function drawApp() { - g.clearRect(0,24,239,215); - var alarmHour = nextAlarm.getHours(); - var alarmMinute = nextAlarm.getMinutes(); - if (alarmHour < 10) alarmHour = "0" + alarmHour; - if (alarmMinute < 10) alarmMinute = "0" + alarmMinute; - const s = alarmHour + ":" + alarmMinute + "\n\n"; - E.showMessage(s, "Sleep Phase Alarm"); + g.clearRect(0,24,239,215); + var alarmHour = nextAlarm.getHours(); + var alarmMinute = nextAlarm.getMinutes(); + if (alarmHour < 10) alarmHour = "0" + alarmHour; + if (alarmMinute < 10) alarmMinute = "0" + alarmMinute; + const s = alarmHour + ":" + alarmMinute + "\n\n"; + E.showMessage(s, "Sleep Phase Alarm"); - function drawTime() { - if (Bangle.isLCDOn()) { - const now = new Date(); - var nowHour = now.getHours(); - var nowMinute = now.getMinutes(); - var nowSecond = now.getSeconds(); - if (nowHour < 10) nowHour = "0" + nowHour; - if (nowMinute < 10) nowMinute = "0" + nowMinute; - if (nowSecond < 10) nowSecond = "0" + nowSecond; - const time = nowHour + ":" + nowMinute + ":" + nowSecond; - drawString(time, 120, 140); - } - } + function drawTime() { + if (Bangle.isLCDOn()) { + const now = new Date(); + var nowHour = now.getHours(); + var nowMinute = now.getMinutes(); + var nowSecond = now.getSeconds(); + if (nowHour < 10) nowHour = "0" + nowHour; + if (nowMinute < 10) nowMinute = "0" + nowMinute; + if (nowSecond < 10) nowSecond = "0" + nowSecond; + const time = nowHour + ":" + nowMinute + ":" + nowSecond; + drawString(time, 120, 140); + } + } - setInterval(drawTime, 500); // 2Hz + setInterval(drawTime, 500); // 2Hz } var buzzCount = 19; function buzz() { - Bangle.setLCDPower(1); - Bangle.buzz().then(()=>{ - if (buzzCount--) { - setTimeout(buzz, 500); - } else { - // back to main after finish - setTimeout(load, 1000); - } - }); + Bangle.setLCDPower(1); + Bangle.buzz().then(()=>{ + if (buzzCount--) { + setTimeout(buzz, 500); + } else { + // back to main after finish + setTimeout(load, 1000); + } + }); } // run var minAlarm = new Date(); var measure = true; if (nextAlarm !== undefined) { - Bangle.drawWidgets(); - Bangle.loadWidgets(); + Bangle.drawWidgets(); + Bangle.loadWidgets(); - // minimum alert 30 minutes early - minAlarm.setTime(nextAlarm.getTime() - (30*60*1000)); - setInterval(function() { - const now = new Date(); - const acc = Bangle.getAccel().mag; - const swest = calc_ess(acc); + // minimum alert 30 minutes early + minAlarm.setTime(nextAlarm.getTime() - (30*60*1000)); + setInterval(function() { + const now = new Date(); + const acc = Bangle.getAccel().mag; + const swest = calc_ess(acc); - if (swest !== undefined) { - if (Bangle.isLCDOn()) { - drawString(swest ? "Sleep" : "Awake", 120, 180); - } - } + if (swest !== undefined) { + if (Bangle.isLCDOn()) { + drawString(swest ? "Sleep" : "Awake", 120, 180); + } + } - if (now >= nextAlarm) { - // The alarm widget should handle this one - setTimeout(load, 1000); - } else if (measure && now >= minAlarm && swest === false) { - buzz(); - measure = false; - } - }, 80); // 12.5Hz - drawApp(); + if (now >= nextAlarm) { + // The alarm widget should handle this one + setTimeout(load, 1000); + } else if (measure && now >= minAlarm && swest === false) { + buzz(); + measure = false; + } + }, 80); // 12.5Hz + drawApp(); } else { - E.showMessage('No Alarm'); - setTimeout(load, 1000); + E.showMessage('No Alarm'); + setTimeout(load, 1000); } // BTN2 to menu, BTN3 to main setWatch(Bangle.showLauncher, BTN2, { repeat: false, edge: "falling" }); diff --git a/apps/verticalface/app.js b/apps/verticalface/app.js index 3e4650d18..aa6441e79 100644 --- a/apps/verticalface/app.js +++ b/apps/verticalface/app.js @@ -98,8 +98,8 @@ var secondInterval = setInterval(()=>{ Bangle.on('lcdPower',on=>{ if (on) { secondInterval = setInterval(()=>{ - drawTimeDate(); -}, 15000); + drawTimeDate(); + }, 15000); //Screen on drawBPM(HRMstate); drawTimeDate(); @@ -122,29 +122,29 @@ Bangle.on('touch', function(button) { //HRM Controller. setWatch(function(){ if(!HRMstate){ - console.log("Toggled HRM"); - //Turn on. - Bangle.buzz(); - Bangle.setHRMPower(1); - currentHRM = "CALC"; - HRMstate = true; - } else if(HRMstate){ - console.log("Toggled HRM"); - //Turn off. - Bangle.buzz(); - Bangle.setHRMPower(0); - HRMstate = false; - currentHRM = []; - } + console.log("Toggled HRM"); + //Turn on. + Bangle.buzz(); + Bangle.setHRMPower(1); + currentHRM = "CALC"; + HRMstate = true; + } else if(HRMstate){ + console.log("Toggled HRM"); + //Turn off. + Bangle.buzz(); + Bangle.setHRMPower(0); + HRMstate = false; + currentHRM = []; + } drawBPM(HRMstate); }, BTN1, { repeat: true, edge: "falling" }); Bangle.on('HRM', function(hrm) { if(hrm.confidence > 90){ - /*Do more research to determine effect algorithm for heartrate average.*/ - console.log(hrm.bpm); - currentHRM = hrm.bpm; - drawBPM(HRMstate); + /*Do more research to determine effect algorithm for heartrate average.*/ + console.log(hrm.bpm); + currentHRM = hrm.bpm; + drawBPM(HRMstate); } }); From 192ba32a5d9fa0d04daa6a2d017ce70770f7a367 Mon Sep 17 00:00:00 2001 From: Richard de Boer Date: Thu, 28 May 2020 22:32:53 +0200 Subject: [PATCH 393/464] simpletimer: make BTN2 really return to launcher (only while countdown is not running) --- apps/simpletimer/README.md | 1 + apps/simpletimer/app.js | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/apps/simpletimer/README.md b/apps/simpletimer/README.md index ebe54dbe5..426942034 100644 --- a/apps/simpletimer/README.md +++ b/apps/simpletimer/README.md @@ -15,4 +15,5 @@ Simple timer, useful when playing board games or cooking - Tap on seconds to increase them one by one - Press BTN3 to reset time to 0 - Press BTN1 to start the timer or reset to the original time +- Press BTN2 to return to the launcher (only while countdown is not running) - When the time is up use the [swipeleft](https://github.com/espruino/BangleApps/tree/master/apps/gesture) gesture to reset the timer diff --git a/apps/simpletimer/app.js b/apps/simpletimer/app.js index 0bd7992e2..8c8890af3 100644 --- a/apps/simpletimer/app.js +++ b/apps/simpletimer/app.js @@ -111,7 +111,6 @@ function reset(value) { state = value === 0 ? "unset" : "set"; } -setWatch(Bangle.showLauncher, BTN2, { repeat: false, edge: "falling" }); function addWatch() { clearWatch(); setWatch(changeState, BTN1, { @@ -119,6 +118,16 @@ function addWatch() { repeat: true, edge: "falling" }); + setWatch(() => { + if (state !== "started") { + Bangle.showLauncher(); + }}, + BTN2, + { + repeat: false, + edge: "falling", + }, + ); setWatch( () => { reset(0); From 4ab68eb4112bd86fba7dd39e894208f6d18cdd90 Mon Sep 17 00:00:00 2001 From: Richard de Boer Date: Thu, 28 May 2020 22:29:58 +0200 Subject: [PATCH 394/464] simpletimer: remember last set time --- apps.json | 7 ++++++- apps/simpletimer/ChangeLog | 1 + apps/simpletimer/app.js | 5 ++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/apps.json b/apps.json index 5eede9c05..9779ba5a2 100644 --- a/apps.json +++ b/apps.json @@ -1634,7 +1634,7 @@ "id": "simpletimer", "name": "Timer", "icon": "app.png", - "version": "0.03", + "version": "0.04", "description": "Simple timer, useful when playing board games or cooking", "tags": "timer", "readme": "README.md", @@ -1659,6 +1659,11 @@ "url": "app-icon.js", "evaluate": true } + ], + "data": [ + { + "name": "simpletimer.json" + } ] }, { diff --git a/apps/simpletimer/ChangeLog b/apps/simpletimer/ChangeLog index 3f8d98248..b9a839e7d 100644 --- a/apps/simpletimer/ChangeLog +++ b/apps/simpletimer/ChangeLog @@ -1,3 +1,4 @@ 0.01: Initial version 0.02: Reset with gesture 0.03: BTN2 to open launcher +0.04: Remember last set time \ No newline at end of file diff --git a/apps/simpletimer/app.js b/apps/simpletimer/app.js index 8c8890af3..041535998 100644 --- a/apps/simpletimer/app.js +++ b/apps/simpletimer/app.js @@ -2,6 +2,7 @@ let counter = 0; let setValue = 0; let counterInterval; let state; +let saved = require("Storage").readJSON("simpletimer.json",true) || {}; const DEBOUNCE = 50; @@ -61,6 +62,8 @@ function clearIntervals() { function set(delta) { if (state === "started") return; counter += delta; + saved.counter = counter; + require("Storage").write("simpletimer.json", saved); if (state === "unset") { state = "set"; } @@ -160,5 +163,5 @@ Bangle.on("aiGesture", gesture => { if (gesture === "swipeleft" && state === "stopped") reset(0); }); -reset(0); +reset(saved.counter || 0); addWatch(); From 631abb812e8acdce0cb15ee8947bff2c26acbbe4 Mon Sep 17 00:00:00 2001 From: Richard de Boer Date: Thu, 28 May 2020 23:27:10 +0200 Subject: [PATCH 395/464] gbridge: Add setting to show/hide icon --- apps.json | 5 ++++- apps/gbridge/ChangeLog | 1 + apps/gbridge/settings.js | 20 +++++++++++++++++++- apps/gbridge/widget.js | 19 +++++++++++++++---- 4 files changed, 39 insertions(+), 6 deletions(-) diff --git a/apps.json b/apps.json index 5eede9c05..8b950228c 100644 --- a/apps.json +++ b/apps.json @@ -95,7 +95,7 @@ { "id": "gbridge", "name": "Gadgetbridge", "icon": "app.png", - "version":"0.11", + "version":"0.12", "description": "The default notification handler for Gadgetbridge notifications from Android", "tags": "tool,system,android,widget", "type":"widget", @@ -103,6 +103,9 @@ {"name":"gbridge.settings.js","url":"settings.js"}, {"name":"gbridge.img","url":"app-icon.js","evaluate":true}, {"name":"gbridge.wid.js","url":"widget.js"} + ], + "data": [ + {"name":"gbridge.json"} ] }, { "id": "mclock", diff --git a/apps/gbridge/ChangeLog b/apps/gbridge/ChangeLog index f66040388..0676652c7 100644 --- a/apps/gbridge/ChangeLog +++ b/apps/gbridge/ChangeLog @@ -10,3 +10,4 @@ 0.09: Update Bluetooth connection state automatically 0.10: Make widget play well with other Gadgetbridge widgets/apps 0.11: Report battery status on connect and at regular intervals +0.12: Setting to show/hide icon \ No newline at end of file diff --git a/apps/gbridge/settings.js b/apps/gbridge/settings.js index 723c9cae9..1834aa052 100644 --- a/apps/gbridge/settings.js +++ b/apps/gbridge/settings.js @@ -2,10 +2,28 @@ function gb(j) { Bluetooth.println(JSON.stringify(j)); } - + const storage = require('Storage'); + let settings = storage.readJSON("gbridge.json", true) || {}; + if (!("showIcon" in settings)) { + settings.showIcon = true; + } + function updateSettings() { + storage.write('gbridge.json', settings); + } + function toggleIcon() { + settings.showIcon = !settings.showIcon; + updateSettings(); + Bangle.loadWidgets(); + Bangle.drawWidgets(); + } var mainmenu = { "" : { "title" : "Gadgetbridge" }, "Connected" : { value : NRF.getSecurityStatus().connected?"Yes":"No" }, + "Show Icon" : { + value: settings.showIcon, + format: v => v?"Yes":"No", + onchange: toggleIcon + }, "Find Phone" : function() { E.showMenu(findPhone); }, "< Back" : back, }; diff --git a/apps/gbridge/widget.js b/apps/gbridge/widget.js index ae7d0f8fa..987426022 100644 --- a/apps/gbridge/widget.js +++ b/apps/gbridge/widget.js @@ -1,4 +1,5 @@ (() => { + const storage = require('Storage'); const state = { music: "stop", @@ -12,6 +13,11 @@ scrollPos: 0 }; + let settings = storage.readJSON('gbridge.json',1) || {}; + if (!("showIcon" in settings)) { + settings.showIcon = true; + } + function gbSend(message) { Bluetooth.println(""); Bluetooth.println(JSON.stringify(message)); @@ -192,10 +198,15 @@ g.flip(); // turns screen on } - NRF.on("connect", changedConnectionState); - NRF.on("disconnect", changedConnectionState); - - WIDGETS["gbridgew"] = { area: "tl", width: 24, draw: draw }; + if (settings.showIcon) { + WIDGETS["gbridgew"] = {area: "tl", width: 24, draw: draw}; + NRF.on("connect", changedConnectionState); + NRF.on("disconnect", changedConnectionState); + } else { + NRF.removeListener("connect", changedConnectionState); + NRF.removeListener("disconnect", changedConnectionState); + delete WIDGETS["gbridgew"]; + } function sendBattery() { gbSend({ t: "status", bat: E.getBattery() }); From fa692c4d8e64bf22e399d92740ea3d3574290bea Mon Sep 17 00:00:00 2001 From: Richard de Boer Date: Fri, 29 May 2020 00:05:26 +0200 Subject: [PATCH 396/464] gbridge: Fix setting to show/hide icon Don't reload all widgets: just change this one and redraw --- apps/gbridge/settings.js | 6 ++++-- apps/gbridge/widget.js | 31 +++++++++++++++++++------------ 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/apps/gbridge/settings.js b/apps/gbridge/settings.js index 1834aa052..8df3f6ab4 100644 --- a/apps/gbridge/settings.js +++ b/apps/gbridge/settings.js @@ -13,7 +13,9 @@ function toggleIcon() { settings.showIcon = !settings.showIcon; updateSettings(); - Bangle.loadWidgets(); + // need to re-layout widgets + WIDGETS["gbridgew"].reload(); + g.clear(); Bangle.drawWidgets(); } var mainmenu = { @@ -35,5 +37,5 @@ "< Back" : function() { E.showMenu(mainmenu); }, }; - E.showMenu(mainmenu); + const menu = E.showMenu(mainmenu); }) diff --git a/apps/gbridge/widget.js b/apps/gbridge/widget.js index 987426022..db6963abb 100644 --- a/apps/gbridge/widget.js +++ b/apps/gbridge/widget.js @@ -1,5 +1,6 @@ (() => { const storage = require('Storage'); + let settings; const state = { music: "stop", @@ -13,10 +14,6 @@ scrollPos: 0 }; - let settings = storage.readJSON('gbridge.json',1) || {}; - if (!("showIcon" in settings)) { - settings.showIcon = true; - } function gbSend(message) { Bluetooth.println(""); @@ -186,6 +183,7 @@ }); function draw() { + if (!settings.showIcon) return; g.setColor(-1); if (NRF.getSecurityStatus().connected) g.drawImage(require("heatshrink").decompress(atob("i0WwgHExAABCIwJCBYwJEBYkIBQ2ACgvzCwoECx/z/AKDD4WD+YLBEIYKCx//+cvnAKCBwU/mc4/8/HYv//Ev+Y4EEAePn43DBQkzn4rCEIoABBIwKHO4cjmczK42I6mqlqEEBQeIBQaDED4IgDUhi6KaBbmIA==")), this.x + 1, this.y + 1); @@ -198,16 +196,25 @@ g.flip(); // turns screen on } - if (settings.showIcon) { - WIDGETS["gbridgew"] = {area: "tl", width: 24, draw: draw}; - NRF.on("connect", changedConnectionState); - NRF.on("disconnect", changedConnectionState); - } else { - NRF.removeListener("connect", changedConnectionState); - NRF.removeListener("disconnect", changedConnectionState); - delete WIDGETS["gbridgew"]; + function reload() { + settings = storage.readJSON('gbridge.json', 1) || {}; + if (!("showIcon" in settings)) { + settings.showIcon = true; + } + if (settings.showIcon) { + WIDGETS["gbridgew"].width = 24; + NRF.on("connect", changedConnectionState); + NRF.on("disconnect", changedConnectionState); + } else { + WIDGETS["gbridgew"].width = 0; + NRF.removeListener("connect", changedConnectionState); + NRF.removeListener("disconnect", changedConnectionState); + } } + WIDGETS["gbridgew"] = {area: "tl", width: 24, draw: draw, reload: reload}; + reload(); + function sendBattery() { gbSend({ t: "status", bat: E.getBattery() }); } From 855186f7c9289d4f3f53e0f053c38fb5f7b5de9e Mon Sep 17 00:00:00 2001 From: Richard de Boer Date: Fri, 29 May 2020 10:37:44 +0200 Subject: [PATCH 397/464] gbridge: improve settings handling No need to keep them in memory after reload() is done --- apps/gbridge/settings.js | 25 ++++++++++++++----------- apps/gbridge/widget.js | 23 ++++++++++++----------- 2 files changed, 26 insertions(+), 22 deletions(-) diff --git a/apps/gbridge/settings.js b/apps/gbridge/settings.js index 8df3f6ab4..9e2245e66 100644 --- a/apps/gbridge/settings.js +++ b/apps/gbridge/settings.js @@ -2,17 +2,20 @@ function gb(j) { Bluetooth.println(JSON.stringify(j)); } - const storage = require('Storage'); - let settings = storage.readJSON("gbridge.json", true) || {}; - if (!("showIcon" in settings)) { - settings.showIcon = true; + function settings() { + let settings = require('Storage').readJSON("gbridge.json", true) || {}; + if (!("showIcon" in settings)) { + settings.showIcon = true; + } + return settings } - function updateSettings() { - storage.write('gbridge.json', settings); + function updateSetting(setting, value) { + let settings = require('Storage').readJSON("gbridge.json", true) || {}; + settings[setting] = value + require('Storage').write('gbridge.json', settings); } - function toggleIcon() { - settings.showIcon = !settings.showIcon; - updateSettings(); + function setIcon(visible) { + updateSetting('showIcon', visible); // need to re-layout widgets WIDGETS["gbridgew"].reload(); g.clear(); @@ -22,9 +25,9 @@ "" : { "title" : "Gadgetbridge" }, "Connected" : { value : NRF.getSecurityStatus().connected?"Yes":"No" }, "Show Icon" : { - value: settings.showIcon, + value: settings().showIcon, format: v => v?"Yes":"No", - onchange: toggleIcon + onchange: setIcon }, "Find Phone" : function() { E.showMenu(findPhone); }, "< Back" : back, diff --git a/apps/gbridge/widget.js b/apps/gbridge/widget.js index db6963abb..622543d1b 100644 --- a/apps/gbridge/widget.js +++ b/apps/gbridge/widget.js @@ -1,7 +1,4 @@ (() => { - const storage = require('Storage'); - let settings; - const state = { music: "stop", @@ -14,6 +11,13 @@ scrollPos: 0 }; + function settings() { + let settings = require('Storage').readJSON("gbridge.json", true) || {}; + if (!("showIcon" in settings)) { + settings.showIcon = true; + } + return settings + } function gbSend(message) { Bluetooth.println(""); @@ -183,7 +187,6 @@ }); function draw() { - if (!settings.showIcon) return; g.setColor(-1); if (NRF.getSecurityStatus().connected) g.drawImage(require("heatshrink").decompress(atob("i0WwgHExAABCIwJCBYwJEBYkIBQ2ACgvzCwoECx/z/AKDD4WD+YLBEIYKCx//+cvnAKCBwU/mc4/8/HYv//Ev+Y4EEAePn43DBQkzn4rCEIoABBIwKHO4cjmczK42I6mqlqEEBQeIBQaDED4IgDUhi6KaBbmIA==")), this.x + 1, this.y + 1); @@ -197,18 +200,16 @@ } function reload() { - settings = storage.readJSON('gbridge.json', 1) || {}; - if (!("showIcon" in settings)) { - settings.showIcon = true; - } - if (settings.showIcon) { + NRF.removeListener("connect", changedConnectionState); + NRF.removeListener("disconnect", changedConnectionState); + if (settings().showIcon) { WIDGETS["gbridgew"].width = 24; + WIDGETS["gbridgew"].draw = draw; NRF.on("connect", changedConnectionState); NRF.on("disconnect", changedConnectionState); } else { WIDGETS["gbridgew"].width = 0; - NRF.removeListener("connect", changedConnectionState); - NRF.removeListener("disconnect", changedConnectionState); + WIDGETS["gbridgew"].draw = ()=>{}; } } From 03246fdc85fb209e9d23b061eba059b76fcb805e Mon Sep 17 00:00:00 2001 From: Richard de Boer Date: Fri, 29 May 2020 10:41:19 +0200 Subject: [PATCH 398/464] gbridge: minor fixes IDE kept complaining about unused constant & unsafe comparisons --- apps/gbridge/settings.js | 2 +- apps/gbridge/widget.js | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/gbridge/settings.js b/apps/gbridge/settings.js index 9e2245e66..d1ecb594b 100644 --- a/apps/gbridge/settings.js +++ b/apps/gbridge/settings.js @@ -40,5 +40,5 @@ "< Back" : function() { E.showMenu(mainmenu); }, }; - const menu = E.showMenu(mainmenu); + E.showMenu(mainmenu); }) diff --git a/apps/gbridge/widget.js b/apps/gbridge/widget.js index 622543d1b..9fe87be03 100644 --- a/apps/gbridge/widget.js +++ b/apps/gbridge/widget.js @@ -76,7 +76,7 @@ var p = MAXCHARS; while (p > MAXCHARS - 8 && !" \t-_".includes(l[p])) p--; - if (p == MAXCHARS - 8) p = MAXCHARS; + if (p === MAXCHARS - 8) p = MAXCHARS; txt[i] = l.substr(0, p); txt.splice(i + 1, 0, l.substr(p)); } @@ -109,7 +109,7 @@ const changed = state.music === event.state state.music = event.state - if (state.music == "play") { + if (state.music === "play") { showNotification(40, (y) => { g.setColor("#ffffff"); g.drawImage(require("heatshrink").decompress(atob("jEYwILI/EAv/8gP/ARcMgOAASN8h+A/kfwP8n4CD/E/gHgjg/HA=")), 8, y + 8); @@ -126,14 +126,14 @@ }, changed); } - if (state.music == "pause") { + if (state.music === "pause") { hideNotification(); } } function handleCallEvent(event) { - if (event.cmd == "accept") { + if (event.cmd === "accept") { showNotification(40, (y) => { g.setColor("#ffffff"); g.drawImage(require("heatshrink").decompress(atob("jEYwIMJj4CCwACJh4CCCIMOAQMGAQMHAQMDAQMBCIMB4PwgHz/EAn4CBj4CBg4CBgACCAAw=")), 8, y + 8); @@ -180,7 +180,7 @@ }); Bangle.on("swipe", (dir) => { - if (state.music == "play") { + if (state.music === "play") { const command = dir > 0 ? "next" : "previous" gbSend({ t: "music", n: command }); } From 7e87bd0c03ba4b012ac22067d91170096178234e Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Fri, 29 May 2020 13:23:20 +0100 Subject: [PATCH 399/464] add toast to log --- js/ui.js | 1 + 1 file changed, 1 insertion(+) diff --git a/js/ui.js b/js/ui.js index 47016e86b..859954e7f 100644 --- a/js/ui.js +++ b/js/ui.js @@ -83,6 +83,7 @@ Puck.writeProgress = function(charsSent, charsTotal) { /// Show a 'toast' message for status function showToast(message, type) { // toast-primary, toast-success, toast-warning or toast-error + console.log("TOAST["+(type||"-")+"] "+message); let style = "toast-primary"; if (type=="success") style = "toast-success"; else if (type=="error") style = "toast-error"; From 49d504a034ac3f631db538cdc6307e4dcb9de276 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Fri, 29 May 2020 13:27:27 +0100 Subject: [PATCH 400/464] Only upload binary files where needed. Assume utf-8 otherwise (Fix #463) --- js/utils.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/js/utils.js b/js/utils.js index 69dcda93b..4716c3f46 100644 --- a/js/utils.js +++ b/js/utils.js @@ -29,11 +29,18 @@ function htmlElement(str) { return div.firstChild; } function httpGet(url) { + let isBinary = !(url.endsWith(".js") || url.endsWith(".json") || url.endsWith(".csv") || url.endsWith(".txt")); return new Promise((resolve,reject) => { let oReq = new XMLHttpRequest(); oReq.addEventListener("load", () => { - // ensure we actually load the data as a raw 8 bit string (not utf-8/etc) - if (oReq.status==200) { + if (oReq.status!=200) { + resolve(oReq.status+" - "+oReq.statusText) + return; + } + if (!isBinary) { + resolve(oReq.responseText) + } else { + // ensure we actually load the data as a raw 8 bit string (not utf-8/etc) let a = new FileReader(); a.onloadend = function() { let bytes = new Uint8Array(a.result); @@ -43,7 +50,7 @@ function httpGet(url) { resolve(str) }; a.readAsArrayBuffer(oReq.response); - } else reject(oReq.status+" - "+oReq.statusText); + } }); oReq.addEventListener("error", () => reject()); oReq.addEventListener("abort", () => reject()); @@ -51,7 +58,8 @@ function httpGet(url) { oReq.onerror = function () { reject("HTTP Request failed"); }; - oReq.responseType = 'blob'; + if (isBinary) + oReq.responseType = 'blob'; oReq.send(); }); } From 889ed82de2e86fb123a8fbcdc4b3b0d2304e65b0 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Fri, 29 May 2020 16:18:12 +0100 Subject: [PATCH 401/464] ok so eslint didn't fix it --- apps/sleepphasealarm/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/sleepphasealarm/app.js b/apps/sleepphasealarm/app.js index d54ae1307..1f8bf92ae 100644 --- a/apps/sleepphasealarm/app.js +++ b/apps/sleepphasealarm/app.js @@ -2,7 +2,7 @@ const alarms = require("Storage").readJSON("alarm.json",1)||[]; const active = alarms.filter(a=>a.on); // Sleep/Wake detection with Estimation of Stationary Sleep-segments (ESS): -// Marko Borazio, Eugen Berlin, Nagihan K�c�kyildiz, Philipp M. Scholl and Kristof Van Laerhoven, "Towards a Benchmark for Wearable Sleep Analysis with Inertial Wrist-worn Sensing Units", ICHI 2014, Verona, Italy, IEEE Press, 2014. +// Marko Borazio, Eugen Berlin, Nagihan Kücükyildiz, Philipp M. Scholl and Kristof Van Laerhoven, "Towards a Benchmark for Wearable Sleep Analysis with Inertial Wrist-worn Sensing Units", ICHI 2014, Verona, Italy, IEEE Press, 2014. // https://ubicomp.eti.uni-siegen.de/home/datasets/ichi14/index.html.en // // Function needs to be called for every measurement but returns a value at maximum once a second (see winwidth) From c83ae5dc7ee86e3a151876ba9696fc9533bc3b97 Mon Sep 17 00:00:00 2001 From: Harrison Asmar <34726416+hasmar04@users.noreply.github.com> Date: Sat, 30 May 2020 20:05:47 +1000 Subject: [PATCH 402/464] Stops the face redrawing and using all memory Removes the clear screen and widget loading from each wake so it only runs the first time. Prevents the watch from running out of memory after approx. 3 wakes. --- apps/cliock/app.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/cliock/app.js b/apps/cliock/app.js index 20086464e..a94b7264d 100644 --- a/apps/cliock/app.js +++ b/apps/cliock/app.js @@ -5,9 +5,6 @@ var flag = false; var WeekDays = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]; function drawAll(){ - g.clear(); - Bangle.loadWidgets(); - Bangle.drawWidgets(); updateTime(); updateRest(new Date()); } @@ -42,6 +39,9 @@ function writeLine(str,line){ g.drawString(str,25,marginTop+line*30); } +g.clear(); +Bangle.loadWidgets(); +Bangle.drawWidgets(); drawAll(); Bangle.on('lcdPower',function(on) { if (on) From 48eea4cc578abd66dc5e7062ccbbd450f4587a28 Mon Sep 17 00:00:00 2001 From: Harrison Asmar <34726416+hasmar04@users.noreply.github.com> Date: Sat, 30 May 2020 20:20:12 +1000 Subject: [PATCH 403/464] Update ChangeLog --- apps/cliock/ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/cliock/ChangeLog b/apps/cliock/ChangeLog index 081a638f6..59f07c400 100644 --- a/apps/cliock/ChangeLog +++ b/apps/cliock/ChangeLog @@ -1 +1,2 @@ 0.07: Submitted to App Loader +0.08: Fixes issue where face would redraw on wake leading to all memory being used and watch crashing. From b08d8ce0f41789420e240cef46b449deffda7818 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Sun, 31 May 2020 15:06:31 +0100 Subject: [PATCH 404/464] gpsrec can now graph altitude & speed --- apps.json | 4 +- apps/gpsrec/ChangeLog | 1 + apps/gpsrec/app.js | 92 ++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 94 insertions(+), 3 deletions(-) diff --git a/apps.json b/apps.json index 75f010fcd..e96b19d63 100644 --- a/apps.json +++ b/apps.json @@ -317,7 +317,7 @@ { "id": "gpsrec", "name": "GPS Recorder", "icon": "app.png", - "version":"0.09", + "version":"0.10", "interface": "interface.html", "description": "Application that allows you to record a GPS track. Can run in background", "tags": "tool,outdoors,gps,widget", @@ -1826,7 +1826,7 @@ {"name":"animclk.img","url":"app-icon.js","evaluate":true} ] }, - { + { "id": "verticalface", "name": "Vertical watch face", "shortName":"Vertical Face", diff --git a/apps/gpsrec/ChangeLog b/apps/gpsrec/ChangeLog index 469671b38..489e2d366 100644 --- a/apps/gpsrec/ChangeLog +++ b/apps/gpsrec/ChangeLog @@ -10,3 +10,4 @@ 0.09: Change default GPS period to 10 (1 is overkill for most uses and makes things slow) Added RAM keyword to functions & other tweaks to speed up rendering Going 'back' from track view now doesn't load again +0.10: Can now graph altitude & speed diff --git a/apps/gpsrec/app.js b/apps/gpsrec/app.js index aeea18bc2..10aa0ebbf 100644 --- a/apps/gpsrec/app.js +++ b/apps/gpsrec/app.js @@ -129,9 +129,15 @@ function viewTrack(n, info) { menu[info.time.toISOString().substr(0,16).replace("T"," ")] = function(){}; menu["Duration"] = { value : asTime(info.duration)}; menu["Records"] = { value : ""+info.records }; - menu['Plot'] = function() { + menu['Plot Map'] = function() { plotTrack(info); }; + menu['Plot Alt.'] = function() { + plotGraph(info, "altitude"); + }; + menu['Plot Speed'] = function() { + plotGraph(info, "speed"); + }; menu['Erase'] = function() { E.showPrompt("Delete Track?").then(function(v) { if (v) { @@ -215,6 +221,90 @@ function plotTrack(info) { setWatch(function() { viewTrack(info.fn, info); }, BTN3); + g.flip(); +} + +function plotGraph(info, style) { + "ram" + E.showMenu(); // remove menu + E.showMessage("Calculating...","GPS Track "+info.fn); + var filename = getFN(info.fn); + var infn = new Float32Array(200); + var infc = new Uint16Array(200); + var title; + var lt = 0; // last time + var tn = 0; // count for each time period + var strt, dur = info.duration; + var f = require("Storage").open(filename,"r"); + if (f===undefined) return; + var l = f.readLine(f); + var nl = 0, c, i; + if (l!==undefined) { + c = l.split(","); + strt = c[0]/1000; + } + if (style=="altitude") { + title = "Altitude (m)"; + while(l!==undefined) { + ++nl;c=l.split(","); + i = Math.round(200*(c[0]/1000 - strt)/dur); + infn[i]+=+c[3]; + infc[i]++; + l = f.readLine(f); + } + } else if (style=="speed") { + title = "Speed (m/s)"; + var p,lp = Bangle.project({lat:c[1],lon:c[2]}); + var t,dx,dy,d,lt = c[0]/1000; + while(l!==undefined) { + ++nl;c=l.split(","); + i = Math.round(200*(c[0]/1000 - strt)/dur); + t = c[0]/1000; + p = Bangle.project({lat:c[1],lon:c[2]}); + dx = p.x-lp.x; + dy = p.y-lp.y; + d = Math.sqrt(dx*dx+dy*dy); + if (t!=lt) { + infn[i]+=d / (t-lt); // speed + infc[i]++; + } + lp = p; + lt = t; + l = f.readLine(f); + } + } else throw new Error("Unknown type"); + var min=100000,max=-100000; + for (var i=0;i0) infn[i]/=infc[i]; + var n = infn[i]; + if (n>max) max=n; + if (n 8) { + grid*=2; + } + // draw + g.clear(1).setFont("6x8",1); + var r = require("graph").drawLine(g, infn, { + x:4,y:0, + width: g.getWidth()-24, + height: g.getHeight()-8, + axes : true, + gridy : grid, + gridx : 50, + title: title, + xlabel : x=>Math.round(x*dur/(60*infn.length))+" min" // minutes + }); + g.setFont("6x8",2); + g.setFontAlign(0,0,3); + g.drawString("Back",230,200); + setWatch(function() { + viewTrack(info.fn, info); + }, BTN3); + g.flip(); } showMainMenu(); From 207fabeb1d2222a047c1db6ac9838e8ad0b18446 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Mon, 1 Jun 2020 08:40:46 +0100 Subject: [PATCH 405/464] version bump --- apps.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps.json b/apps.json index e96b19d63..09c7f9390 100644 --- a/apps.json +++ b/apps.json @@ -1024,7 +1024,7 @@ "name": "Commandline-Clock", "shortName":"CLI-Clock", "icon": "app.png", - "version":"0.07", + "version":"0.08", "description": "Simple CLI-Styled Clock", "tags": "clock,cli,command,bash,shell", "type":"clock", From 46121e60a0aa71ffb7aec3d5a7ecb975a2077c9b Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Mon, 1 Jun 2020 08:43:33 +0100 Subject: [PATCH 406/464] Fix `marked is not defined` error (and include in repo, just in case) --- CHANGELOG.md | 1 + index.html | 6 +++--- lib/marked.min.js | 6 ++++++ 3 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 lib/marked.min.js diff --git a/CHANGELOG.md b/CHANGELOG.md index 48bfe74ec..66dc20b5e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,3 +20,4 @@ Changed for individual apps are listed in `apps/appname/ChangeLog` * New 'espruinotools' which fixes pretokenise issue when ID follows ID (fix #416) * Improve upload of binary files * App description can now be markdown +* Fix `marked is not defined` error (and include in repo, just in case) diff --git a/index.html b/index.html index 480fdd2e1..f0f54c248 100644 --- a/index.html +++ b/index.html @@ -174,14 +174,14 @@ + + + - - - diff --git a/lib/marked.min.js b/lib/marked.min.js new file mode 100644 index 000000000..b9d0f20e6 --- /dev/null +++ b/lib/marked.min.js @@ -0,0 +1,6 @@ +/** + * marked - a markdown parser + * Copyright (c) 2011-2020, Christopher Jeffrey. (MIT Licensed) + * https://github.com/markedjs/marked + */ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).marked=t()}(this,function(){"use strict";function s(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[t++]}};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function n(e){return c[e]}var e,t=(function(t){function e(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}t.exports={defaults:e(),getDefaults:e,changeDefaults:function(e){t.exports.defaults=e}}}(e={exports:{}}),e.exports),i=(t.defaults,t.getDefaults,t.changeDefaults,/[&<>"']/),a=/[&<>"']/g,l=/[<>"']|&(?!#?\w+;)/,o=/[<>"']|&(?!#?\w+;)/g,c={"&":"&","<":"<",">":">",'"':""","'":"'"};var h=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function u(e){return e.replace(h,function(e,t){return"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""})}var p=/(^|[^\[])\^/g;var f=/[^\w:]/g,d=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;var k={},b=/^[^:]+:\/*[^/]*$/,m=/^([^:]+:)[\s\S]*$/,x=/^([^:]+:\/*[^/]*)[\s\S]*$/;function w(e,t){k[" "+e]||(b.test(e)?k[" "+e]=e+"/":k[" "+e]=v(e,"/",!0));var n=-1===(e=k[" "+e]).indexOf(":");return"//"===t.substring(0,2)?n?t:e.replace(m,"$1")+t:"/"===t.charAt(0)?n?t:e.replace(x,"$1")+t:e+t}function v(e,t,n){var r=e.length;if(0===r)return"";for(var i=0;it)n.splice(t);else for(;n.length=r.length?e.slice(r.length):e}).join("\n")}(n,t[3]||"");return{type:"code",raw:n,lang:t[2]?t[2].trim():t[2],text:r}}},t.heading=function(e){var t=this.rules.block.heading.exec(e);if(t)return{type:"heading",raw:t[0],depth:t[1].length,text:t[2]}},t.nptable=function(e){var t=this.rules.block.nptable.exec(e);if(t){var n={type:"table",header:O(t[1].replace(/^ *| *\| *$/g,"")),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:t[3]?t[3].replace(/\n$/,"").split("\n"):[],raw:t[0]};if(n.header.length===n.align.length){for(var r=n.align.length,i=0;i ?/gm,"");return{type:"blockquote",raw:t[0],text:n}}},t.list=function(e){var t=this.rules.block.list.exec(e);if(t){for(var n,r,i,s,a,l,o,c=t[0],h=t[2],u=1/i.test(r[0])&&(t=!1),!n&&/^<(pre|code|kbd|script)(\s|>)/i.test(r[0])?n=!0:n&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(r[0])&&(n=!1),{type:this.options.sanitize?"text":"html",raw:r[0],inLink:t,inRawBlock:n,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(r[0]):C(r[0]):r[0]}},t.link=function(e){var t=this.rules.inline.link.exec(e);if(t){var n,r=j(t[2],"()");-1$/,"$1"))?s.replace(this.rules.inline._escapes,"$1"):s,title:a?a.replace(this.rules.inline._escapes,"$1"):a},t[0])}},t.reflink=function(e,t){var n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){var r=(n[2]||n[1]).replace(/\s+/g," ");if((r=t[r.toLowerCase()])&&r.href)return E(n,r,n[0]);var i=n[0].charAt(0);return{type:"text",raw:i,text:i}}},t.strong=function(e){var t=this.rules.inline.strong.exec(e);if(t)return{type:"strong",raw:t[0],text:t[4]||t[3]||t[2]||t[1]}},t.em=function(e){var t=this.rules.inline.em.exec(e);if(t)return{type:"em",raw:t[0],text:t[6]||t[5]||t[4]||t[3]||t[2]||t[1]}},t.codespan=function(e){var t=this.rules.inline.code.exec(e);if(t){var n=t[2].replace(/\n/g," "),r=/[^ ]/.test(n),i=n.startsWith(" ")&&n.endsWith(" ");return r&&i&&(n=n.substring(1,n.length-1)),n=C(n,!0),{type:"codespan",raw:t[0],text:n}}},t.br=function(e){var t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}},t.del=function(e){var t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[1]}},t.autolink=function(e,t){var n=this.rules.inline.autolink.exec(e);if(n){var r,i="@"===n[2]?"mailto:"+(r=C(this.options.mangle?t(n[1]):n[1])):r=C(n[1]);return{type:"link",raw:n[0],text:r,href:i,tokens:[{type:"text",raw:r,text:r}]}}},t.url=function(e,t){var n,r,i,s;if(n=this.rules.inline.url.exec(e)){if("@"===n[2])i="mailto:"+(r=C(this.options.mangle?t(n[0]):n[0]));else{for(;s=n[0],n[0]=this.rules.inline._backpedal.exec(n[0])[0],s!==n[0];);r=C(n[0]),i="www."===n[1]?"http://"+r:r}return{type:"link",raw:n[0],text:r,href:i,tokens:[{type:"text",raw:r,text:r}]}}},t.inlineText=function(e,t,n){var r=this.rules.inline.text.exec(e);if(r){var i=t?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(r[0]):C(r[0]):r[0]:C(this.options.smartypants?n(r[0]):r[0]);return{type:"text",raw:r[0],text:i}}},e}(),L=S,P=z,U=A,B={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6}) +([^\n]*?)(?: +#+)? *(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?\\?>\\n*|\\n*|\\n*|)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,nptable:L,table:L,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};B.def=P(B.def).replace("label",B._label).replace("title",B._title).getRegex(),B.bullet=/(?:[*+-]|\d{1,9}\.)/,B.item=/^( *)(bull) ?[^\n]*(?:\n(?!\1bull ?)[^\n]*)*/,B.item=P(B.item,"gm").replace(/bull/g,B.bullet).getRegex(),B.list=P(B.list).replace(/bull/g,B.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+B.def.source+")").getRegex(),B._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",B._comment=//,B.html=P(B.html,"i").replace("comment",B._comment).replace("tag",B._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),B.paragraph=P(B._paragraph).replace("hr",B.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",B._tag).getRegex(),B.blockquote=P(B.blockquote).replace("paragraph",B.paragraph).getRegex(),B.normal=U({},B),B.gfm=U({},B.normal,{nptable:"^ *([^|\\n ].*\\|.*)\\n *([-:]+ *\\|[-| :]*)(?:\\n((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)",table:"^ *\\|(.+)\\n *\\|?( *[-:]+[-| :]*)(?:\\n *((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),B.gfm.nptable=P(B.gfm.nptable).replace("hr",B.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",B._tag).getRegex(),B.gfm.table=P(B.gfm.table).replace("hr",B.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",B._tag).getRegex(),B.pedantic=U({},B.normal,{html:P("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",B._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,fences:L,paragraph:P(B.normal._paragraph).replace("hr",B.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",B.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var F={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:L,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,strong:/^__([^\s_])__(?!_)|^\*\*([^\s*])\*\*(?!\*)|^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)/,em:/^_([^\s_])_(?!_)|^_([^\s_<][\s\S]*?[^\s_])_(?!_|[^\s,punctuation])|^_([^\s_<][\s\S]*?[^\s])_(?!_|[^\s,punctuation])|^\*([^\s*<\[])\*(?!\*)|^\*([^\s<"][\s\S]*?[^\s\[\*])\*(?![\]`punctuation])|^\*([^\s*"<\[][\s\S]*[^\s])\*(?!\*)/,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:L,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\?@\\[^_{|}~"};F.em=P(F.em).replace(/punctuation/g,F._punctuation).getRegex(),F._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,F._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,F._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,F.autolink=P(F.autolink).replace("scheme",F._scheme).replace("email",F._email).getRegex(),F._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,F.tag=P(F.tag).replace("comment",B._comment).replace("attribute",F._attribute).getRegex(),F._label=/(?:\[[^\[\]]*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,F._href=/<(?:\\[<>]?|[^\s<>\\])*>|[^\s\x00-\x1f]*/,F._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,F.link=P(F.link).replace("label",F._label).replace("href",F._href).replace("title",F._title).getRegex(),F.reflink=P(F.reflink).replace("label",F._label).getRegex(),F.normal=U({},F),F.pedantic=U({},F.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/,link:P(/^!?\[(label)\]\((.*?)\)/).replace("label",F._label).getRegex(),reflink:P(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",F._label).getRegex()}),F.gfm=U({},F.normal,{escape:P(F.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~+(?=\S)([\s\S]*?\S)~+/,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\'+(n?e:Q(e,!0))+"\n":"
"+(n?e:Q(e,!0))+"
\n"},t.blockquote=function(e){return"
\n"+e+"
\n"},t.html=function(e){return e},t.heading=function(e,t,n,r){return this.options.headerIds?"'+e+"\n":""+e+"\n"},t.hr=function(){return this.options.xhtml?"
\n":"
\n"},t.list=function(e,t,n){var r=t?"ol":"ul";return"<"+r+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+"\n"},t.listitem=function(e){return"
  • "+e+"
  • \n"},t.checkbox=function(e){return" "},t.paragraph=function(e){return"

    "+e+"

    \n"},t.table=function(e,t){return"\n\n"+e+"\n"+(t=t&&""+t+"")+"
    \n"},t.tablerow=function(e){return"\n"+e+"\n"},t.tablecell=function(e,t){var n=t.header?"th":"td";return(t.align?"<"+n+' align="'+t.align+'">':"<"+n+">")+e+"\n"},t.strong=function(e){return""+e+""},t.em=function(e){return""+e+""},t.codespan=function(e){return""+e+""},t.br=function(){return this.options.xhtml?"
    ":"
    "},t.del=function(e){return""+e+""},t.link=function(e,t,n){if(null===(e=K(this.options.sanitize,this.options.baseUrl,e)))return n;var r='"},t.image=function(e,t,n){if(null===(e=K(this.options.sanitize,this.options.baseUrl,e)))return n;var r=''+n+'":">"},t.text=function(e){return e},e}(),ee=function(){function e(){}var t=e.prototype;return t.strong=function(e){return e},t.em=function(e){return e},t.codespan=function(e){return e},t.del=function(e){return e},t.html=function(e){return e},t.text=function(e){return e},t.link=function(e,t,n){return""+n},t.image=function(e,t,n){return""+n},t.br=function(){return""},e}(),te=function(){function e(){this.seen={}}return e.prototype.slug=function(e){var t=e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-");if(this.seen.hasOwnProperty(t))for(var n=t;this.seen[n]++,t=n+"-"+this.seen[n],this.seen.hasOwnProperty(t););return this.seen[t]=0,t},e}(),ne=t.defaults,re=_,ie=function(){function n(e){this.options=e||ne,this.options.renderer=this.options.renderer||new Y,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new ee,this.slugger=new te}n.parse=function(e,t){return new n(t).parse(e)};var e=n.prototype;return e.parse=function(e,t){void 0===t&&(t=!0);for(var n,r,i,s,a,l,o,c,h,u,p,g,f,d,k,b,m,x="",w=e.length,v=0;vAn error occurred:

    "+le(e.message+"",!0)+"
    ";throw e}}return ue.options=ue.setOptions=function(e){return se(ue.defaults,e),ce(ue.defaults),ue},ue.getDefaults=oe,ue.defaults=he,ue.use=function(l){var t,n=se({},l);l.renderer&&function(){var a=ue.defaults.renderer||new Y;for(var e in l.renderer)!function(i){var s=a[i];a[i]=function(){for(var e=arguments.length,t=new Array(e),n=0;n Date: Mon, 1 Jun 2020 09:32:47 +0100 Subject: [PATCH 407/464] fix travis errors --- .eslintignore | 2 +- apps.json | 2 +- apps/verticalface/ChangeLog | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 apps/verticalface/ChangeLog diff --git a/.eslintignore b/.eslintignore index 544f416aa..550fbda3f 100644 --- a/.eslintignore +++ b/.eslintignore @@ -2,5 +2,5 @@ lib/espruinotools.js lib/imageconverter.js lib/qrcode.min.js lib/heatshrink.js - +lib/marked.min.js apps/animclk/V29.LBM.js diff --git a/apps.json b/apps.json index 09c7f9390..5eb039b53 100644 --- a/apps.json +++ b/apps.json @@ -1831,7 +1831,7 @@ "name": "Vertical watch face", "shortName":"Vertical Face", "icon": "app.png", - "version":"0.4.1", + "version":"0.04", "description": "A simple vertical watch face with the date.", "tags": "clock", "type":"clock", diff --git a/apps/verticalface/ChangeLog b/apps/verticalface/ChangeLog new file mode 100644 index 000000000..19d763698 --- /dev/null +++ b/apps/verticalface/ChangeLog @@ -0,0 +1 @@ +0.04: Fixed day being displayed From e9e9bf941aca623720b7aefcb68830e0f8981b66 Mon Sep 17 00:00:00 2001 From: Michael Bengfort Date: Mon, 1 Jun 2020 15:53:28 +0200 Subject: [PATCH 408/464] correct string position --- apps.json | 2 +- apps/metronome/ChangeLog | 1 + apps/metronome/metronome.js | 6 +++--- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/apps.json b/apps.json index b478a8f69..00231a835 100644 --- a/apps.json +++ b/apps.json @@ -1403,7 +1403,7 @@ "id": "metronome", "name": "Metronome", "icon": "metronome_icon.png", - "version": "0.05", + "version": "0.06", "readme": "README.md", "description": "Makes the watch blinking and vibrating with a given rate", "tags": "tool", diff --git a/apps/metronome/ChangeLog b/apps/metronome/ChangeLog index 909d6b983..894d62940 100644 --- a/apps/metronome/ChangeLog +++ b/apps/metronome/ChangeLog @@ -3,3 +3,4 @@ 0.03: Uses mean of three time intervalls to calculate bmp 0.04: App shows instructions, Widgets remain visible, color changed 0.05: Buzz intensity and beats per bar can be changed via settings-app +0.06: Correct string position diff --git a/apps/metronome/metronome.js b/apps/metronome/metronome.js index add6fee16..19509f338 100644 --- a/apps/metronome/metronome.js +++ b/apps/metronome/metronome.js @@ -56,8 +56,8 @@ function updateScreen() { } catch(err) { } - g.setFont("Vector",48); - g.drawString(Math.floor(bpm)+"bpm", 5, 60); + g.setFont("Vector",40); + g.drawString(Math.floor(bpm)+"bpm", 100, 100); } @@ -105,7 +105,7 @@ setWatch(() => { interval = setInterval(updateScreen, 60000 / bpm); g.clear(); -g.drawString('Touch the screen to set tempo.\nUse BTN1 to increase, and\nBTN3 to decrease bpm value by 1.', 15, 150); +g.drawString('Touch the screen to set tempo.\nUse BTN1 to increase, and\nBTN3 to decrease bpm value by 1.', 25, 200); Bangle.loadWidgets(); Bangle.drawWidgets(); From d9442f2fd077eba216abda3ccd41a8e766e1c3aa Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Mon, 1 Jun 2020 17:04:55 +0100 Subject: [PATCH 409/464] locale: Improve handling of non-ASCII characters (fix #469) --- apps.json | 2 +- apps/locale/ChangeLog | 1 + apps/locale/locale.html | 69 ++++++++++++++++++++++++++++++++++++----- apps/locale/locales.js | 52 ++++++++++++++++++++++++------- 4 files changed, 103 insertions(+), 21 deletions(-) diff --git a/apps.json b/apps.json index 5eb039b53..f098e1351 100644 --- a/apps.json +++ b/apps.json @@ -65,7 +65,7 @@ { "id": "locale", "name": "Languages", "icon": "locale.png", - "version":"0.06", + "version":"0.07", "description": "Translations for different countries", "tags": "tool,system,locale,translate", "type": "locale", diff --git a/apps/locale/ChangeLog b/apps/locale/ChangeLog index 3d983150d..8338f9f84 100644 --- a/apps/locale/ChangeLog +++ b/apps/locale/ChangeLog @@ -6,3 +6,4 @@ Add correct scaling for speed/distance/temperature 0.06: Remove translations if not required Ensure 'on' is always supplied for translations +0.07: Improve handling of non-ASCII characters (fix #469) diff --git a/apps/locale/locale.html b/apps/locale/locale.html index 21bf37f29..645d6b2db 100644 --- a/apps/locale/locale.html +++ b/apps/locale/locale.html @@ -1,5 +1,6 @@ + @@ -12,7 +13,7 @@

    Then click

    - +