From 08cf3e1462f98cfc09362b5845f71cb528d756d0 Mon Sep 17 00:00:00 2001 From: Sagi Dayan Date: Sat, 26 Sep 2020 23:18:34 -0400 Subject: [PATCH] Player movement tweaks and a Goblin - Player now has an attack move - Player wall jump more refined - New Enemy superclass for patrol type enemies - Goblin enemy. - Player abilty toggles. Can turn on/off wall_jump/attack/dash [WIP] --- assets/Enemies/goblin_spritesheet.png | Bin 0 -> 1801 bytes assets/Enemies/goblin_spritesheet.png.import | 34 + assets/SplashScreen/Title.png | Bin 0 -> 8109 bytes assets/SplashScreen/Title.png.import | 34 + project.godot | 14 + src/Actors/Enemy.gd | 114 ++++ src/Actors/Goblin.gd | 37 ++ src/Actors/Goblin.tscn | 562 ++++++++++++++++ src/Actors/Player.gd | 77 ++- src/Actors/Player.tscn | 600 +++++++++++++++++- src/Intro/Intro.gd | 5 +- src/Intro/Intro.tscn | 122 +++- .../LevelTemplate/LevelScreenTemplate.tscn | 36 +- src/Levels/LevelTemplate/LevelTemplate.tscn | 15 +- 14 files changed, 1585 insertions(+), 65 deletions(-) create mode 100644 assets/Enemies/goblin_spritesheet.png create mode 100644 assets/Enemies/goblin_spritesheet.png.import create mode 100644 assets/SplashScreen/Title.png create mode 100644 assets/SplashScreen/Title.png.import create mode 100644 src/Actors/Enemy.gd create mode 100644 src/Actors/Goblin.gd create mode 100644 src/Actors/Goblin.tscn diff --git a/assets/Enemies/goblin_spritesheet.png b/assets/Enemies/goblin_spritesheet.png new file mode 100644 index 0000000000000000000000000000000000000000..4ff997efb8ab1540b4c6e4da22b6a2620a9539b9 GIT binary patch literal 1801 zcmV+k2ln`hP)uR4D>U;UYzFJ-puUGd-JA;h{*GNB|a;P zqSq9?FPe~F%gjfBJkM9pmwh~a^tgQX?}z{JZf~LG!Plvxr^?a=`S)!FK%TEC0*JH# z@buARJpTY-Q%1$-=;R8wubwIC`9^eI{+a<{~0DG@Lt?|G@ufW-Ogrn07C;G0* zFC76s0<0UAud@EI@_e3M0ssyVZh-Mf+4!O;dU>9&#CoapU6a3N0AB$_n$M=6008bL zgZ0CM8xxrqeb?kyegk|3m}i&k#!lD2S+AtRm!9!RU4EqjTm{JUe6|1L7KaBnR1z@zSEC4Kz&oLX10MM3=j9vzc;=3k)Wd!gH zW|IMc>-CEb!{7e?gS-iuE;h6q;cc-0;6R|SNiXXP1>tUtt8 z-=9^=eD}jQs;WCDf6V~C3h-^w8*qoJ@cPIfnx2PFe&s5NXGB$iN_d;qODMR=Ulc_T8znNC%jc1xGytze8{wtpB~CFD z4+dF}qR{i5!A61Fb`WXBj;P}!or0R~ttz<6(`Gwt>sHQX;%qnEaZo{iQrAj0V3l`ub9D=CW1Gq z2Z*#GN#Ed#3bFY&RR>=W4;y~UWvFj(#e~@WW7Uy!Cnii;I62{Th138c&)B!YKXx5! z!`77#)U$9*FnUAz;L6=(pgj5OirD-^*HIKjZ#Ev`=;R86(+ez*&ue9PqnHeAOwjO6 zl4z5EtU5xDE~x=RB}u3dn?JPp7HatfTMAYMS8A@z*Cwo*x~;q2wF{7+}U6YD@WpdLXN4O>eD z+31O{KZm?CXcII-BuVHX?Qt*VWhp(L#9srO9E8xul@2kVGx8>=&d{^^LQQc#c?Krl zzTjohu7boyq#lsb88;Mk{9W{;H2^;XVl*r!|JVT~+3b+@hsL`oL}(*oj8Uke*A#!T zCx+n9pZf>uQ?P3t(WVnopp>VsHlaOe%m22yX9uWyAzj?R+hRb{Ie(jriYV@1z&wOi z^;0~IGJdHVu>1zp6xhEnB=hje8dUmO1lKR)fyJV-tCrE17ab|;*U?Mc0op}PZ9$r# z;i^FKmMGpi_2%spU@|b~2nFEZB?Ql-j+`&dYvmewdn_tOhKxQ80rRy!8eBBO0Uc4 z@eM!5K*a!elYv(dhHtd(MN1**d4vuk#X@BY;=O$`*d}QMZkH{&(woYp*82g;6vP|B z^@IXX?*do)7*Vj;s2$AGjQ|RK8yte3{dED#luPlMO^)tgUw>Pp|NNJqlI?|ULYYx6 z1H}k3kn&mn7$_TNlL0O>gii4yRE9|XEPo6b?}}&wA@2O|D$0+r?}bIwIbKzc zdfND*A&C*tM7}_(Fy;p|jcvQ^DJcVN<7H1)Q;_d{J+^xR=D$zXl^g33T!z6RxF>@JcMl%m zk@t4b?ta;K_RDsk`=z@2cHORD{p*~HR8^M2fsjD}0054htfV>s0Q~*5pkVYTi&{pn zB>;dw<)fkFrf%X%?d0NUVQptl?dI)dPHpaGZ2h#B|G|{+MyY&qyBGKR zw#@Ph;r`v-r-M6#+Y7(niQ@|+-<)3NKI^}wm|pX{JH%QsExO;o;p!9~I^UNzqVij* zy&g>G-`+MiHlE4h`d4T+TSVr*^+aiNzbV>tpNju9AUs!PMl4Bry*%N2 zvIcE{>rIB(&0mgBp`9&moz+R6B_W=BzE!9jshj>(rhf%QJ5g`$46gnEbef*r{ocNC zm%1@{dFMHIn;Q_1%*A*Ny)F$Ljw9VP60u5|qDncx@I6kyLRz|4c+es{Sy{u5cdk8~ zoe0j(;B($MpU95~d@*ZCwKWo43;IVD5{neI9AtU3>!*}1V>6Oi=Ip$kMs!`hw=GC@ z>k@J`$~&h1SEwY46ZtDT2fIB|^)GbR+D6R=0s~&vHf%r%LOCebogY5?cwmS3JM$b6hAmSfz%Z z$A3#=3MI8o(Y4IuIamo;ubuv+jnR?{+A>% zH?@f849nTytHeFd^COv%EEh+z?`?$Vfs$um8twZWERBrcDD55&QVvU#a4YdTHDfwS_`jT^*IO-~#h_FG(Y(!lVcvWQS!>E z?_GNCqf7rrXHbj#Wx42Lm~@RkJx9v0x2#xM8M5(HV_(2L+5npTivgc~Vl}SEQ;ZV5_v?X>LCZ72@Bn^56RYXO0_`rDLNJ?`3B2_H4&( zj?ct-*nxIuAR))k|JP}~9;St$A6w~kS-iT;5iFqk6{h-j;~NLvdy*^(m>PC6T1oRB=ygv?hX1vl?7d2)7pa4>wN zMrrt>HQlCcgs;?n2-)U#XSKM19KMgcc%IY~8&9BU+|VCXASAGkDS*PO{o-4YM(PNZZL45c4)J;6%DUu z?DIiy`f(6i0Q^{A&oEM?Qf^{KZNp!KHU3B$Lk2(H@(F7EU{>aJ9J3Vo+#%!Zr0(*& zR^062pSv0A{n+*4gNOdK)>EfJP4Hb_Vx^_VkHDQb< zjUcM~5Sm$rxt%8WkLEx8-X$x^G42idxs~`#Op5n!zZnJNnlsN7iHl&KFlq9Ny^~O< z1H0mUMT3-RyF*cyLk#J6{l8u4aE21`=nFBj?Dt14iXVR zB#SlHjNR?D1XEl0poEu!x-7>MeF^$>NX--JbvH$*q&iK&w;_HP1`egdBosa+^h9y8 zt}Hy8xyh_N&m1MTDbQuL9LwknYl6?{O4AX`EL<3x-sFeRvcN<$V0C@SGMZj(5L2~u zzOnLtDCKojy+hOQ5IWTD&AD;7uqRaZ#cUztbE&Gf3}x!Pr9+h zXNE(uAOd&JTAUrPgnKtZxjRAOL$TCkygcsUhwKo%wp#khTEHaw=r+aupVf|Dg_dXj zMl*PbTilS2nD^HCa1iL#AQQo_H2cXpx_F6g+I+G~bcCWdXRoFMXljSi%2DlNO&aYb z-pDIvRlY=c@3negJOn(?xs!UTxLp|th;O;0{f;DO7MufY`0Y-;4U#_y@k`~I#}uwv zSSKYvkl3sIqXs(RAf1^PFDT=3 zzDkv{6DJN5OcZv@WQPTqYDW;raou4ydC9id@i&}Z5vgAj6XyxB?iPJc0}}BYzwYLp z1R`uOuBZ)W+q)x@gQ}QAA+LHWh~28UOJW~47ErNk4=uZEh^W`)1!@;$#{gWMn=dz4 z@n#pihcTJ53AiUH=h1DSm9-2nXfyvnE0D3mRf(2GlOZeRi|Cp8fRl&ue!;KBOZnL3 z4e1NDiV6BEbj}|RC;R#hH2BRN$BG2=8>$N<44)fe9I!NFJ?1r4d0fzSXqp%;#bzQr zQ2$THe!i7cSf_0hy@-ooyeYQBjB%u-Htn#s+`nSA9)|llWsyaM_IV-Po z%qeA**`T3%$;IlwU1Ss4=qZ@kwZ;Hj3FhCfRYj6~VQ!6apBluXrm(hP==IbBdjeq9 z#mNsGP9>s&p&ASW#PO@I3uARjpy0&%XDP4&QNJIB`@6DG$%$|Df(Hsj?FDMGtH*^N z*S5rU5m6{+o1YJC<@Ho*?Sp8Je&F>j-)s7F0;yvPVQrC=K?XE|bBtY;&WW+5aURly zSmu39ggAlfJ$$-&SSK!YP)zTzXdtfYpCTO=n&1hynqAsrsx3)UCnq8vPr~r8DaIdH zvh;wTVKH>>XgGzX3z43b#(F0pQstlR?}x4EnTfz$?I`xi>HcvjA#|f@@2RWu7K3bj zJ2@g%^JH@aKReAknFmoAzj2|tB`?2IiCd-eKRL&9g*Z|ocSJdB=$aIIylU*shfYjH zd-O*zmyHoXcdU;aI=yWlZB`X2cCj$aZQ7beBT3FMdqt(zdAW`1-aCp)(>$M)$UKw2 z&Od-AC|H}bE|}7VW^@qxO>T72l7qVfb%x!z*3u^xL9|5M07U7c zN$F1MU-cc>AW|@^OGx(Oz0}p^wO1GYqmJFEaIRoDrKyA8k*;Z00qunQ-2wu)cytU< z4UV_1-rJ@^7+$grIFs40CBK~LLI=@m(H2BAcv-mVDU~R)JtjAvQ`bsE^FBq#tYa&q zEf!Ze(vUnH^;HWf(xNUZr9|)fe^Zo|1!3{)PRl(P+c{h#@(+Q^tTTuZT0-Ak;ku-E z>US3}WIbtdS27~}DZTIvyZ_>+bK+x!iQ=LIt+XkjD5#!WsJ z#AFs@_*-Ov*an=Y#6WNapuINJ_X;%F*aX{AQjR|^+QM}US8L8t4oihx2fe{u&e%%@ zoY5mzOx`&CSpcnl69C0rtreN_dgYb!;N5G`qP&<;ZN_MWf>rt0>BjUV0r|g#Si{5v zUk=dXic_l%}@m!UTs9y&Gw-44oNYNRg-VT6n%e1Hg1YtUXeRoLdqN4-iA&=2{N2&Ogh`N*_wlA z`@VXgLLn`s!10eF0F%lY-0mdo=v_toux$b-VQQ8S9+Ms;Xs2>y?=0`4R+k_QHVZI^ zv$5YNw4*i?P|yILLsT{UP=_=5wxfKkI{{tqj>aDJxgHq1nas8ND>Eus*%@d?8=IPi z>>?YR*I`GbaT?Tz<|A-e(G1iT7z5M3@3!TA&g}k@r2{NqhuFaeESKk!1PFcA~rVF zj@ocNjcs~eL^UL{O=g9OnVXp6jJWc>rwCf_&uLSZ4vdpQ(>zIvN^wpxl|G%p;I9x^ z{2E0tIL=#;LT0r-ULf?AKewr)TmhX4S0|fhck_%-V=Sswek4ZVncow+Cn#D67R_ls@yAqmKp;uiZ9vk27O!2>S0GN_47_ z%|v^PwKRkW?u#LU=b~a;LNJAx{Q z_2)daujMUgUmZzdSlI@cBnY4jQ$fF_9V@R=q5Ujw4wnINVtJ{@XSRy5J+q_x?5~Jj zaL#2F(aH z;B05-XvdAKgaHII2FreI2_%FUuPSi*mC3C9!hm!Xi3+3y%hN%~4oQxj2il+)&7=2d zEcTxPDmfZd9M?xvmxOpsZi!LS$>rqUl3JtuEcY$HzW&rmNEfroM<0ptLW^;%dZqxf zh<&yD{3!U>NmX@Fq(#94eYjo|+m8`hd|*I(NOb?%UuDWLDyE&Qbw=ongay-|?;<(I zgGXAzS|gQSGEo=rQhhHrC-j~vVs@Z8J&u)qt>~~keP`#>@7MMmhS5`T{H#jyOHY|5 zg}ql>Y3gk-_?rdYY{-6yC(z!z3*StA9fADYPVt6Sot z9%|*9%9!r6d%xd?`m0=$;=fh(WhLPm`u;Gj$(nqrAM$V_(o{Mk?t*eL{WnAJAZM%J z#rEUyVd{vZ+r(l!>y3uLEz|hzDDE&afoilh8RwmlWAt_#f~P z1@WFPd6^~qwBrUr$}Zt$>8MpiD^8EvN=T4lc$nDns^09;B@5o|&upvL5oT|ard}w( za^lnV&ORWv?D(&+cpFG(nx<}2Z%RraO0vuozw1>aPS`$4IgBZikQowX@D}gER=)c%JQ(&K!g`EK1Y(b+E) zAyZvB&w{5Psfe9R6Znz~+<4=C1$But_2|&tv}Tn-M==&G=#;P18<$!%ihsQryFIDx zkq&x|_7ZmUnfmi!?o~U^QE3iUhSF`2C}+UdwiSB7%_9hq(M8n^oHuP5zu@~zgMZAt z7rx2Aaszn~F-F|T3I>$)Tt9oYQn)(*iMPMg4LjhX`!SXOY&%k>I{*Y4|8ud?@vZ4; z)D>baA)zWKA@M(_TTe5sEdMX>WP3y@`i$NevnE45;@9Hy-|8~6u6@;H77tZrtKTzr z*(K(&mQ~lMK${N=ri#+UAhtAkp^qkZ0_q)_l$(^2|7-NY3U9s3S!8+1cd-K$A{}b2 zr9v^`wxGyF@R6^H72R+$4lEu)N6kH)mRLk6G%)|p&#xou^yRT@K&%+A<0}Lc{`l*j z`bhqWQhxj3b7AMSWV7V!EU(2PEPN3c1M5@r?Sf&HaqP_WKSIuFIxjuGP4!ip+4R2e zRnweiF&b>t*=+CAt(eid%lRAH)ef&4anGQW{fMU!Pc1HnW3FLLCtacZIh5y+N$4-$ zJm(h$8g0^O3aqc^`U=je$}7u_XthJQ>G+sqeRTzL+Hfg>7F4!84IR-xD#%Cz9{=5W9i@p+7EC8u zT~`1Ai{Re^0y45lo{Si7a!OJd8<^xE5NQ}DY9Igr8Ih9|)9^wbE-6JAY`(zwZPc5M z-5Xj#xbPN;N4x|cDnJVs$7lUSA5~dI;+ZZNl91BuQbrrWOF(R3#>T2#tl@$|2V63{ zjI8G(sC`2#FV{=&k;;+K=Tt$h6|vOUxA-5m`VjuYNTPIR@M)#_1Q4d`xKt@SD_dB}P{KQ=?ecRRpt}87v#DFpw^`6{OQJ}tg4YB*2;I!qlm;yG8!?Xm6*st3)pkP12B44t(8n39 zkY)@+b~3lOY6+HPK2-y*=Oy_IRSY+}&zgYleWYCA6|IooH-ZU%yi)e_E5LSb1AYT- zTm*O}FtnG)WHK4)QB_S13pD&|3JPB5Hb!nAY?@j4p4MG0D=+(%z4P~fJRTaS;xN3t z85pXzpKkKrxG=ksKCRo=PJG8b+ZhL9AKrz}5TSBSlm*xs1N4K!azDt|sgV9Nfid0D zfY=?i@n(8m60(0+9_UMxfT&y=*1|(_=4m@+^sYn=4g9mCnAj*JI}I(L7YMp*W83nq zbD55*IuCl1HzvOAF0|KXwKwb81D`g!%3O)1@%cWZr#>CoZaDv&38De5?6rvCe%PayyRVI~YiF=13#40pGajE3jeX?#>Gl9@)yepGbsRmIg$u>fEm z*=U@0bv5Q=bFnMMqpvM(Gv6tYmsNZ>f|ZDSp+QPY%-p3%HU`R@S7 z`G<3tX@0>&rN&Gy<1GZBM+VnK(<4}A3jywEUOVvp%)mCH!6tW#!v~0-A8DdkA^wx% z-CR#+0fF|m+lQ=xqPNfsLO^2kE z;;qN|EB0x;AZ}y8Q<`A_^na&$D#w30H+}LDF@G!mUlnS+J`#cIx%za@818OjR4xSl zU1D?+uzVAr2k-_I25s{(|68{||D)k%eRd=K)uG{?;iwn@eQn)vJ*mK+D3Huuu z6{cL2Dl}BAle`{+vlu!`ZA@$^^Nx;bmWX&R1a7?_7wfQZApdxM>Fyu%VJ??rwmQ~S zR`Us}UkTYZbb|91x8G~JPnHJ%)6M1j(*A#Qn_U(Bi3^w6LixvA5a$1?vyGFZy}R?} zg`rGNrIjt)sG*$g@g^3ajXLJ#}z%^3$?Uy*#_b?_f^)zuGfWghMn5{x(Zxd{>j zpHuIh7`)FO#AKrXE4f_Q9AXj|S_vbp5-c_J-g#Z~dI7G}#B$5l*7g}k`{_ZQFFLBI z&gGPmW@t}Z`zhr39B0n4`nRJ()2BxEkcFxFMAJ_)Pl7-M&#b#@Tv@U99&IeI32LGh z2B9PKa8`YNYu_z>X>~8Fc>~JnF4Egz!U=tImAcUjydW=)U4`1u{E3efw%`B1QEoTh zXsB&;+?X?fLz+>abIh0IJkK{E1jKghr;Ceu+}`{@iAP>Mw9RPCyJFs!dNAtRpIj(! zZe@pjHJD9#eN%yIzaMLDU*}U%gYpx7VGw;ER^*{a1aEX7;8|sZ>2-8D=w0a`C4FVE zkQH|@H^x3AuOn#xgAVi0>PGWc&dKARMtFeYi&&(jjox_X&9;-jhzHcY7;M~X#j%t_ z(98-4KeYg`3Cy|~i)`<;_257_+j_X4qKk=uw{sKHqc7idbM8F(*kLR}V`HJg=k~2N zV-;P^GKGW2M(!imj4WVbQsHpNV9z$Ugf2vGj-$a=FTig6+C+^wwW=oJssHS`nGa&z ze@oh^VaRRc99@oRm~1;oc_2=CZG^>G#JnCMoKWlNN9G4EZqLjEZv)H9?SaArOD}GdEV|O9KoI zBw}z8GkFK~mWd_!wt7Z)8^%M9E57!xbm404c860N-?Dg)5AN2RE~d8!o*lNFWg~H5 z3KIZom`P8oN9pFnwc_)C-S|UQkryMYC&Rocm^)yUs9of70@L_|U;pep3lb@W*CUTl z)jNgi*@|V1+ucn}Gg7~ZhEqR2%eJ0s(5Y2DN>#%s5^a5jyt0V}SOCIalTZB`9vZo{ zS!iz-iY{Bpx!=4tkE$5L;!LerDq^9{dQxhdGV46rzCDfazI|GhL_c=st2ci;O3937xj}g{_DC3ON6<79~bOxm}=IWiEOxs zl9A0sBMqnhzDnxla9u0U-*HkdfT+7P%fr-_T->NKS?!Y?9eWUr`9<={@Ln_=6ppT- zErpZW^)(v02kccE{Cn-WPrcD=1a9>ntX_Rp+0eq0YSzzqZ$WuE^`GCeB$yN1snd=& jB$V^N5wickk1Nlq0QOCgurEcm|2`}yr7T%3ZXEO<#2F6_ literal 0 HcmV?d00001 diff --git a/assets/SplashScreen/Title.png.import b/assets/SplashScreen/Title.png.import new file mode 100644 index 0000000..ac85873 --- /dev/null +++ b/assets/SplashScreen/Title.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Title.png-e5d8b3493cbb2b8c9dc1248efbf14375.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/SplashScreen/Title.png" +dest_files=[ "res://.import/Title.png-e5d8b3493cbb2b8c9dc1248efbf14375.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/project.godot b/project.godot index 3cabc06..685acbe 100644 --- a/project.godot +++ b/project.godot @@ -19,6 +19,11 @@ _global_script_classes=[ { "language": "GDScript", "path": "res://src/Items/Coin.gd" }, { +"base": "KinematicBody2D", +"class": "Enemy", +"language": "GDScript", +"path": "res://src/Actors/Enemy.gd" +}, { "base": "CanvasLayer", "class": "HUD", "language": "GDScript", @@ -37,6 +42,7 @@ _global_script_classes=[ { _global_script_class_icons={ "CheckPoint": "", "Coin": "", +"Enemy": "", "HUD": "", "Player": "", "Spike": "" @@ -105,6 +111,7 @@ jump={ "deadzone": 0.5, "events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":90,"unicode":0,"echo":false,"script":null) ] } pause={ @@ -118,6 +125,13 @@ dash={ "deadzone": 0.5, "events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777238,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":88,"unicode":0,"echo":false,"script":null) + ] +} +attack={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":67,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":2,"pressure":0.0,"pressed":false,"script":null) ] } diff --git a/src/Actors/Enemy.gd b/src/Actors/Enemy.gd new file mode 100644 index 0000000..b6b8021 --- /dev/null +++ b/src/Actors/Enemy.gd @@ -0,0 +1,114 @@ +tool +extends KinematicBody2D +class_name Enemy + +signal died +signal got_damage + + +export var num_of_hits := 3 +export var walking_speed := 20.0 +export var attack_cool_down := .1 +export var patroler = true +export var idle_interval := .5 +export var idle_time := .2 +export var dont_fall_patrol = true +export var gravity = 500.0 + +var _velocity := Vector2.ZERO +var _is_idle := false +var _is_alive := true +var _triggerd := false +var _damage_enabled := true +var _player_ref:Player = null; +var _genesis_position:Vector2; + +func _get_configuration_warning() -> String: + var warnings = PoolStringArray() + var children = get_children() + var warning_sections := { + "animation_player": true, + "collision_shape": true, + "sprite": true, + "raycast_left": dont_fall_patrol, + "raycast_right": dont_fall_patrol, + "area_2d": true + } + for child in children: + if child.name == 'CollisionShape2D': warning_sections.collision_shape = false; + elif child.name == 'Sprite': warning_sections.sprite = false; + elif child.name == 'Area2D': warning_sections.area_2d = false; + elif child.name == 'RayCastLeft': warning_sections.raycast_left = false; + elif child.name == 'RayCastRight': warning_sections.raycast_right = false; + elif child.name == 'AnimationPlayer': + warning_sections.animation_player = not ( + $AnimationPlayer.has_animation("walk") and + $AnimationPlayer.has_animation("die") and + $AnimationPlayer.has_animation("idle") and + $AnimationPlayer.has_animation("hit") + ) + + if warning_sections.collision_shape: + warnings.append(name + " Needs to have a CollisionShape2D Child") + if warning_sections.area_2d: + warnings.append(name + " Needs to have an Area2D Child") + if warning_sections.raycast_left: + warnings.append(name + " With dont-fall mode Needs to have a RayCastLeft Child") + if warning_sections.raycast_right: + warnings.append(name + " With dont-fall mode Needs to have a RayCastRight Child") + if warning_sections.sprite: + warnings.append(name + " Needs to have aa Sprite Child") + if warning_sections.animation_player: + warnings.append(name + " Needs to have an AnimationPlayer Child witt 'walk', 'idle', 'die', 'hit' animations") + return warnings.join('\n') + +func _ready() -> void: + add_to_group("Enemies") + _genesis_position = position + +func _physics_process(delta: float) -> void: + if Engine.editor_hint: return + if not _is_alive: return + if not _damage_enabled: + _velocity.y += gravity * delta + _velocity = move_and_slide(_velocity, Vector2.UP) + return + if not _is_idle and not _triggerd: + if patroler: + if is_on_wall(): + $Sprite.scale = Vector2($Sprite.scale.x * -1, 1) + elif dont_fall_patrol and is_on_floor(): + var pit_direction = _get_pit_direction() + if not pit_direction == 0: + $Sprite.scale = Vector2(pit_direction * -1, 1) + $AnimationPlayer.play("walk") + _velocity.y += gravity * delta + _velocity.x = $Sprite.scale.x * walking_speed + _velocity = move_and_slide(_velocity, Vector2.UP) + pass + +func take_damage(from_direction:int, damage: int = 1)->void: + num_of_hits -= 1 + if num_of_hits <= 0: + _is_alive = false + _damage_enabled = false + $AnimationPlayer.play("die") + else: + _damage_enabled = false + $AnimationPlayer.play("hit") + $Sprite.scale = Vector2(from_direction * -1, 1) + _velocity.x = 100 * from_direction + _velocity.y = -50 + +func on_animation_hit_ended(): + _damage_enabled = true + +func _get_pit_direction()->int: + if not $RayCastLeft.is_colliding(): + return -1 + elif not $RayCastRight.is_colliding(): + return 1 + return 0 + +func _alerted()->bool: + return false diff --git a/src/Actors/Goblin.gd b/src/Actors/Goblin.gd new file mode 100644 index 0000000..a543f78 --- /dev/null +++ b/src/Actors/Goblin.gd @@ -0,0 +1,37 @@ +tool +extends Enemy + + +func _on_Area2D_body_entered(body: Node) -> void: + if not _damage_enabled: return + if body.name == 'Player': + var player:Player = body + player.die() + +func _physics_process(delta: float) -> void: + if not _is_alive: return + if _triggerd and _damage_enabled: + var player_direction = (_player_ref.position - position).normalized() + $Sprite.scale = Vector2(-1 if player_direction.x < 0 else 1, 1) + if _get_pit_direction() == 0 and dont_fall_patrol: + _velocity.x = $Sprite.scale.x * walking_speed * 2 + else: + _velocity.x = 0 + _velocity.y += gravity * delta + $AnimationPlayer.play("attack") + _velocity = move_and_slide(_velocity, Vector2.UP) + pass + + + + +func _on_TriggerZone_body_entered(body: Node) -> void: + if body.name == 'Player': + _triggerd = true + _player_ref = body + + +func _on_TriggerZone_body_exited(body: Node) -> void: + if body.name == 'Player': + _triggerd = false + _player_ref = null diff --git a/src/Actors/Goblin.tscn b/src/Actors/Goblin.tscn new file mode 100644 index 0000000..4df5b54 --- /dev/null +++ b/src/Actors/Goblin.tscn @@ -0,0 +1,562 @@ +[gd_scene load_steps=11 format=2] + +[ext_resource path="res://assets/Enemies/goblin_spritesheet.png" type="Texture" id=1] +[ext_resource path="res://src/Actors/Goblin.gd" type="Script" id=2] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 6, 8 ) + +[sub_resource type="RectangleShape2D" id=5] +extents = Vector2( 7, 9 ) + +[sub_resource type="RectangleShape2D" id=6] +extents = Vector2( 35, 10 ) + +[sub_resource type="Animation" id=8] +resource_name = "attack" +length = 0.3 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath("CollisionShape2D:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, -8 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Sprite:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, -8 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Sprite:frame") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 0.1, 0.2, 0.3 ), +"transitions": PoolRealArray( 1, 1, 1, 1 ), +"update": 1, +"values": [ 8, 9, 10, 11 ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Sprite:vframes") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 5 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Sprite:hframes") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 4 ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("CollisionShape2D:shape:extents") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 6, 8 ) ] +} +tracks/6/type = "value" +tracks/6/path = NodePath("CollisionShape2D:disabled") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} + +[sub_resource type="Animation" id=2] +resource_name = "die" +length = 0.5 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath("CollisionShape2D:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, -8 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Sprite:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, -8 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Sprite:frame") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 0.1, 0.2, 0.3, 0.4, 0.5 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1 ), +"update": 1, +"values": [ 6, 7, 8, 9, 10, 11 ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Sprite:vframes") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 5 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Sprite:hframes") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 6 ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("CollisionShape2D:shape:extents") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 6, 8 ) ] +} +tracks/6/type = "value" +tracks/6/path = NodePath("CollisionShape2D:disabled") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/7/type = "method" +tracks/7/path = NodePath(".") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/keys = { +"times": PoolRealArray( 0.5 ), +"transitions": PoolRealArray( 1 ), +"values": [ { +"args": [ ], +"method": "queue_free" +} ] +} + +[sub_resource type="Animation" id=7] +resource_name = "hit" +length = 0.2 +tracks/0/type = "value" +tracks/0/path = NodePath("CollisionShape2D:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, -8 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Sprite:scale") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 1, 1 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Sprite:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, -8 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Sprite:frame") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0, 0.1, 0.2 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 1, +"values": [ 24, 25, 26 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Sprite:vframes") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 5 ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Sprite:hframes") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 6 ] +} +tracks/6/type = "value" +tracks/6/path = NodePath("CollisionShape2D:shape:extents") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 6, 8 ) ] +} +tracks/7/type = "value" +tracks/7/path = NodePath("CollisionShape2D:disabled") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} +tracks/8/type = "method" +tracks/8/path = NodePath(".") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/keys = { +"times": PoolRealArray( 0.2 ), +"transitions": PoolRealArray( 1 ), +"values": [ { +"args": [ ], +"method": "on_animation_hit_ended" +} ] +} + +[sub_resource type="Animation" id=3] +resource_name = "idle" +length = 0.3 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath("CollisionShape2D:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, -8 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Sprite:scale") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 1, 1 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Sprite:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, -8 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Sprite:frame") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0, 0.1, 0.2, 0.3 ), +"transitions": PoolRealArray( 1, 1, 1, 1 ), +"update": 1, +"values": [ 18, 19, 20, 21 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Sprite:vframes") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 5 ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Sprite:hframes") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 6 ] +} +tracks/6/type = "value" +tracks/6/path = NodePath("CollisionShape2D:shape:extents") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 6, 8 ) ] +} +tracks/7/type = "value" +tracks/7/path = NodePath("CollisionShape2D:disabled") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} + +[sub_resource type="Animation" id=4] +resource_name = "walk" +length = 0.5 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath("CollisionShape2D:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, -8 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Sprite:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, -8 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Sprite:frame") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 0.1, 0.2, 0.3, 0.4, 0.5 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1 ), +"update": 1, +"values": [ 0, 1, 2, 3, 4, 5 ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Sprite:vframes") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 5 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Sprite:hframes") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 6 ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("CollisionShape2D:shape:extents") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 6, 8 ) ] +} +tracks/6/type = "value" +tracks/6/path = NodePath("CollisionShape2D:disabled") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} + +[node name="Goblin" type="KinematicBody2D"] +collision_layer = 2147483650 +collision_mask = 15 +script = ExtResource( 2 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2( 0, -8 ) +shape = SubResource( 1 ) + +[node name="Area2D" type="Area2D" parent="."] +collision_layer = 2 + +[node name="DamageArea" type="CollisionShape2D" parent="Area2D"] +position = Vector2( 0, -8 ) +shape = SubResource( 5 ) + +[node name="TriggerZone" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="TriggerZone"] +position = Vector2( 0, -6 ) +shape = SubResource( 6 ) + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( 0, -8 ) +texture = ExtResource( 1 ) +vframes = 5 +hframes = 4 +frame = 8 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +autoplay = "idle" +anims/attack = SubResource( 8 ) +anims/die = SubResource( 2 ) +anims/hit = SubResource( 7 ) +anims/idle = SubResource( 3 ) +anims/walk = SubResource( 4 ) + +[node name="RayCastLeft" type="RayCast2D" parent="."] +position = Vector2( -6, 0 ) +enabled = true +cast_to = Vector2( 0, 1 ) +collision_mask = 8 + +[node name="RayCastRight" type="RayCast2D" parent="."] +position = Vector2( 6, 0 ) +enabled = true +cast_to = Vector2( 0, 1 ) +collision_mask = 12 +collide_with_areas = true +[connection signal="body_entered" from="Area2D" to="." method="_on_Area2D_body_entered"] +[connection signal="body_entered" from="TriggerZone" to="." method="_on_TriggerZone_body_entered"] +[connection signal="body_exited" from="TriggerZone" to="." method="_on_TriggerZone_body_exited"] diff --git a/src/Actors/Player.gd b/src/Actors/Player.gd index 9c845d2..ffa5169 100644 --- a/src/Actors/Player.gd +++ b/src/Actors/Player.gd @@ -1,6 +1,8 @@ extends KinematicBody2D class_name Player + + export var run_speed := 100.0 export var jump_power := 180.0 export var gravity: = 500.0 @@ -27,6 +29,18 @@ var _alive := false; var _is_wall_sliding := false; var _is_dashing := false; var _can_dash := true; +var _is_attaking := false; + +enum Direction{ + RIGHT = 1, + LEFT = -1 +} + +export var abilities:= { + "dash": false, + "wall_jump": false, + "attack": false +} func _ready() -> void: $AnimationPlayer.play("fade_in") respawn_position = position @@ -36,7 +50,7 @@ func _physics_process(delta: float) -> void: var is_jump_canceled: = Input.is_action_just_released("jump") and !_is_wall_jumping and _velocity.y < 0.0 var direction: = get_direction() var prev_wall_slide_state = _is_wall_sliding - _is_wall_sliding = _velocity.y >=0 and _is_next_to_wall() and _in_air + _is_wall_sliding = _velocity.y >=0 and is_on_wall() and _in_air _velocity = calculate_move_velocity(direction,is_jump_canceled, delta) if _is_wall_sliding and not prev_wall_slide_state: _velocity.y=0 @@ -54,10 +68,10 @@ func _physics_process(delta: float) -> void: _is_wall_jumping = false func get_direction() -> Vector2: - var right_strength = min(Input.get_action_strength("direction_right") * 2, 1) - var left_strength = min(Input.get_action_strength("direction_left") * 2, 1) + var right_strength = min(Input.get_action_strength("direction_right") , 1) + var left_strength = min(Input.get_action_strength("direction_left"), 1) return Vector2( - right_strength - left_strength, + right_strength - left_strength if _in_air or not _is_attaking else 0, -1.0 if Input.is_action_just_pressed("jump") and (is_on_floor() or _is_wall_sliding) else 1.0 ) @@ -74,9 +88,9 @@ func calculate_move_velocity(direction:Vector2, is_jump_canceled:bool, delta:fl _in_air = true if _is_wall_sliding: # wall jump - var walljump__x_direction = 1 if _is_next_to_wall_right() else -1 + var walljump__x_direction = -1 * direction.x _is_wall_jumping = true - var desired = -(run_speed * wall_jump_speed_factor.x * walljump__x_direction) + var desired = (run_speed * wall_jump_speed_factor.x * walljump__x_direction) output.x = desired output.y = jump_power * wall_jump_speed_factor.y * direction.y else: @@ -101,7 +115,7 @@ func calculate_move_velocity(direction:Vector2, is_jump_canceled:bool, delta:fl output.y = max_wall_slide_gravity var dash_velocity := Vector2( - (-1 if $Sprite.flip_h else 1) * dash_thrust, + $Sprite.scale.x * dash_thrust, 0 ) @@ -111,7 +125,7 @@ func calculate_move_velocity(direction:Vector2, is_jump_canceled:bool, delta:fl _is_dashing = true # turn off gravity while dashing # Wall dash first if _is_wall_sliding: - dash_velocity.x = (-1 if _is_next_to_wall_right() else 1) * dash_thrust + dash_velocity.x = $Sprite.scale.x * dash_thrust * -1 if dash_velocity.x < 0 : $DashParticlesLeft.emitting = true; @@ -130,34 +144,33 @@ func _respawn(): func _revive(): _alive = true -func _is_next_to_wall(): - return _is_next_to_wall_right() || _is_next_to_wall_left() - -func _is_next_to_wall_right(): - if $RayCastWallRight.is_colliding(): - var colider = $RayCastWallRight.get_collider(); - return colider.name == "SolidsTileMap" - return false -func _is_next_to_wall_left(): - if $RayCastWallLeft.is_colliding(): - var colider = $RayCastWallLeft.get_collider(); - return colider.name == "SolidsTileMap" - return false func update_sprite(_direction:Vector2) -> void: var air_animation = "jump" if _velocity.y <= 0 else "fall" + if _is_attaking: return + var attack = Input.is_action_just_pressed("attack") and abilities.attack if _velocity.x > .5 and not _is_wall_sliding: + $Sprite.scale = Vector2(1,1) $AnimationPlayer.play("run" if is_on_floor() else air_animation) - $Sprite.flip_h = false elif _velocity.x < -.5 and not _is_wall_sliding: + $Sprite.scale = Vector2(-1,1) $AnimationPlayer.play("run" if is_on_floor() else air_animation) - $Sprite.flip_h = true else: if not _in_air: $AnimationPlayer.play("idle") if _is_wall_sliding: $AnimationPlayer.play("wall_slide") return + if attack: + _is_attaking = true + var attack_animation = "attack_right" if $Sprite.scale.x > 0 else "attack_left" + $AnimationPlayer.play(attack_animation) + $AnimationPlayer.playback_speed = 2.5 + $AnimationPlayer.seek(0) + yield($AnimationPlayer, "animation_finished") + $AnimationPlayer.playback_speed = 1 + _is_attaking = false + return if _in_air: $AnimationPlayer.play(air_animation) return @@ -165,6 +178,8 @@ func update_sprite(_direction:Vector2) -> void: if _is_dashing: $AnimationPlayer.play("jump") return + + func _on_die_animation_done(): emit_signal("died") @@ -173,6 +188,16 @@ func _on_die_animation_done(): func die(): _alive = false $AnimationPlayer.play("die") + +func setAbility(ability:String, enabled:bool=false): + if ability == 'dash': + abilities.dash = enabled + elif ability == 'wall_jump': + abilities.wall_jump = enabled + elif ability == 'attack': + abilities.attack = enabled + else: + pass func _on_DashTimeout_timeout() -> void: $DashParticlesLeft.emitting = false @@ -180,3 +205,9 @@ func _on_DashTimeout_timeout() -> void: _velocity.x = run_speed * _velocity.normalized().x; _is_dashing = false pass # Replace with function body. + + +func _on_SordRange_body_entered(body: Node) -> void: + if body.is_in_group("Enemies"): + body.take_damage($Sprite.scale.x) + pass # Replace with function body. diff --git a/src/Actors/Player.tscn b/src/Actors/Player.tscn index 9753879..23b1d6a 100644 --- a/src/Actors/Player.tscn +++ b/src/Actors/Player.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=15 format=2] +[gd_scene load_steps=18 format=2] [ext_resource path="res://src/Actors/DashParticles_right.tscn" type="PackedScene" id=1] [ext_resource path="res://src/Actors/Player.gd" type="Script" id=2] @@ -9,8 +9,162 @@ [sub_resource type="RectangleShape2D" id=1] extents = Vector2( 5, 7 ) -[sub_resource type="Animation" id=2] -resource_name = "die" +[sub_resource type="RectangleShape2D" id=2] +extents = Vector2( 9, 5 ) + +[sub_resource type="Animation" id=3] +resource_name = "attack_left" +length = 0.3 +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.1, 0.2, 0.3 ), +"transitions": PoolRealArray( 1, 1, 1, 1 ), +"update": 1, +"values": [ 12, 13, 14, 15 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("ScreenOverlay/CanvasModulate:color") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Color( 0, 0, 0, 0 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Sprite:vframes") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 13 ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Sprite:hframes") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 4 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Sprite:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( -8, -8 ) ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Sprite/SordRange/CollisionShape2D:disabled") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} + +[sub_resource type="Animation" id=4] +resource_name = "attack_right" +length = 0.3 +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.1, 0.2, 0.3 ), +"transitions": PoolRealArray( 1, 1, 1, 1 ), +"update": 1, +"values": [ 12, 13, 14, 15 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("ScreenOverlay/CanvasModulate:color") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Color( 0, 0, 0, 0 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Sprite:vframes") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 13 ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Sprite:hframes") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 4 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Sprite:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 8, -8 ) ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Sprite/SordRange/CollisionShape2D:disabled") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} + +[sub_resource type="Animation" id=5] length = 0.9 tracks/0/type = "value" tracks/0/path = NodePath("Sprite:frame") @@ -50,9 +204,56 @@ tracks/2/keys = { "method": "_on_die_animation_done" } ] } +tracks/3/type = "value" +tracks/3/path = NodePath("Sprite:vframes") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 13 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Sprite:hframes") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 8 ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Sprite:position") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, -8 ) ] +} +tracks/6/type = "value" +tracks/6/path = NodePath("Sprite/SordRange/CollisionShape2D:disabled") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} -[sub_resource type="Animation" id=3] -resource_name = "fade_in" +[sub_resource type="Animation" id=6] length = 0.2 tracks/0/type = "value" tracks/0/path = NodePath("Sprite:frame") @@ -92,9 +293,56 @@ tracks/2/keys = { "method": "_revive" } ] } +tracks/3/type = "value" +tracks/3/path = NodePath("Sprite:vframes") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 13 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Sprite:hframes") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 8 ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Sprite:position") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, -8 ) ] +} +tracks/6/type = "value" +tracks/6/path = NodePath("Sprite/SordRange/CollisionShape2D:disabled") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} -[sub_resource type="Animation" id=4] -resource_name = "fall" +[sub_resource type="Animation" id=7] length = 0.2 loop = true tracks/0/type = "value" @@ -121,9 +369,56 @@ tracks/1/keys = { "update": 0, "values": [ Color( 0, 0, 0, 0 ) ] } +tracks/2/type = "value" +tracks/2/path = NodePath("Sprite:vframes") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 13 ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Sprite:hframes") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 8 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Sprite:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, -8 ) ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Sprite/SordRange/CollisionShape2D:disabled") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} -[sub_resource type="Animation" id=5] -resource_name = "idle" +[sub_resource type="Animation" id=8] length = 0.3 loop = true tracks/0/type = "value" @@ -150,9 +445,56 @@ tracks/1/keys = { "update": 0, "values": [ Color( 0, 0, 0, 0 ) ] } +tracks/2/type = "value" +tracks/2/path = NodePath("Sprite:vframes") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 13 ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Sprite:hframes") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 8 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Sprite:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, -8 ) ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Sprite/SordRange/CollisionShape2D:disabled") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} -[sub_resource type="Animation" id=6] -resource_name = "jump" +[sub_resource type="Animation" id=9] length = 0.2 loop = true tracks/0/type = "value" @@ -179,9 +521,56 @@ tracks/1/keys = { "update": 0, "values": [ Color( 0, 0, 0, 0 ) ] } +tracks/2/type = "value" +tracks/2/path = NodePath("Sprite:vframes") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 13 ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Sprite:hframes") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 8 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Sprite:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, -8 ) ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Sprite/SordRange/CollisionShape2D:disabled") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} -[sub_resource type="Animation" id=7] -resource_name = "pre_jump" +[sub_resource type="Animation" id=10] length = 0.1 tracks/0/type = "value" tracks/0/path = NodePath("Sprite:frame") @@ -207,9 +596,56 @@ tracks/1/keys = { "update": 0, "values": [ Color( 0, 0, 0, 0 ) ] } +tracks/2/type = "value" +tracks/2/path = NodePath("Sprite:vframes") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 13 ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Sprite:hframes") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 8 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Sprite:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, -8 ) ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Sprite/SordRange/CollisionShape2D:disabled") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} -[sub_resource type="Animation" id=8] -resource_name = "run" +[sub_resource type="Animation" id=11] length = 0.5 loop = true tracks/0/type = "value" @@ -236,9 +672,56 @@ tracks/1/keys = { "update": 0, "values": [ Color( 0, 0, 0, 0 ) ] } +tracks/2/type = "value" +tracks/2/path = NodePath("Sprite:vframes") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 13 ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Sprite:hframes") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 8 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Sprite:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, -8 ) ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Sprite/SordRange/CollisionShape2D:disabled") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} -[sub_resource type="Animation" id=9] -resource_name = "wall_slide" +[sub_resource type="Animation" id=12] length = 0.3 loop = true tracks/0/type = "value" @@ -265,6 +748,54 @@ tracks/1/keys = { "update": 0, "values": [ Color( 0, 0, 0, 0 ) ] } +tracks/2/type = "value" +tracks/2/path = NodePath("Sprite:vframes") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 13 ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Sprite:hframes") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 8 ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Sprite:position") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 0, -8 ) ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Sprite/SordRange/CollisionShape2D:disabled") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} [node name="Player" type="KinematicBody2D"] collision_mask = 30 @@ -291,22 +822,32 @@ shadow_item_cull_mask = 15 [node name="Sprite" type="Sprite" parent="."] self_modulate = Color( 0.482353, 0.694118, 0.819608, 1 ) -position = Vector2( 0, -8 ) +position = Vector2( 8, -8 ) texture = ExtResource( 8 ) vframes = 13 -hframes = 8 -frame = 32 +hframes = 4 +frame = 12 + +[node name="SordRange" type="Area2D" parent="Sprite"] +position = Vector2( -8, 8 ) +collision_mask = 2 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Sprite/SordRange"] +position = Vector2( 14, -6 ) +shape = SubResource( 2 ) [node name="AnimationPlayer" type="AnimationPlayer" parent="."] autoplay = "idle" -anims/die = SubResource( 2 ) -anims/fade_in = SubResource( 3 ) -anims/fall = SubResource( 4 ) -anims/idle = SubResource( 5 ) -anims/jump = SubResource( 6 ) -anims/pre_jump = SubResource( 7 ) -anims/run = SubResource( 8 ) -anims/wall_slide = SubResource( 9 ) +anims/attack_left = SubResource( 3 ) +anims/attack_right = SubResource( 4 ) +anims/die = SubResource( 5 ) +anims/fade_in = SubResource( 6 ) +anims/fall = SubResource( 7 ) +anims/idle = SubResource( 8 ) +anims/jump = SubResource( 9 ) +anims/pre_jump = SubResource( 10 ) +anims/run = SubResource( 11 ) +anims/wall_slide = SubResource( 12 ) [node name="ScreenOverlay" type="CanvasLayer" parent="."] layer = 128 @@ -328,14 +869,17 @@ one_shot = true [node name="DashParticlesRight" parent="." instance=ExtResource( 1 )] [node name="RayCastWallRight" type="RayCast2D" parent="."] +visible = false position = Vector2( 0, -8.09363 ) enabled = true cast_to = Vector2( 5.2, 0 ) collision_mask = 8 [node name="RayCastWallLeft" type="RayCast2D" parent="."] +visible = false position = Vector2( 0, -8.04107 ) enabled = true cast_to = Vector2( -5.2, 0 ) collision_mask = 8 +[connection signal="body_entered" from="Sprite/SordRange" to="." method="_on_SordRange_body_entered"] [connection signal="timeout" from="DashTimeout" to="." method="_on_DashTimeout_timeout"] diff --git a/src/Intro/Intro.gd b/src/Intro/Intro.gd index 0b60203..6b7c8e2 100644 --- a/src/Intro/Intro.gd +++ b/src/Intro/Intro.gd @@ -4,9 +4,12 @@ extends Node2D export var next_scene:PackedScene func _ready() -> void: - $AudioStreamPlayer.seek(1.5) + $SplashVoice.seek(1.5) func load_next_scene(): # var next_scene = load("res://src/Levels/LevelTemplate/LevelTemplate.tscn") get_tree().change_scene_to(next_scene) queue_free() + +func stop_splash_voice(): + $SplashVoice.stop() diff --git a/src/Intro/Intro.tscn b/src/Intro/Intro.tscn index 705f9a1..6df13d8 100644 --- a/src/Intro/Intro.tscn +++ b/src/Intro/Intro.tscn @@ -1,14 +1,17 @@ -[gd_scene load_steps=7 format=2] +[gd_scene load_steps=10 format=2] [ext_resource path="res://assets/SplashScreen/BLANK.png" type="Texture" id=1] [ext_resource path="res://src/Intro/Intro.gd" type="Script" id=2] [ext_resource path="res://assets/SplashScreen/SAGI.png" type="Texture" id=3] [ext_resource path="res://sound/SAGI.ogg" type="AudioStream" id=4] [ext_resource path="res://src/Levels/LevelTemplate/LevelTemplate.tscn" type="PackedScene" id=5] +[ext_resource path="res://assets/Tiles/background_0.png" type="Texture" id=6] +[ext_resource path="res://assets/SplashScreen/Title.png" type="Texture" id=7] +[ext_resource path="res://assets/Items/torch_ligt_texture.png" type="Texture" id=8] [sub_resource type="Animation" id=1] resource_name = "intro" -length = 2.0 +length = 8.0 tracks/0/type = "value" tracks/0/path = NodePath("SAGI:self_modulate") tracks/0/interp = 1 @@ -40,13 +43,100 @@ tracks/2/loop_wrap = true tracks/2/imported = false tracks/2/enabled = true tracks/2/keys = { -"times": PoolRealArray( 2 ), -"transitions": PoolRealArray( 1 ), +"times": PoolRealArray( 1.8, 8 ), +"transitions": PoolRealArray( 1, 1 ), "values": [ { "args": [ ], +"method": "stop_splash_voice" +}, { +"args": [ ], "method": "load_next_scene" } ] } +tracks/3/type = "value" +tracks/3/path = NodePath("SAGI/Light2D:enabled") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0, 1.8 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 1, +"values": [ true, false ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Title/BG:self_modulate") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0, 1.8, 2 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Title/Sprite2:self_modulate") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0, 2, 2.2 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ] +} +tracks/6/type = "value" +tracks/6/path = NodePath("Title/BG:position") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"times": PoolRealArray( 0, 1.8, 8 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 229, -35 ), Vector2( 229, -35 ), Vector2( 229, 294 ) ] +} +tracks/7/type = "value" +tracks/7/path = NodePath("Title/Sprite2/Light2D:enabled") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/keys = { +"times": PoolRealArray( 0, 1.8 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 1, +"values": [ false, true ] +} +tracks/8/type = "value" +tracks/8/path = NodePath("Title/Sprite2/Light2D:position") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/keys = { +"times": PoolRealArray( 0, 1.8, 2.3, 3.2, 3.5, 3.6, 3.8, 4.3, 5.4, 5.6, 5.7, 5.8, 6.5, 6.7, 8 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 42, 68.4516 ), Vector2( 42, 68.4516 ), Vector2( 262, 36 ), Vector2( 407, 109 ), Vector2( 419, 136 ), Vector2( 419, 136 ), Vector2( 375, 117 ), Vector2( 263, 71 ), Vector2( 268, 163 ), Vector2( 268, 163 ), Vector2( 234, 170 ), Vector2( 344, 151 ), Vector2( 285, 175 ), Vector2( 243, 113 ), Vector2( 243, 113 ) ] +} +tracks/9/type = "value" +tracks/9/path = NodePath("Title/Sprite2/Light2D:scale") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/keys = { +"times": PoolRealArray( 0, 6.7, 8 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 3.50556, 3.50556 ), Vector2( 3.50556, 3.50556 ), Vector2( 512.534, 512.534 ) ] +} [node name="Intro" type="Node2D"] script = ExtResource( 2 ) @@ -61,14 +151,36 @@ texture = ExtResource( 1 ) centered = false [node name="SAGI" type="Sprite" parent="."] +self_modulate = Color( 1, 1, 1, 0 ) position = Vector2( 2, 0 ) texture = ExtResource( 3 ) centered = false [node name="Light2D" type="Light2D" parent="SAGI"] position = Vector2( 239, 136 ) +enabled = false texture = ExtResource( 3 ) +texture_scale = 3.0 -[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] +[node name="SplashVoice" type="AudioStreamPlayer" parent="."] stream = ExtResource( 4 ) autoplay = true + +[node name="Title" type="Node2D" parent="."] +self_modulate = Color( 1, 1, 1, 0 ) + +[node name="BG" type="Sprite" parent="Title"] +self_modulate = Color( 1, 1, 1, 0 ) +position = Vector2( 229, -35 ) +scale = Vector2( 3.50556, 3.50556 ) +texture = ExtResource( 6 ) + +[node name="Sprite2" type="Sprite" parent="Title"] +self_modulate = Color( 1, 1, 1, 0 ) +texture = ExtResource( 7 ) +centered = false + +[node name="Light2D" type="Light2D" parent="Title/Sprite2"] +position = Vector2( 42, 68.4516 ) +scale = Vector2( 3.50556, 3.50556 ) +texture = ExtResource( 8 ) diff --git a/src/Levels/LevelTemplate/LevelScreenTemplate.tscn b/src/Levels/LevelTemplate/LevelScreenTemplate.tscn index 64b8343..67b6c98 100644 --- a/src/Levels/LevelTemplate/LevelScreenTemplate.tscn +++ b/src/Levels/LevelTemplate/LevelScreenTemplate.tscn @@ -10,7 +10,7 @@ [ext_resource path="res://assets/Tiles/SemiSolidsTileMap.tscn" type="PackedScene" id=8] [ext_resource path="res://src/Hazards/Spike.tscn" type="PackedScene" id=9] [ext_resource path="res://src/Actors/Player.tscn" type="PackedScene" id=10] -[ext_resource path="res://src/Hazards/SwingingSpike.tscn" type="PackedScene" id=11] +[ext_resource path="res://src/Actors/Goblin.tscn" type="PackedScene" id=12] [sub_resource type="TileSet" id=1] 0/name = "tileset.png 0" @@ -371,14 +371,35 @@ position = Vector2( 945.375, 396 ) [node name="Enemies" type="Node2D" parent="."] +[node name="Goblin" parent="Enemies" instance=ExtResource( 12 )] +position = Vector2( 264, 242 ) + +[node name="Goblin2" parent="Enemies" instance=ExtResource( 12 )] +position = Vector2( 207, 27 ) + +[node name="Goblin3" parent="Enemies" instance=ExtResource( 12 )] +position = Vector2( 399, 242 ) + +[node name="Goblin4" parent="Enemies" instance=ExtResource( 12 )] +position = Vector2( 45, 242 ) + +[node name="Goblin5" parent="Enemies" instance=ExtResource( 12 )] +position = Vector2( 307, 140 ) + +[node name="Goblin6" parent="Enemies" instance=ExtResource( 12 )] +position = Vector2( 421, 185 ) + +[node name="Goblin7" parent="Enemies" instance=ExtResource( 12 )] +position = Vector2( 378, 57 ) + +[node name="Goblin8" parent="Enemies" instance=ExtResource( 12 )] +position = Vector2( 63, 144 ) + [node name="Hazards" type="Node2D" parent="."] [node name="Spike" parent="Hazards" instance=ExtResource( 9 )] position = Vector2( 344, 256 ) -[node name="SwingingSpike" parent="Hazards" instance=ExtResource( 11 )] -position = Vector2( 207.715, 238.906 ) - [node name="World" type="Node2D" parent="."] [node name="SemiSolidsTileMap" parent="World" instance=ExtResource( 8 )] @@ -390,7 +411,7 @@ collision_layer = 8 [node name="SolidsTileMap" parent="World" instance=ExtResource( 7 )] position = Vector2( -1, 0 ) tile_set = SubResource( 36 ) -tile_data = PoolIntArray( 28, 0, 0, 29, 0, 1, 30, 0, 2, 131071, 0, 65541, 65536, 0, 65538, 65564, 0, 65536, 65565, 0, 65537, 65566, 0, 65539, 196607, 0, 65536, 131072, 0, 65538, 131076, 0, 0, 131077, 0, 0, 131078, 0, 1, 131079, 0, 2, 131083, 0, 0, 131084, 0, 0, 131085, 0, 1, 131086, 0, 2, 131100, 0, 65536, 131101, 0, 65537, 131102, 0, 65539, 262143, 0, 65536, 196608, 0, 65539, 196612, 0, 65536, 196613, 0, 65536, 196614, 0, 65537, 196615, 0, 65539, 196619, 0, 65536, 196620, 0, 65536, 196621, 0, 65537, 196622, 0, 65539, 196636, 0, 65536, 196637, 0, 65537, 196638, 0, 65538, 327679, 0, 65541, 262144, 0, 65539, 262148, 0, 65541, 262149, 0, 65541, 262150, 0, 65537, 262151, 0, 65539, 262155, 0, 65541, 262156, 0, 65536, 262157, 0, 65537, 262158, 0, 65539, 262172, 0, 65541, 262173, 0, 65537, 262174, 0, 65539, 393215, 0, 65541, 327680, 0, 65539, 327684, 0, 65541, 327685, 0, 65541, 327686, 0, 65537, 327687, 0, 65539, 327691, 0, 65541, 327692, 0, 65536, 327693, 0, 65537, 327694, 0, 65538, 327708, 0, 65541, 327709, 0, 65537, 327710, 0, 65538, 458751, 0, 65541, 393216, 0, 65538, 393220, 0, 65536, 393221, 0, 65536, 393222, 0, 65537, 393223, 0, 65538, 393227, 0, 65536, 393228, 0, 65536, 393229, 0, 65537, 393230, 0, 65539, 393244, 0, 65541, 393245, 0, 65537, 393246, 0, 65538, 524287, 0, 65541, 458752, 0, 65539, 458756, 0, 65541, 458757, 0, 65541, 458758, 0, 65537, 458759, 0, 65538, 458763, 0, 65541, 458764, 0, 65536, 458765, 0, 65537, 458766, 0, 65539, 458780, 0, 65536, 458781, 0, 65537, 458782, 0, 65539, 589823, 0, 65541, 524288, 0, 65539, 524292, 0, 65541, 524293, 0, 65541, 524294, 0, 65537, 524295, 0, 65539, 524299, 0, 65541, 524300, 0, 65536, 524301, 0, 65537, 524302, 0, 65539, 524316, 0, 65536, 524317, 0, 65537, 524318, 0, 65538, 655359, 0, 65536, 589824, 0, 65538, 589828, 0, 65536, 589829, 0, 65536, 589830, 0, 65537, 589831, 0, 65538, 589835, 0, 65536, 589836, 0, 65536, 589837, 0, 65537, 589838, 0, 65538, 589852, 0, 65541, 589853, 0, 65537, 589854, 0, 65538, 720895, 0, 65541, 655360, 0, 65539, 655364, 0, 65541, 655365, 0, 65541, 655366, 0, 65537, 655367, 0, 65539, 655371, 0, 65541, 655372, 0, 65541, 655373, 0, 65537, 655374, 0, 65538, 655388, 0, 65536, 655389, 0, 65537, 655390, 0, 65539, 786431, 0, 65541, 720896, 0, 65538, 720900, 0, 65536, 720901, 0, 65536, 720902, 0, 65537, 720903, 0, 65538, 720907, 0, 65536, 720908, 0, 65536, 720909, 0, 65537, 720910, 0, 65538, 720924, 0, 65541, 720925, 0, 65537, 720926, 0, 65538, 851967, 0, 65536, 786432, 0, 65539, 786436, 0, 65536, 786437, 0, 65536, 786438, 0, 65537, 786439, 0, 65539, 786443, 0, 65536, 786444, 0, 65536, 786445, 0, 65537, 786446, 0, 65538, 786460, 0, 65536, 786461, 0, 65537, 786462, 0, 65538, 917503, 0, 65536, 851968, 0, 65539, 851972, 0, 131072, 851973, 0, 131072, 851974, 0, 4, 851975, 0, 131074, 851979, 0, 131072, 851980, 0, 131072, 851981, 0, 4, 851982, 0, 131074, 851996, 0, 65541, 851997, 0, 65537, 851998, 0, 65539, 983039, 0, 65536, 917504, 0, 65539, 917532, 0, 65536, 917533, 0, 65537, 917534, 0, 65538, 1048575, 0, 65541, 983040, 0, 65539, 983068, 0, 65541, 983069, 0, 65537, 983070, 0, 65539, 1114111, 0, 65536, 1048576, 0, 131075, 1048577, 0, 131076, 1048578, 0, 131076, 1048579, 0, 131076, 1048580, 0, 131076, 1048581, 0, 1, 1048582, 0, 1, 1048583, 0, 1, 1048584, 0, 1, 1048585, 0, 1, 1048586, 0, 1, 1048587, 0, 131076, 1048588, 0, 1, 1048589, 0, 131076, 1048590, 0, 131076, 1048591, 0, 131076, 1048592, 0, 131076, 1048593, 0, 131076, 1048594, 0, 1, 1048595, 0, 131076, 1048596, 0, 131076, 1048597, 0, 131076, 1048598, 0, 131076, 1048599, 0, 131076, 1048600, 0, 131076, 1048601, 0, 1, 1048602, 0, 1, 1048603, 0, 131076, 1048604, 0, 131077, 1048605, 0, 65537, 1048606, 0, 65539, 1179647, 0, 65541, 1114112, 0, 65537, 1114113, 0, 65537, 1114114, 0, 65537, 1114115, 0, 65537, 1114116, 0, 65537, 1114117, 0, 65537, 1114118, 0, 65537, 1114119, 0, 65537, 1114120, 0, 65537, 1114121, 0, 65537, 1114122, 0, 65537, 1114123, 0, 65537, 1114124, 0, 65537, 1114125, 0, 65537, 1114126, 0, 65537, 1114127, 0, 65537, 1114128, 0, 65537, 1114129, 0, 65537, 1114130, 0, 65537, 1114131, 0, 65537, 1114132, 0, 65537, 1114133, 0, 65537, 1114134, 0, 65537, 1114135, 0, 65537, 1114136, 0, 65537, 1114137, 0, 65537, 1114138, 0, 65537, 1114139, 0, 65537, 1114140, 0, 65537, 1114141, 0, 65537, 1114142, 0, 65539, 1245183, 0, 131072, 1179648, 0, 131073, 1179649, 0, 131073, 1179650, 0, 4, 1179651, 0, 4, 1179652, 0, 4, 1179653, 0, 131073, 1179654, 0, 4, 1179655, 0, 131073, 1179656, 0, 4, 1179657, 0, 4, 1179658, 0, 131073, 1179659, 0, 4, 1179660, 0, 4, 1179661, 0, 131073, 1179662, 0, 131073, 1179663, 0, 4, 1179664, 0, 131073, 1179665, 0, 4, 1179666, 0, 4, 1179667, 0, 131073, 1179668, 0, 4, 1179669, 0, 4, 1179670, 0, 131073, 1179671, 0, 131073, 1179672, 0, 4, 1179673, 0, 131073, 1179674, 0, 131073, 1179675, 0, 4, 1179676, 0, 4, 1179677, 0, 131073, 1179678, 0, 131074 ) +tile_data = PoolIntArray( 28, 0, 0, 29, 0, 1, 30, 0, 2, 131071, 0, 65541, 65536, 0, 2, 65564, 0, 65536, 65565, 0, 65537, 65566, 0, 65539, 196607, 0, 65536, 131072, 0, 131075, 131073, 0, 131076, 131074, 0, 131076, 131075, 0, 131076, 131076, 0, 131076, 131077, 0, 0, 131078, 0, 1, 131079, 0, 2, 131083, 0, 0, 131084, 0, 0, 131085, 0, 1, 131086, 0, 1, 131087, 0, 2, 131100, 0, 65536, 131101, 0, 65537, 131102, 0, 65539, 262143, 0, 65536, 196608, 0, 3, 196609, 0, 4, 196610, 0, 131073, 196611, 0, 131073, 196612, 0, 5, 196613, 0, 65536, 196614, 0, 65537, 196615, 0, 65539, 196619, 0, 65536, 196620, 0, 65536, 196621, 0, 65537, 196622, 0, 65537, 196623, 0, 65539, 196636, 0, 65536, 196637, 0, 65537, 196638, 0, 65538, 327679, 0, 65541, 262144, 0, 65539, 262148, 0, 65541, 262149, 0, 65541, 262150, 0, 65537, 262151, 0, 65539, 262155, 0, 65541, 262156, 0, 65536, 262157, 0, 65537, 262158, 0, 65537, 262159, 0, 65539, 262166, 0, 0, 262167, 0, 1, 262168, 0, 131076, 262169, 0, 131076, 262170, 0, 2, 262172, 0, 65541, 262173, 0, 65537, 262174, 0, 65539, 393215, 0, 65536, 327680, 0, 65539, 327684, 0, 131072, 327685, 0, 4, 327686, 0, 4, 327687, 0, 131074, 327691, 0, 65541, 327692, 0, 65536, 327693, 0, 65537, 327694, 0, 65537, 327695, 0, 65538, 327702, 0, 65536, 327703, 0, 65537, 327704, 0, 65537, 327705, 0, 65537, 327706, 0, 65538, 327708, 0, 65541, 327709, 0, 65537, 327710, 0, 65538, 458751, 0, 65536, 393216, 0, 65539, 393227, 0, 65536, 393228, 0, 65536, 393229, 0, 65537, 393230, 0, 65537, 393231, 0, 131075, 393232, 0, 131076, 393233, 0, 2, 393238, 0, 131072, 393239, 0, 4, 393240, 0, 4, 393241, 0, 131073, 393242, 0, 131074, 393244, 0, 65541, 393245, 0, 65537, 393246, 0, 65538, 524287, 0, 65536, 458752, 0, 65538, 458763, 0, 65541, 458764, 0, 65536, 458765, 0, 65537, 458766, 0, 3, 458767, 0, 4, 458768, 0, 131073, 458769, 0, 131074, 458780, 0, 65536, 458781, 0, 65537, 458782, 0, 65539, 589823, 0, 65536, 524288, 0, 65538, 524299, 0, 65541, 524300, 0, 65536, 524301, 0, 65537, 524302, 0, 65539, 524316, 0, 65536, 524317, 0, 65537, 524318, 0, 65538, 655359, 0, 65536, 589824, 0, 65538, 589828, 0, 0, 589829, 0, 1, 589830, 0, 131076, 589831, 0, 2, 589835, 0, 65536, 589836, 0, 65536, 589837, 0, 65537, 589838, 0, 65538, 589842, 0, 0, 589843, 0, 1, 589844, 0, 131076, 589845, 0, 131076, 589846, 0, 2, 589852, 0, 65541, 589853, 0, 65537, 589854, 0, 65538, 720895, 0, 65541, 655360, 0, 65539, 655364, 0, 65541, 655365, 0, 65541, 655366, 0, 65537, 655367, 0, 65539, 655371, 0, 65541, 655372, 0, 65541, 655373, 0, 65537, 655374, 0, 65538, 655378, 0, 131072, 655379, 0, 131073, 655380, 0, 4, 655381, 0, 4, 655382, 0, 131074, 655388, 0, 65536, 655389, 0, 65537, 655390, 0, 65539, 786431, 0, 65541, 720896, 0, 65538, 720900, 0, 65536, 720901, 0, 65536, 720902, 0, 65537, 720903, 0, 65538, 720907, 0, 65536, 720908, 0, 65536, 720909, 0, 65537, 720910, 0, 65538, 720924, 0, 65536, 720925, 0, 65537, 720926, 0, 65538, 851967, 0, 65536, 786432, 0, 65539, 786436, 0, 65536, 786437, 0, 65536, 786438, 0, 65537, 786439, 0, 131075, 786440, 0, 1, 786441, 0, 131076, 786442, 0, 131076, 786443, 0, 131077, 786444, 0, 65536, 786445, 0, 65537, 786446, 0, 65538, 786457, 0, 0, 786458, 0, 131076, 786459, 0, 131076, 786460, 0, 131077, 786461, 0, 65537, 786462, 0, 65538, 917503, 0, 65536, 851968, 0, 65539, 851972, 0, 131072, 851973, 0, 131072, 851974, 0, 4, 851975, 0, 4, 851976, 0, 131073, 851977, 0, 4, 851978, 0, 4, 851979, 0, 131073, 851980, 0, 131072, 851981, 0, 4, 851982, 0, 131074, 851993, 0, 131072, 851994, 0, 4, 851995, 0, 4, 851996, 0, 5, 851997, 0, 65537, 851998, 0, 65539, 983039, 0, 65536, 917504, 0, 65539, 917524, 0, 0, 917525, 0, 2, 917532, 0, 65536, 917533, 0, 65537, 917534, 0, 65538, 1048575, 0, 65541, 983040, 0, 65539, 983060, 0, 65536, 983061, 0, 65538, 983068, 0, 65541, 983069, 0, 65537, 983070, 0, 65539, 1114111, 0, 65536, 1048576, 0, 131075, 1048577, 0, 131076, 1048578, 0, 131076, 1048579, 0, 131076, 1048580, 0, 131076, 1048581, 0, 1, 1048582, 0, 1, 1048583, 0, 1, 1048584, 0, 1, 1048585, 0, 1, 1048586, 0, 1, 1048587, 0, 131076, 1048588, 0, 1, 1048589, 0, 131076, 1048590, 0, 131076, 1048591, 0, 131076, 1048592, 0, 131076, 1048593, 0, 131076, 1048594, 0, 1, 1048595, 0, 131076, 1048596, 0, 131077, 1048597, 0, 131075, 1048598, 0, 1, 1048599, 0, 131076, 1048600, 0, 131076, 1048601, 0, 1, 1048602, 0, 1, 1048603, 0, 131076, 1048604, 0, 131077, 1048605, 0, 65537, 1048606, 0, 65539, 1179647, 0, 65541, 1114112, 0, 65537, 1114113, 0, 65537, 1114114, 0, 65537, 1114115, 0, 65537, 1114116, 0, 65537, 1114117, 0, 65537, 1114118, 0, 65537, 1114119, 0, 65537, 1114120, 0, 65537, 1114121, 0, 65537, 1114122, 0, 65537, 1114123, 0, 65537, 1114124, 0, 65537, 1114125, 0, 65537, 1114126, 0, 65537, 1114127, 0, 65537, 1114128, 0, 65537, 1114129, 0, 65537, 1114130, 0, 65537, 1114131, 0, 65537, 1114132, 0, 65537, 1114133, 0, 65537, 1114134, 0, 65537, 1114135, 0, 65537, 1114136, 0, 65537, 1114137, 0, 65537, 1114138, 0, 65537, 1114139, 0, 65537, 1114140, 0, 65537, 1114141, 0, 65537, 1114142, 0, 65539, 1245183, 0, 131072, 1179648, 0, 131073, 1179649, 0, 131073, 1179650, 0, 4, 1179651, 0, 4, 1179652, 0, 4, 1179653, 0, 131073, 1179654, 0, 4, 1179655, 0, 131073, 1179656, 0, 4, 1179657, 0, 4, 1179658, 0, 131073, 1179659, 0, 4, 1179660, 0, 4, 1179661, 0, 131073, 1179662, 0, 131073, 1179663, 0, 4, 1179664, 0, 131073, 1179665, 0, 4, 1179666, 0, 4, 1179667, 0, 131073, 1179668, 0, 4, 1179669, 0, 4, 1179670, 0, 131073, 1179671, 0, 131073, 1179672, 0, 4, 1179673, 0, 131073, 1179674, 0, 131073, 1179675, 0, 4, 1179676, 0, 4, 1179677, 0, 131073, 1179678, 0, 131074 ) [node name="Decorations" type="TileMap" parent="World"] tile_set = SubResource( 37 ) @@ -406,3 +427,8 @@ position = Vector2( 1.37535, 6 ) [node name="Player" parent="." instance=ExtResource( 10 )] position = Vector2( 83, 19 ) +abilities = { +"attack": true, +"dash": false, +"wall_jump": false +} diff --git a/src/Levels/LevelTemplate/LevelTemplate.tscn b/src/Levels/LevelTemplate/LevelTemplate.tscn index f266707..f9a1256 100644 --- a/src/Levels/LevelTemplate/LevelTemplate.tscn +++ b/src/Levels/LevelTemplate/LevelTemplate.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=59 format=2] +[gd_scene load_steps=60 format=2] [ext_resource path="res://src/Levels/LevelTemplate/LevelTemplate.gd" type="Script" id=1] [ext_resource path="res://src/Levels/LevelTemplate/Camera2D.gd" type="Script" id=2] @@ -21,6 +21,7 @@ [ext_resource path="res://src/Items/Coin.tscn" type="PackedScene" id=19] [ext_resource path="res://src/Items/CheckPoint.tscn" type="PackedScene" id=20] [ext_resource path="res://src/Hazards/SwingingSpike.tscn" type="PackedScene" id=21] +[ext_resource path="res://src/Actors/Goblin.tscn" type="PackedScene" id=22] [sub_resource type="TileSet" id=1] 0/name = "tileset.png 0" @@ -460,7 +461,7 @@ centered = false [node name="SemiSolidsTileMap" parent="World" instance=ExtResource( 11 )] tile_set = SubResource( 1 ) -tile_data = PoolIntArray( -65528, 0, 0, -65527, 0, 131076, -65526, 0, 1, -65525, 0, 131076, -65524, 0, 131076, -65523, 0, 1, -65522, 0, 1, -65521, 0, 1, -65520, 0, 131076, -65519, 0, 2, 8, 0, 65536, 9, 0, 3, 10, 0, 131073, 11, 0, 4, 12, 0, 131073, 13, 0, 131073, 14, 0, 5, 15, 0, 65537, 16, 0, 65537, 17, 0, 65538, 65544, 0, 65541, 65545, 0, 65539, 65546, 1, 0, 65547, 1, 1, 65548, 1, 1, 65549, 1, 2, 65550, 0, 65541, 65551, 0, 65537, 65552, 0, 65537, 65553, 0, 131075, 65554, 0, 1, 65555, 0, 1, 65556, 0, 1, 65557, 0, 131076, 65558, 0, 1, 65559, 0, 1, 65560, 0, 1, 65561, 0, 131076, 65562, 0, 1, 65563, 0, 1, 65564, 0, 1, 65565, 0, 2, 131080, 0, 65536, 131081, 0, 65538, 131082, 1, 131072, 131083, 1, 131073, 131084, 1, 131073, 131085, 1, 131074, 131086, 0, 65536, 131087, 0, 65537, 131088, 0, 65537, 131089, 0, 65537, 131090, 0, 65537, 131091, 0, 65537, 131092, 0, 65537, 131093, 0, 65537, 131094, 0, 65537, 131095, 0, 65537, 131096, 0, 65537, 131097, 0, 65537, 131098, 0, 65537, 131099, 0, 65537, 131100, 0, 65537, 131101, 0, 65538, 196616, 0, 131072, 196617, 0, 131074, 196618, 0, 0, 196619, 0, 2, 196620, 0, 0, 196621, 0, 0, 196622, 0, 0, 196623, 0, 131073, 196624, 0, 5, 196625, 0, 65537, 196626, 0, 65537, 196627, 0, 65537, 196628, 0, 65537, 196629, 0, 65537, 196630, 0, 65537, 196631, 0, 65537, 196632, 0, 65537, 196633, 0, 65537, 196634, 0, 65537, 196635, 0, 65537, 196636, 0, 65537, 196637, 0, 65539, 262154, 0, 131072, 262155, 0, 131074, 262157, 0, 65541, 262158, 0, 65539, 262160, 0, 65541, 262161, 0, 65537, 262162, 0, 65537, 262163, 0, 3, 262164, 0, 4, 262165, 0, 4, 262166, 0, 131073, 262167, 0, 131073, 262168, 0, 131073, 262169, 0, 5, 262170, 0, 65537, 262171, 0, 65537, 262172, 0, 65537, 262173, 0, 65538, 327693, 0, 131072, 327694, 0, 131074, 327696, 0, 131072, 327697, 0, 5, 327698, 0, 65537, 327699, 0, 65538, 327700, 1, 0, 327701, 1, 1, 327702, 1, 1, 327703, 1, 1, 327704, 1, 2, 327705, 0, 65541, 327706, 0, 65537, 327707, 0, 65537, 327708, 0, 65537, 327709, 0, 65539, 393233, 0, 65536, 393234, 0, 65537, 393235, 0, 65538, 393236, 1, 65536, 393237, 1, 65537, 393238, 1, 65537, 393239, 1, 65537, 393240, 1, 65538, 393241, 0, 131072, 393242, 0, 4, 393243, 0, 131073, 393244, 0, 5, 393245, 0, 65539, 458767, 0, 0, 458768, 0, 2, 458769, 0, 131072, 458770, 0, 5, 458771, 0, 65539, 458772, 1, 65536, 458773, 1, 65537, 458774, 1, 65537, 458775, 1, 65537, 458776, 1, 0, 458777, 1, 1, 458778, 1, 1, 458779, 1, 2, 458780, 0, 65536, 458781, 0, 65539, 524303, 0, 131072, 524304, 0, 131074, 524306, 0, 65541, 524307, 0, 65539, 524308, 1, 131072, 524309, 1, 131073, 524310, 1, 131073, 524311, 1, 131073, 524312, 1, 0, 524313, 1, 65537, 524314, 1, 65537, 524315, 1, 65538, 524316, 0, 65536, 524317, 0, 65539, 589842, 0, 65541, 589843, 0, 131075, 589844, 0, 131076, 589845, 0, 1, 589846, 0, 1, 589847, 0, 2, 589848, 1, 65536, 589849, 1, 65537, 589850, 1, 65537, 589851, 1, 65538, 589852, 0, 65541, 589853, 0, 65539, 655377, 0, 0, 655378, 0, 131077, 655379, 0, 65537, 655380, 0, 65537, 655381, 0, 65537, 655382, 0, 65537, 655383, 0, 65538, 655384, 1, 65536, 655385, 1, 65537, 655386, 1, 65537, 655387, 1, 65538, 655388, 0, 65541, 655389, 0, 65538, 720910, 0, 0, 720912, 0, 0, 720913, 0, 131077, 720914, 0, 65537, 720915, 0, 65537, 720916, 0, 65537, 720917, 0, 65537, 720918, 0, 65537, 720919, 0, 65539, 720920, 1, 65536, 720921, 1, 65537, 720922, 1, 65537, 720923, 1, 65538, 720924, 0, 65536, 720925, 0, 65539, 786445, 0, 0, 786446, 0, 131076, 786447, 0, 1, 786448, 0, 131077, 786449, 0, 65537, 786450, 0, 65537, 786451, 0, 65537, 786452, 0, 65537, 786453, 0, 65537, 786454, 0, 65537, 786455, 0, 65538, 786456, 1, 131072, 786457, 1, 131073, 786458, 1, 131073, 786459, 1, 131074, 786460, 0, 65541, 786461, 0, 65539, 851980, 0, 0, 851981, 0, 131077, 851982, 0, 65537, 851983, 0, 65537, 851984, 0, 65537, 851985, 0, 65537, 851986, 0, 65537, 851987, 0, 65537, 851988, 0, 65537, 851989, 0, 65537, 851990, 0, 65537, 851991, 0, 131075, 851992, 0, 1, 851993, 0, 1, 851994, 0, 131076, 851995, 0, 1, 851996, 0, 131077, 851997, 0, 65539, 917515, 0, 0, 917516, 0, 131077, 917517, 0, 65537, 917518, 0, 65537, 917519, 0, 65537, 917520, 0, 65537, 917521, 0, 65537, 917522, 0, 65537, 917523, 0, 65537, 917524, 0, 65537, 917525, 0, 65537, 917526, 0, 65537, 917527, 0, 65537, 917528, 0, 65537, 917529, 0, 65537, 917530, 0, 65537, 917531, 0, 65537, 917532, 0, 65537, 917533, 0, 65539, 983051, 0, 65536, 983052, 0, 65537, 983053, 0, 65537, 983054, 0, 65537, 983055, 0, 65537, 983056, 0, 65537, 983057, 0, 65537, 983058, 0, 65537, 983059, 0, 65537, 983060, 0, 65537, 983061, 0, 65537, 983062, 0, 65537, 983063, 0, 65537, 983064, 0, 65537, 983065, 0, 65537, 983066, 0, 65537, 983067, 0, 65537, 983068, 0, 65537, 983069, 0, 65538, 1048587, 0, 65536, 1048588, 0, 65537, 1048589, 0, 65537, 1048590, 0, 65537, 1048591, 0, 65537, 1048592, 0, 65537, 1048593, 0, 65537, 1048594, 0, 65537, 1048595, 0, 65537, 1048596, 0, 65537, 1048597, 0, 65537, 1048598, 0, 65537, 1048599, 0, 65537, 1048600, 0, 65537, 1048601, 0, 65537, 1048602, 0, 65537, 1048603, 0, 65537, 1048604, 0, 65537, 1048605, 0, 65539, 1114112, 0, 0, 1114113, 0, 131076, 1114114, 0, 1, 1114115, 0, 1, 1114116, 0, 131076, 1114117, 0, 131076, 1114118, 0, 1, 1114119, 0, 131076, 1114120, 0, 131076, 1114121, 0, 1, 1114122, 0, 131076, 1114123, 0, 131077, 1114124, 0, 65537, 1114125, 0, 65537, 1114126, 0, 65537, 1114127, 0, 65537, 1114128, 0, 65537, 1114129, 0, 3, 1114130, 0, 4, 1114131, 0, 131073, 1114132, 0, 4, 1114133, 0, 5, 1114134, 0, 65537, 1114135, 0, 65537, 1114136, 0, 65537, 1114137, 0, 65537, 1114138, 0, 65537, 1114139, 0, 65537, 1114140, 0, 65537, 1114141, 0, 65539, 1179648, 0, 131072, 1179649, 0, 131073, 1179650, 0, 131073, 1179651, 0, 4, 1179652, 0, 4, 1179653, 0, 5, 1179654, 0, 65537, 1179655, 0, 65537, 1179656, 0, 65537, 1179657, 0, 65537, 1179658, 0, 65537, 1179659, 0, 65537, 1179660, 0, 65537, 1179661, 0, 65537, 1179662, 0, 65537, 1179663, 0, 65537, 1179664, 0, 65537, 1179665, 0, 65538, 1179666, 1, 0, 1179667, 1, 1, 1179668, 1, 2, 1179669, 0, 65536, 1179670, 0, 65537, 1179671, 0, 65537, 1179672, 0, 65537, 1179673, 0, 65537, 1179674, 0, 3, 1179675, 0, 4, 1179676, 0, 131073, 1179677, 0, 131074, 1179679, 0, 0, 1179680, 0, 1, 1179681, 0, 131076, 1179682, 0, 131076, 1179683, 0, 131076, 1179684, 0, 1, 1179685, 0, 1, 1179686, 0, 131076, 1179687, 0, 131076, 1179688, 0, 131076, 1179689, 0, 131076, 1179690, 0, 1, 1179691, 0, 131076, 1179692, 0, 1, 1179693, 0, 131076, 1179694, 0, 1, 1179695, 0, 1, 1179696, 0, 131076, 1179697, 0, 1, 1179698, 0, 1, 1179699, 0, 1, 1179700, 0, 1, 1179701, 0, 131076, 1179702, 0, 1, 1179703, 0, 1, 1179704, 0, 1, 1179705, 0, 1, 1179706, 0, 1, 1179707, 0, 1, 1179708, 0, 131076, 1179709, 0, 1, 1179710, 0, 1, 1179711, 0, 131076, 1179712, 0, 131076, 1179713, 0, 131076, 1179714, 0, 131076, 1179715, 0, 131076, 1179716, 0, 131076, 1179717, 0, 2, 1310719, 1, 0, 1245184, 1, 1, 1245185, 1, 1, 1245186, 1, 1, 1245187, 1, 1, 1245188, 1, 2, 1245189, 0, 65536, 1245190, 0, 65537, 1245191, 0, 65537, 1245192, 0, 65537, 1245193, 0, 65537, 1245194, 0, 65537, 1245195, 0, 65537, 1245196, 0, 65537, 1245197, 0, 65537, 1245198, 0, 65537, 1245199, 0, 65537, 1245200, 0, 65537, 1245201, 0, 65539, 1245202, 1, 65536, 1245203, 1, 65537, 1245204, 1, 65538, 1245205, 0, 65536, 1245206, 0, 65537, 1245207, 0, 65537, 1245208, 0, 65537, 1245209, 0, 65537, 1245210, 0, 65538, 1245211, 1, 0, 1245212, 1, 1, 1245213, 1, 2, 1245215, 0, 65536, 1245216, 0, 65537, 1245217, 0, 65537, 1245218, 0, 65537, 1245219, 0, 65537, 1245220, 0, 65537, 1245221, 0, 65537, 1245222, 0, 65537, 1245223, 0, 65537, 1245224, 0, 65537, 1245225, 0, 65537, 1245226, 0, 65537, 1245227, 0, 65537, 1245228, 0, 65537, 1245229, 0, 65537, 1245230, 0, 65537, 1245231, 0, 65537, 1245232, 0, 65537, 1245233, 0, 65537, 1245234, 0, 65537, 1245235, 0, 65537, 1245236, 0, 65537, 1245237, 0, 65537, 1245238, 0, 65537, 1245239, 0, 65537, 1245240, 0, 65537, 1245241, 0, 65537, 1245242, 0, 65537, 1245243, 0, 65537, 1245244, 0, 65537, 1245245, 0, 65537, 1245246, 0, 65537, 1245247, 0, 65537, 1245248, 0, 65537, 1245249, 0, 65537, 1245250, 0, 65537, 1245251, 0, 65537, 1245252, 0, 65537, 1245253, 0, 65539, 1376255, 1, 65536, 1310720, 1, 65537, 1310721, 1, 0, 1310722, 1, 131073, 1310723, 1, 0, 1310724, 1, 65538, 1310725, 0, 65541, 1310726, 0, 65537, 1310727, 0, 65537, 1310728, 0, 65537, 1310729, 0, 3, 1310730, 0, 4, 1310731, 0, 4, 1310732, 0, 131073, 1310733, 0, 131073, 1310734, 0, 4, 1310735, 0, 4, 1310736, 0, 5, 1310737, 0, 65538, 1310738, 1, 131072, 1310739, 1, 131073, 1310740, 1, 131074, 1310741, 0, 65541, 1310742, 0, 65537, 1310743, 0, 65537, 1310744, 0, 65537, 1310745, 0, 65537, 1310746, 0, 65538, 1310747, 1, 65536, 1310748, 1, 65537, 1310749, 1, 65538, 1310751, 0, 65541, 1310752, 0, 65537, 1310753, 0, 65537, 1310754, 0, 65537, 1310755, 0, 65537, 1310756, 0, 65537, 1310757, 0, 65537, 1310758, 0, 65537, 1310759, 0, 65537, 1310760, 0, 65537, 1310761, 0, 65537, 1310762, 0, 65537, 1310763, 0, 65537, 1310764, 0, 65537, 1310765, 0, 65537, 1310766, 0, 65537, 1310767, 0, 65537, 1310768, 0, 65537, 1310769, 0, 65537, 1310770, 0, 65537, 1310771, 0, 65537, 1310772, 0, 65537, 1310773, 0, 65537, 1310774, 0, 65537, 1310775, 0, 65537, 1310776, 0, 65537, 1310777, 0, 65537, 1310778, 0, 65537, 1310779, 0, 65537, 1310780, 0, 65537, 1310781, 0, 65537, 1310782, 0, 65537, 1310783, 0, 65537, 1310784, 0, 65537, 1310785, 0, 65537, 1310786, 0, 65537, 1310787, 0, 65537, 1310788, 0, 65537, 1310789, 0, 65539, 1441791, 1, 65536, 1376256, 1, 65537, 1376257, 1, 65538, 1376258, 0, 0, 1376259, 1, 65536, 1376260, 1, 65538, 1376261, 0, 65536, 1376262, 0, 65537, 1376263, 0, 65537, 1376264, 0, 65537, 1376265, 0, 65538, 1376266, 1, 0, 1376267, 1, 1, 1376268, 1, 1, 1376269, 1, 1, 1376270, 1, 1, 1376271, 1, 2, 1376272, 0, 65536, 1376273, 0, 131075, 1376274, 0, 1, 1376275, 0, 131076, 1376276, 0, 1, 1376277, 0, 131077, 1376278, 0, 65537, 1376279, 0, 65537, 1376280, 0, 65537, 1376281, 0, 65537, 1376282, 0, 65539, 1376283, 1, 65536, 1376284, 1, 65537, 1376285, 1, 65538, 1376287, 0, 65536, 1376288, 0, 65537, 1376289, 0, 65537, 1376290, 0, 65537, 1376291, 0, 65537, 1376292, 0, 65537, 1376293, 0, 65537, 1376294, 0, 65537, 1376295, 0, 65537, 1376296, 0, 65537, 1376297, 0, 65537, 1376298, 0, 65537, 1376299, 0, 65537, 1376300, 0, 65537, 1376301, 0, 65537, 1376302, 0, 65537, 1376303, 0, 65537, 1376304, 0, 65537, 1376305, 0, 65537, 1376306, 0, 65537, 1376307, 0, 65537, 1376308, 0, 65537, 1376309, 0, 65537, 1376310, 0, 65537, 1376311, 0, 65537, 1376312, 0, 65537, 1376313, 0, 65537, 1376314, 0, 65537, 1376315, 0, 65537, 1376316, 0, 65537, 1376317, 0, 65537, 1376318, 0, 65537, 1376319, 0, 65537, 1376320, 0, 65537, 1376321, 0, 65537, 1376322, 0, 65537, 1376323, 0, 65537, 1376324, 0, 65537, 1376325, 0, 65538, 1507327, 1, 65536, 1441792, 1, 65537, 1441793, 1, 0, 1441794, 1, 1, 1441795, 1, 0, 1441796, 1, 65538, 1441797, 0, 65541, 1441798, 0, 65537, 1441799, 0, 65537, 1441800, 0, 65537, 1441801, 0, 65538, 1441802, 1, 65536, 1441803, 1, 65537, 1441804, 1, 65537, 1441805, 1, 65537, 1441806, 1, 65537, 1441807, 1, 65538, 1441808, 0, 65541, 1441809, 0, 65537, 1441810, 0, 65537, 1441811, 0, 65537, 1441812, 0, 65537, 1441813, 0, 65537, 1441814, 0, 65537, 1441815, 0, 65537, 1441816, 0, 65537, 1441817, 0, 65537, 1441818, 0, 65539, 1441819, 1, 131072, 1441820, 1, 131073, 1441821, 1, 131074, 1441823, 0, 65536, 1441824, 0, 65537, 1441825, 0, 65537, 1441826, 0, 65537, 1441827, 0, 65537, 1441828, 0, 65537, 1441829, 0, 65537, 1441830, 0, 65537, 1441831, 0, 65537, 1441832, 0, 65537, 1441833, 0, 65537, 1441834, 0, 65537, 1441835, 0, 65537, 1441836, 0, 65537, 1441837, 0, 65537, 1441838, 0, 65537, 1441839, 0, 65537, 1441840, 0, 65537, 1441841, 0, 65537, 1441842, 0, 65537, 1441843, 0, 65537, 1441844, 0, 65537, 1441845, 0, 65537, 1441846, 0, 65537, 1441847, 0, 65537, 1441848, 0, 65537, 1441849, 0, 65537, 1441850, 0, 65537, 1441851, 0, 65537, 1441852, 0, 65537, 1441853, 0, 65537, 1441854, 0, 65537, 1441855, 0, 65537, 1441856, 0, 65537, 1441857, 0, 65537, 1441858, 0, 65537, 1441859, 0, 65537, 1441860, 0, 65537, 1441861, 0, 65538, 1572863, 1, 131072, 1507328, 1, 131073, 1507329, 1, 131073, 1507330, 1, 131073, 1507331, 1, 131073, 1507332, 1, 131074, 1507333, 0, 65536, 1507334, 0, 65537, 1507335, 0, 65537, 1507336, 0, 65537, 1507337, 0, 65539, 1507338, 1, 65536, 1507339, 1, 65537, 1507340, 1, 65537, 1507341, 1, 65537, 1507342, 1, 65537, 1507343, 1, 65538, 1507344, 0, 65541, 1507345, 0, 65537, 1507346, 0, 65537, 1507347, 0, 65537, 1507348, 0, 65537, 1507349, 0, 65537, 1507350, 0, 65537, 1507351, 0, 65537, 1507352, 0, 65537, 1507353, 0, 65537, 1507354, 0, 131075, 1507355, 0, 1, 1507356, 0, 1, 1507357, 0, 2, 1507359, 0, 65536, 1507360, 0, 65537, 1507361, 0, 65537, 1507362, 0, 65537, 1507363, 0, 65537, 1507364, 0, 65537, 1507365, 0, 65537, 1507366, 0, 65537, 1507367, 0, 65537, 1507368, 0, 65537, 1507369, 0, 65537, 1507370, 0, 65537, 1507371, 0, 65537, 1507372, 0, 65537, 1507373, 0, 65537, 1507374, 0, 65537, 1507375, 0, 65537, 1507376, 0, 65537, 1507377, 0, 65537, 1507378, 0, 65537, 1507379, 0, 65537, 1507380, 0, 65537, 1507381, 0, 65537, 1507382, 0, 65537, 1507383, 0, 65537, 1507384, 0, 65537, 1507385, 0, 65537, 1507386, 0, 65537, 1507387, 0, 65537, 1507388, 0, 65537, 1507389, 0, 65537, 1507390, 0, 65537, 1507391, 0, 65537, 1507392, 0, 65537, 1507393, 0, 65537, 1507394, 0, 65537, 1507395, 0, 65537, 1507396, 0, 65537, 1507397, 0, 65538, 1572864, 0, 0, 1572865, 0, 131076, 1572866, 0, 131076, 1572867, 0, 1, 1572868, 0, 2, 1572869, 0, 131072, 1572870, 0, 5, 1572871, 0, 65537, 1572872, 0, 65537, 1572873, 0, 65538, 1572874, 1, 131072, 1572875, 1, 131073, 1572876, 1, 131073, 1572877, 1, 131073, 1572878, 1, 131073, 1572879, 1, 131074, 1572880, 0, 65536, 1572881, 0, 65537, 1572882, 0, 65537, 1572883, 0, 65537, 1572884, 0, 65537, 1572885, 0, 65537, 1572886, 0, 65537, 1572887, 0, 65537, 1572888, 0, 65537, 1572889, 0, 65537, 1572890, 0, 65537, 1572891, 0, 65537, 1572892, 0, 65537, 1572893, 0, 65539, 1572895, 0, 65541, 1572896, 0, 65537, 1572897, 0, 65537, 1572898, 0, 65537, 1572899, 0, 65537, 1572900, 0, 65537, 1572901, 0, 65537, 1572902, 0, 65537, 1572903, 0, 65537, 1572904, 0, 65537, 1572905, 0, 65537, 1572906, 0, 65537, 1572907, 0, 65537, 1572908, 0, 65537, 1572909, 0, 65537, 1572910, 0, 65537, 1572911, 0, 65537, 1572912, 0, 65537, 1572913, 0, 65537, 1572914, 0, 65537, 1572915, 0, 65537, 1572916, 0, 65537, 1572917, 0, 65537, 1572918, 0, 65537, 1572919, 0, 65537, 1572920, 0, 65537, 1572921, 0, 65537, 1572922, 0, 65537, 1572923, 0, 65537, 1572924, 0, 65537, 1572925, 0, 65537, 1572926, 0, 65537, 1572927, 0, 65537, 1572928, 0, 65537, 1572929, 0, 65537, 1572930, 0, 65537, 1572931, 0, 65537, 1572932, 0, 65537, 1572933, 0, 65538, 1638400, 0, 65536, 1638401, 0, 65537, 1638402, 0, 65537, 1638403, 0, 65537, 1638404, 0, 65539, 1638406, 0, 65541, 1638407, 0, 65537, 1638408, 0, 65537, 1638409, 0, 131075, 1638410, 0, 1, 1638411, 0, 131076, 1638412, 0, 131076, 1638413, 0, 1, 1638414, 0, 1, 1638415, 0, 1, 1638416, 0, 131077, 1638417, 0, 65537, 1638418, 0, 65537, 1638419, 0, 65537, 1638420, 0, 65537, 1638421, 0, 65537, 1638422, 0, 65537, 1638423, 0, 65537, 1638424, 0, 65537, 1638425, 0, 65537, 1638426, 0, 65537, 1638427, 0, 65537, 1638428, 0, 65537, 1638429, 0, 65538, 1638431, 0, 65541, 1638432, 0, 65537, 1638433, 0, 65537, 1638434, 0, 65537, 1638435, 0, 65537, 1638436, 0, 65537, 1638437, 0, 65537, 1638438, 0, 65537, 1638439, 0, 65537, 1638440, 0, 65537, 1638441, 0, 65537, 1638442, 0, 65537, 1638443, 0, 65537, 1638444, 0, 65537, 1638445, 0, 65537, 1638446, 0, 65537, 1638447, 0, 65537, 1638448, 0, 65537, 1638449, 0, 65537, 1638450, 0, 65537, 1638451, 0, 65537, 1638452, 0, 65537, 1638453, 0, 65537, 1638454, 0, 65537, 1638455, 0, 65537, 1638456, 0, 65537, 1638457, 0, 65537, 1638458, 0, 65537, 1638459, 0, 65537, 1638460, 0, 65537, 1638461, 0, 65537, 1638462, 0, 65537, 1638463, 0, 65537, 1638464, 0, 65537, 1638465, 0, 65537, 1638466, 0, 65537, 1638467, 0, 65537, 1638468, 0, 65537, 1638469, 0, 65539, 1703936, 0, 65541, 1703937, 0, 65537, 1703938, 0, 65537, 1703939, 0, 65537, 1703940, 0, 131075, 1703941, 0, 131076, 1703942, 0, 131077, 1703943, 0, 3, 1703944, 0, 131073, 1703945, 0, 131073, 1703946, 0, 4, 1703947, 0, 4, 1703948, 0, 4, 1703949, 0, 4, 1703950, 0, 131073, 1703951, 0, 5, 1703952, 0, 65537, 1703953, 0, 65537, 1703954, 0, 65537, 1703955, 0, 65537, 1703956, 0, 65537, 1703957, 0, 65537, 1703958, 0, 65537, 1703959, 0, 65537, 1703960, 0, 65537, 1703961, 0, 65537, 1703962, 0, 65537, 1703963, 0, 65537, 1703964, 0, 65537, 1703965, 0, 65539, 1703967, 0, 65541, 1703968, 0, 65537, 1703969, 0, 65537, 1703970, 0, 65537, 1703971, 0, 65537, 1703972, 0, 65537, 1703973, 0, 65537, 1703974, 0, 65537, 1703975, 0, 65537, 1703976, 0, 65537, 1703977, 0, 65537, 1703978, 0, 65537, 1703979, 0, 65537, 1703980, 0, 65537, 1703981, 0, 65537, 1703982, 0, 65537, 1703983, 0, 65537, 1703984, 0, 65537, 1703985, 0, 65537, 1703986, 0, 65537, 1703987, 0, 65537, 1703988, 0, 65537, 1703989, 0, 65537, 1703990, 0, 65537, 1703991, 0, 65537, 1703992, 0, 65537, 1703993, 0, 65537, 1703994, 0, 65537, 1703995, 0, 65537, 1703996, 0, 65537, 1703997, 0, 65537, 1703998, 0, 65537, 1703999, 0, 65537, 1704000, 0, 65537, 1704001, 0, 65537, 1704002, 0, 65537, 1704003, 0, 65537, 1704004, 0, 65537, 1704005, 0, 65539, 1769472, 0, 65541, 1769473, 0, 3, 1769474, 0, 131073, 1769475, 0, 5, 1769476, 0, 65537, 1769477, 0, 65537, 1769478, 0, 65537, 1769479, 0, 65539, 1769480, 1, 0, 1769481, 1, 1, 1769482, 1, 2, 1769483, 0, 0, 1769484, 1, 0, 1769485, 1, 0, 1769486, 1, 0, 1769487, 0, 65536, 1769488, 0, 65537, 1769489, 0, 65537, 1769490, 0, 3, 1769491, 0, 131073, 1769492, 0, 5, 1769493, 0, 65537, 1769494, 0, 65537, 1769495, 0, 3, 1769496, 0, 131073, 1769497, 0, 4, 1769498, 0, 131073, 1769499, 0, 131073, 1769500, 0, 5, 1769501, 0, 65538, 1769503, 0, 65541, 1769504, 0, 65537, 1769505, 0, 65537, 1769506, 0, 65537, 1769507, 0, 65537, 1769508, 0, 65537, 1769509, 0, 65537, 1769510, 0, 65537, 1769511, 0, 65537, 1769512, 0, 65537, 1769513, 0, 65537, 1769514, 0, 65537, 1769515, 0, 65537, 1769516, 0, 65537, 1769517, 0, 65537, 1769518, 0, 65537, 1769519, 0, 65537, 1769520, 0, 65537, 1769521, 0, 65537, 1769522, 0, 65537, 1769523, 0, 65537, 1769524, 0, 65537, 1769525, 0, 65537, 1769526, 0, 65537, 1769527, 0, 65537, 1769528, 0, 65537, 1769529, 0, 65537, 1769530, 0, 65537, 1769531, 0, 65537, 1769532, 0, 65537, 1769533, 0, 65537, 1769534, 0, 65537, 1769535, 0, 65537, 1769536, 0, 65537, 1769537, 0, 65537, 1769538, 0, 65537, 1769539, 0, 65537, 1769540, 0, 65537, 1769541, 0, 65539, 1835008, 0, 65536, 1835009, 0, 65538, 1835011, 0, 65536, 1835012, 0, 65537, 1835013, 0, 65537, 1835014, 0, 65537, 1835015, 0, 65539, 1835016, 1, 65536, 1835017, 1, 65537, 1835018, 1, 65538, 1835019, 0, 0, 1835020, 1, 0, 1835021, 0, 0, 1835022, 1, 0, 1835023, 0, 131072, 1835024, 0, 4, 1835025, 0, 5, 1835026, 0, 65539, 1835028, 0, 65536, 1835029, 0, 65537, 1835030, 0, 65537, 1835031, 0, 65539, 1835032, 1, 0, 1835033, 1, 1, 1835034, 1, 1, 1835035, 1, 2, 1835036, 0, 131072, 1835037, 0, 131074, 1835039, 0, 65541, 1835040, 0, 65537, 1835041, 0, 65537, 1835042, 0, 65537, 1835043, 0, 65537, 1835044, 0, 65537, 1835045, 0, 65537, 1835046, 0, 65537, 1835047, 0, 65537, 1835048, 0, 65537, 1835049, 0, 65537, 1835050, 0, 65537, 1835051, 0, 65537, 1835052, 0, 65537, 1835053, 0, 65537, 1835054, 0, 65537, 1835055, 0, 65537, 1835056, 0, 65537, 1835057, 0, 65537, 1835058, 0, 65537, 1835059, 0, 65537, 1835060, 0, 65537, 1835061, 0, 65537, 1835062, 0, 65537, 1835063, 0, 65537, 1835064, 0, 65537, 1835065, 0, 65537, 1835066, 0, 65537, 1835067, 0, 65537, 1835068, 0, 65537, 1835069, 0, 65537, 1835070, 0, 65537, 1835071, 0, 65537, 1835072, 0, 65537, 1835073, 0, 65537, 1835074, 0, 65537, 1835075, 0, 65537, 1835076, 0, 65537, 1835077, 0, 65538, 1900544, 0, 65536, 1900545, 0, 131075, 1900546, 0, 1, 1900547, 0, 131077, 1900548, 0, 65537, 1900549, 0, 65537, 1900550, 0, 3, 1900551, 0, 131074, 1900552, 1, 131072, 1900553, 1, 131073, 1900554, 1, 131074, 1900555, 1, 0, 1900556, 1, 1, 1900557, 1, 1, 1900558, 1, 1, 1900559, 1, 1, 1900560, 1, 2, 1900561, 0, 65541, 1900562, 0, 131075, 1900563, 0, 131076, 1900564, 0, 131077, 1900565, 0, 65537, 1900566, 0, 65537, 1900567, 0, 65538, 1900568, 1, 65536, 1900569, 1, 65537, 1900570, 1, 65537, 1900571, 1, 0, 1900572, 1, 1, 1900573, 1, 2, 1900575, 0, 65541, 1900576, 0, 65537, 1900577, 0, 65537, 1900578, 0, 65537, 1900579, 0, 65537, 1900580, 0, 65537, 1900581, 0, 65537, 1900582, 0, 65537, 1900583, 0, 65537, 1900584, 0, 65537, 1900585, 0, 65537, 1900586, 0, 65537, 1900587, 0, 65537, 1900588, 0, 65537, 1900589, 0, 65537, 1900590, 0, 65537, 1900591, 0, 65537, 1900592, 0, 65537, 1900593, 0, 65537, 1900594, 0, 65537, 1900595, 0, 65537, 1900596, 0, 65537, 1900597, 0, 65537, 1900598, 0, 65537, 1900599, 0, 65537, 1900600, 0, 65537, 1900601, 0, 65537, 1900602, 0, 65537, 1900603, 0, 65537, 1900604, 0, 65537, 1900605, 0, 65537, 1900606, 0, 65537, 1900607, 0, 65537, 1900608, 0, 65537, 1900609, 0, 65537, 1900610, 0, 65537, 1900611, 0, 65537, 1900612, 0, 65537, 1900613, 0, 65539, 1966080, 0, 65536, 1966081, 0, 3, 1966082, 0, 131073, 1966083, 0, 5, 1966084, 0, 65537, 1966085, 0, 65537, 1966086, 0, 65539, 1966088, 0, 0, 1966089, 0, 1, 1966090, 0, 2, 1966091, 1, 131072, 1966092, 1, 131073, 1966093, 1, 0, 1966094, 1, 0, 1966095, 1, 131073, 1966096, 1, 131074, 1966097, 0, 65536, 1966098, 0, 65537, 1966099, 0, 65537, 1966100, 0, 65537, 1966101, 0, 65537, 1966102, 0, 65537, 1966103, 0, 65539, 1966104, 1, 131072, 1966105, 1, 0, 1966106, 1, 65537, 1966107, 1, 65537, 1966108, 1, 65537, 1966109, 1, 65538, 1966111, 0, 65541, 1966112, 0, 65537, 1966113, 0, 65537, 1966114, 0, 65537, 1966115, 0, 65537, 1966116, 0, 65537, 1966117, 0, 65537, 1966118, 0, 65537, 1966119, 0, 65537, 1966120, 0, 65537, 1966121, 0, 65537, 1966122, 0, 65537, 1966123, 0, 65537, 1966124, 0, 65537, 1966125, 0, 65537, 1966126, 0, 65537, 1966127, 0, 65537, 1966128, 0, 65537, 1966129, 0, 65537, 1966130, 0, 65537, 1966131, 0, 65537, 1966132, 0, 65537, 1966133, 0, 65537, 1966134, 0, 65537, 1966135, 0, 65537, 1966136, 0, 65537, 1966137, 0, 65537, 1966138, 0, 65537, 1966139, 0, 65537, 1966140, 0, 65537, 1966141, 0, 65537, 1966142, 0, 65537, 1966143, 0, 65537, 1966144, 0, 65537, 1966145, 0, 65537, 1966146, 0, 65537, 1966147, 0, 65537, 1966148, 0, 65537, 1966149, 0, 65538, 2031616, 0, 65536, 2031617, 0, 65538, 2031619, 0, 65541, 2031620, 0, 65537, 2031621, 0, 65537, 2031622, 0, 131075, 2031623, 0, 131076, 2031624, 0, 131077, 2031625, 0, 65537, 2031626, 0, 131075, 2031627, 0, 1, 2031628, 0, 2, 2031629, 1, 65536, 2031630, 1, 65538, 2031631, 0, 0, 2031632, 0, 1, 2031633, 0, 131077, 2031634, 0, 65537, 2031635, 0, 65537, 2031636, 0, 65537, 2031637, 0, 65537, 2031638, 0, 3, 2031639, 0, 131074, 2031640, 0, 0, 2031641, 1, 65536, 2031642, 1, 65537, 2031643, 1, 65537, 2031644, 1, 65537, 2031645, 1, 65538, 2031647, 0, 65541, 2031648, 0, 65537, 2031649, 0, 65537, 2031650, 0, 65537, 2031651, 0, 65537, 2031652, 0, 65537, 2031653, 0, 65537, 2031654, 0, 65537, 2031655, 0, 65537, 2031656, 0, 65537, 2031657, 0, 65537, 2031658, 0, 65537, 2031659, 0, 65537, 2031660, 0, 65537, 2031661, 0, 65537, 2031662, 0, 65537, 2031663, 0, 65537, 2031664, 0, 65537, 2031665, 0, 65537, 2031666, 0, 65537, 2031667, 0, 65537, 2031668, 0, 65537, 2031669, 0, 65537, 2031670, 0, 65537, 2031671, 0, 65537, 2031672, 0, 65537, 2031673, 0, 65537, 2031674, 0, 65537, 2031675, 0, 65537, 2031676, 0, 65537, 2031677, 0, 65537, 2031678, 0, 65537, 2031679, 0, 65537, 2031680, 0, 65537, 2031681, 0, 65537, 2031682, 0, 65537, 2031683, 0, 65537, 2031684, 0, 65537, 2031685, 0, 65539, 2097152, 0, 65536, 2097153, 0, 131075, 2097154, 0, 1, 2097155, 0, 131077, 2097156, 0, 65537, 2097157, 0, 65537, 2097158, 0, 65537, 2097159, 0, 65537, 2097160, 0, 65537, 2097161, 0, 65537, 2097162, 0, 65537, 2097163, 0, 65537, 2097164, 0, 65538, 2097165, 1, 131072, 2097166, 1, 131074, 2097167, 0, 65541, 2097168, 0, 65537, 2097169, 0, 65537, 2097170, 0, 65537, 2097171, 0, 65537, 2097172, 0, 65537, 2097173, 0, 65537, 2097174, 0, 65538, 2097175, 1, 0, 2097176, 1, 1, 2097177, 1, 0, 2097178, 1, 65537, 2097179, 1, 65537, 2097180, 1, 65537, 2097181, 1, 65538, 2097183, 0, 65541, 2097184, 0, 65537, 2097185, 0, 65537, 2097186, 0, 65537, 2097187, 0, 65537, 2097188, 0, 65537, 2097189, 0, 65537, 2097190, 0, 65537, 2097191, 0, 65537, 2097192, 0, 65537, 2097193, 0, 65537, 2097194, 0, 65537, 2097195, 0, 65537, 2097196, 0, 65537, 2097197, 0, 65537, 2097198, 0, 65537, 2097199, 0, 65537, 2097200, 0, 65537, 2097201, 0, 65537, 2097202, 0, 65537, 2097203, 0, 65537, 2097204, 0, 65537, 2097205, 0, 65537, 2097206, 0, 65537, 2097207, 0, 65537, 2097208, 0, 65537, 2097209, 0, 65537, 2097210, 0, 65537, 2097211, 0, 65537, 2097212, 0, 65537, 2097213, 0, 65537, 2097214, 0, 65537, 2097215, 0, 65537, 2097216, 0, 65537, 2097217, 0, 65537, 2097218, 0, 65537, 2097219, 0, 65537, 2097220, 0, 65537, 2097221, 0, 65539, 2162688, 0, 65541, 2162689, 0, 65537, 2162690, 0, 65537, 2162691, 0, 65537, 2162692, 0, 65537, 2162693, 0, 65537, 2162694, 0, 65537, 2162695, 0, 65537, 2162696, 0, 65537, 2162697, 0, 65537, 2162698, 0, 65537, 2162699, 0, 3, 2162700, 0, 131074, 2162701, 0, 0, 2162702, 0, 0, 2162703, 0, 131077, 2162704, 0, 65537, 2162705, 0, 65537, 2162706, 0, 65537, 2162707, 0, 65537, 2162708, 0, 65537, 2162709, 0, 65537, 2162710, 0, 65538, 2162711, 1, 131072, 2162712, 1, 131073, 2162713, 1, 131073, 2162714, 1, 131073, 2162715, 1, 131073, 2162716, 1, 131073, 2162717, 1, 131074, 2162718, 0, 0, 2162719, 0, 131077, 2162720, 0, 65537, 2162721, 0, 65537, 2162722, 0, 65537, 2162723, 0, 65537, 2162724, 0, 65537, 2162725, 0, 65537, 2162726, 0, 65537, 2162727, 0, 65537, 2162728, 0, 65537, 2162729, 0, 65537, 2162730, 0, 65537, 2162731, 0, 65537, 2162732, 0, 65537, 2162733, 0, 65537, 2162734, 0, 65537, 2162735, 0, 65537, 2162736, 0, 65537, 2162737, 0, 65537, 2162738, 0, 65537, 2162739, 0, 65537, 2162740, 0, 65537, 2162741, 0, 65537, 2162742, 0, 65537, 2162743, 0, 65537, 2162744, 0, 65537, 2162745, 0, 65537, 2162746, 0, 65537, 2162747, 0, 65537, 2162748, 0, 65537, 2162749, 0, 65537, 2162750, 0, 65537, 2162751, 0, 65537, 2162752, 0, 65537, 2162753, 0, 65537, 2162754, 0, 65537, 2162755, 0, 65537, 2162756, 0, 65537, 2162757, 0, 131075, 2162758, 0, 131076, 2162759, 0, 131076, 2162760, 0, 131076, 2162761, 0, 131076, 2162762, 0, 1, 2162763, 0, 131076, 2162764, 0, 1, 2162765, 0, 2, 2228224, 0, 65541, 2228225, 0, 65537, 2228226, 0, 65537, 2228227, 0, 65537, 2228228, 0, 65537, 2228229, 0, 65537, 2228230, 0, 65537, 2228231, 0, 65537, 2228232, 0, 65537, 2228233, 0, 65537, 2228234, 0, 65537, 2228235, 0, 65539, 2228236, 1, 0, 2228237, 1, 2, 2228238, 0, 65541, 2228239, 0, 65537, 2228240, 0, 65537, 2228241, 0, 65537, 2228242, 0, 65537, 2228243, 0, 65537, 2228244, 0, 65537, 2228245, 0, 65537, 2228246, 0, 131075, 2228247, 0, 131076, 2228248, 0, 2, 2228250, 0, 0, 2228251, 0, 131076, 2228252, 0, 1, 2228253, 0, 2, 2228254, 0, 131072, 2228255, 0, 5, 2228256, 0, 65537, 2228257, 0, 65537, 2228258, 0, 65537, 2228259, 0, 65537, 2228260, 0, 65537, 2228261, 0, 65537, 2228262, 0, 65537, 2228263, 0, 65537, 2228264, 0, 65537, 2228265, 0, 65537, 2228266, 0, 65537, 2228267, 0, 65537, 2228268, 0, 65537, 2228269, 0, 65537, 2228270, 0, 65537, 2228271, 0, 65537, 2228272, 0, 65537, 2228273, 0, 65537, 2228274, 0, 65537, 2228275, 0, 65537, 2228276, 0, 65537, 2228277, 0, 65537, 2228278, 0, 65537, 2228279, 0, 65537, 2228280, 0, 65537, 2228281, 0, 65537, 2228282, 0, 65537, 2228283, 0, 65537, 2228284, 0, 65537, 2228285, 0, 65537, 2228286, 0, 65537, 2228287, 0, 65537, 2228288, 0, 65537, 2228289, 0, 65537, 2228290, 0, 65537, 2228291, 0, 65537, 2228292, 0, 65537, 2228293, 0, 3, 2228294, 0, 4, 2228295, 0, 4, 2228296, 0, 4, 2228297, 0, 4, 2228298, 0, 131073, 2228299, 0, 4, 2228300, 0, 4, 2228301, 0, 131074, 2293760, 0, 65541, 2293761, 0, 65537, 2293762, 0, 65537, 2293763, 0, 65537, 2293764, 0, 65537, 2293765, 0, 65537, 2293766, 0, 65537, 2293767, 0, 65537, 2293768, 0, 65537, 2293769, 0, 65537, 2293770, 0, 65537, 2293771, 0, 65539, 2293772, 1, 131072, 2293773, 1, 131074, 2293774, 0, 65536, 2293775, 0, 65537, 2293776, 0, 65537, 2293777, 0, 65537, 2293778, 0, 65537, 2293779, 0, 65537, 2293780, 0, 65537, 2293781, 0, 65537, 2293782, 0, 65537, 2293783, 0, 65537, 2293784, 0, 131075, 2293785, 0, 131076, 2293786, 0, 131077, 2293787, 0, 65537, 2293788, 0, 65537, 2293789, 0, 65538, 2293791, 0, 65541, 2293792, 0, 65537, 2293793, 0, 65537, 2293794, 0, 65537, 2293795, 0, 65537, 2293796, 0, 65537, 2293797, 0, 65537, 2293798, 0, 65537, 2293799, 0, 65537, 2293800, 0, 65537, 2293801, 0, 65537, 2293802, 0, 65537, 2293803, 0, 65537, 2293804, 0, 65537, 2293805, 0, 65537, 2293806, 0, 65537, 2293807, 0, 65537, 2293808, 0, 65537, 2293809, 0, 65537, 2293810, 0, 65537, 2293811, 0, 65537, 2293812, 0, 65537, 2293813, 0, 65537, 2293814, 0, 65537, 2293815, 0, 65537, 2293816, 0, 65537, 2293817, 0, 65537, 2293818, 0, 65537, 2293819, 0, 65537, 2293820, 0, 65537, 2293821, 0, 65537, 2293822, 0, 65537, 2293823, 0, 65537, 2293824, 0, 65537, 2293825, 0, 65537, 2293826, 0, 65537, 2293827, 0, 65537, 2293828, 0, 65537, 2293829, 0, 65539, 2359296, 0, 65541, 2359297, 0, 65537, 2359298, 0, 65537, 2359299, 0, 65537, 2359300, 0, 65537, 2359301, 0, 65537, 2359302, 0, 65537, 2359303, 0, 65537, 2359304, 0, 65537, 2359305, 0, 65537, 2359306, 0, 65537, 2359307, 0, 131075, 2359308, 0, 131076, 2359309, 0, 131076, 2359310, 0, 131077, 2359311, 0, 65537, 2359312, 0, 65537, 2359313, 0, 65537, 2359314, 0, 65537, 2359315, 0, 65537, 2359316, 0, 65537, 2359317, 0, 65537, 2359318, 0, 65537, 2359319, 0, 65537, 2359320, 0, 65537, 2359321, 0, 65537, 2359322, 0, 65537, 2359323, 0, 65537, 2359324, 0, 65537, 2359325, 0, 65539, 2359327, 0, 65541, 2359328, 0, 65537, 2359329, 0, 65537, 2359330, 0, 65537, 2359331, 0, 65537, 2359332, 0, 65537, 2359333, 0, 65537, 2359334, 0, 65537, 2359335, 0, 65537, 2359336, 0, 65537, 2359337, 0, 65537, 2359338, 0, 65537, 2359339, 0, 65537, 2359340, 0, 65537, 2359341, 0, 65537, 2359342, 0, 65537, 2359343, 0, 65537, 2359344, 0, 65537, 2359345, 0, 65537, 2359346, 0, 65537, 2359347, 0, 65537, 2359348, 0, 65537, 2359349, 0, 65537, 2359350, 0, 65537, 2359351, 0, 65537, 2359352, 0, 65537, 2359353, 0, 65537, 2359354, 0, 65537, 2359355, 0, 65537, 2359356, 0, 65537, 2359357, 0, 65537, 2359358, 0, 65537, 2359359, 0, 65537, 2359360, 0, 65537, 2359361, 0, 65537, 2359362, 0, 65537, 2359363, 0, 65537, 2359364, 0, 65537, 2359365, 0, 65538, 2424832, 0, 65541, 2424833, 0, 65537, 2424834, 0, 65537, 2424835, 0, 65537, 2424836, 0, 65537, 2424837, 0, 65537, 2424838, 0, 65537, 2424839, 0, 65537, 2424840, 0, 3, 2424841, 0, 4, 2424842, 0, 4, 2424843, 0, 4, 2424844, 0, 131073, 2424845, 0, 131073, 2424846, 0, 4, 2424847, 0, 5, 2424848, 0, 65537, 2424849, 0, 65537, 2424850, 0, 65537, 2424851, 0, 65537, 2424852, 0, 65537, 2424853, 0, 3, 2424854, 0, 4, 2424855, 0, 5, 2424856, 0, 65537, 2424857, 0, 65537, 2424858, 0, 65537, 2424859, 0, 65537, 2424860, 0, 65537, 2424861, 0, 65539, 2424863, 0, 65541, 2424864, 0, 65537, 2424865, 0, 65537, 2424866, 0, 65537, 2424867, 0, 65537, 2424868, 0, 65537, 2424869, 0, 65537, 2424870, 0, 65537, 2424871, 0, 65537, 2424872, 0, 65537, 2424873, 0, 65537, 2424874, 0, 65537, 2424875, 0, 65537, 2424876, 0, 65537, 2424877, 0, 65537, 2424878, 0, 65537, 2424879, 0, 65537, 2424880, 0, 65537, 2424881, 0, 65537, 2424882, 0, 65537, 2424883, 0, 65537, 2424884, 0, 65537, 2424885, 0, 65537, 2424886, 0, 65537, 2424887, 0, 65537, 2424888, 0, 65537, 2424889, 0, 65537, 2424890, 0, 65537, 2424891, 0, 65537, 2424892, 0, 65537, 2424893, 0, 65537, 2424894, 0, 65537, 2424895, 0, 65537, 2424896, 0, 65537, 2424897, 0, 65537, 2424898, 0, 65537, 2424899, 0, 65537, 2424900, 0, 65537, 2424901, 0, 65539, 2490368, 0, 65536, 2490369, 0, 65537, 2490370, 0, 65537, 2490371, 0, 65537, 2490372, 0, 65537, 2490373, 0, 65537, 2490374, 0, 65537, 2490375, 0, 65537, 2490376, 0, 65538, 2490377, 1, 0, 2490378, 1, 1, 2490379, 1, 1, 2490380, 1, 1, 2490381, 1, 1, 2490382, 1, 2, 2490383, 0, 65536, 2490384, 0, 65537, 2490385, 0, 65537, 2490386, 0, 65537, 2490387, 0, 3, 2490388, 0, 4, 2490389, 0, 131074, 2490391, 0, 65541, 2490392, 0, 65537, 2490393, 0, 65537, 2490394, 0, 65537, 2490395, 0, 65537, 2490396, 0, 65537, 2490397, 0, 65538, 2490399, 0, 65536, 2490400, 0, 65537, 2490401, 0, 65537, 2490402, 0, 65537, 2490403, 0, 65537, 2490404, 0, 65537, 2490405, 0, 65537, 2490406, 0, 65537, 2490407, 0, 65537, 2490408, 0, 65537, 2490409, 0, 65537, 2490410, 0, 65537, 2490411, 0, 65537, 2490412, 0, 65537, 2490413, 0, 65537, 2490414, 0, 65537, 2490415, 0, 65537, 2490416, 0, 65537, 2490417, 0, 65537, 2490418, 0, 65537, 2490419, 0, 65537, 2490420, 0, 65537, 2490421, 0, 65537, 2490422, 0, 65537, 2490423, 0, 65537, 2490424, 0, 65537, 2490425, 0, 65537, 2490426, 0, 65537, 2490427, 0, 65537, 2490428, 0, 65537, 2490429, 0, 65537, 2490430, 0, 65537, 2490431, 0, 65537, 2490432, 0, 65537, 2490433, 0, 65537, 2490434, 0, 65537, 2490435, 0, 65537, 2490436, 0, 65537, 2490437, 0, 65539, 2555904, 0, 65541, 2555905, 0, 65537, 2555906, 0, 65537, 2555907, 0, 65537, 2555908, 0, 65537, 2555909, 0, 65537, 2555910, 0, 65537, 2555911, 0, 65537, 2555912, 0, 65538, 2555913, 1, 65536, 2555914, 1, 65537, 2555915, 1, 65537, 2555916, 1, 65537, 2555917, 1, 65537, 2555918, 1, 65538, 2555919, 0, 131072, 2555920, 0, 4, 2555921, 0, 4, 2555922, 0, 131073, 2555923, 0, 131074, 2555927, 0, 131072, 2555928, 0, 5, 2555929, 0, 65537, 2555930, 0, 65537, 2555931, 0, 65537, 2555932, 0, 65537, 2555933, 0, 65538, 2555935, 0, 65541, 2555936, 0, 65537, 2555937, 0, 65537, 2555938, 0, 65537, 2555939, 0, 65537, 2555940, 0, 65537, 2555941, 0, 65537, 2555942, 0, 65537, 2555943, 0, 65537, 2555944, 0, 65537, 2555945, 0, 65537, 2555946, 0, 65537, 2555947, 0, 65537, 2555948, 0, 65537, 2555949, 0, 65537, 2555950, 0, 65537, 2555951, 0, 65537, 2555952, 0, 65537, 2555953, 0, 65537, 2555954, 0, 65537, 2555955, 0, 65537, 2555956, 0, 65537, 2555957, 0, 65537, 2555958, 0, 65537, 2555959, 0, 65537, 2555960, 0, 65537, 2555961, 0, 65537, 2555962, 0, 65537, 2555963, 0, 65537, 2555964, 0, 65537, 2555965, 0, 65537, 2555966, 0, 65537, 2555967, 0, 65537, 2555968, 0, 65537, 2555969, 0, 65537, 2555970, 0, 65537, 2555971, 0, 65537, 2555972, 0, 65537, 2555973, 0, 65539, 2621440, 0, 65536, 2621441, 0, 65537, 2621442, 0, 65537, 2621443, 0, 65537, 2621444, 0, 65537, 2621445, 0, 3, 2621446, 0, 131073, 2621447, 0, 5, 2621448, 0, 65539, 2621449, 1, 65536, 2621450, 1, 65537, 2621451, 1, 65537, 2621452, 1, 65537, 2621453, 1, 65537, 2621454, 1, 0, 2621455, 1, 1, 2621456, 1, 1, 2621457, 1, 2, 2621458, 0, 0, 2621462, 1, 0, 2621463, 1, 2, 2621464, 0, 65536, 2621465, 0, 65537, 2621466, 0, 65537, 2621467, 0, 65537, 2621468, 0, 65537, 2621469, 0, 65539, 2621471, 0, 65541, 2621472, 0, 65537, 2621473, 0, 65537, 2621474, 0, 65537, 2621475, 0, 65537, 2621476, 0, 65537, 2621477, 0, 65537, 2621478, 0, 65537, 2621479, 0, 65537, 2621480, 0, 65537, 2621481, 0, 65537, 2621482, 0, 65537, 2621483, 0, 65537, 2621484, 0, 65537, 2621485, 0, 65537, 2621486, 0, 65537, 2621487, 0, 65537, 2621488, 0, 65537, 2621489, 0, 65537, 2621490, 0, 65537, 2621491, 0, 65537, 2621492, 0, 65537, 2621493, 0, 65537, 2621494, 0, 65537, 2621495, 0, 65537, 2621496, 0, 65537, 2621497, 0, 65537, 2621498, 0, 65537, 2621499, 0, 65537, 2621500, 0, 65537, 2621501, 0, 65537, 2621502, 0, 65537, 2621503, 0, 65537, 2621504, 0, 65537, 2621505, 0, 65537, 2621506, 0, 65537, 2621507, 0, 65537, 2621508, 0, 65537, 2621509, 0, 65538, 2686976, 0, 65536, 2686977, 0, 65537, 2686978, 0, 65537, 2686979, 0, 65537, 2686980, 0, 65537, 2686981, 0, 65538, 2686983, 0, 65541, 2686984, 0, 65538, 2686985, 1, 131072, 2686986, 1, 131073, 2686987, 1, 131073, 2686988, 1, 131073, 2686989, 1, 131073, 2686990, 1, 0, 2686991, 1, 65537, 2686992, 1, 65537, 2686993, 1, 65538, 2686994, 0, 0, 2686995, 0, 131076, 2686996, 0, 131076, 2686997, 0, 2, 2686998, 1, 131072, 2686999, 1, 131074, 2687000, 0, 65536, 2687001, 0, 65537, 2687002, 0, 65537, 2687003, 0, 65537, 2687004, 0, 65537, 2687005, 0, 65538, 2687007, 0, 65541, 2687008, 0, 65537, 2687009, 0, 65537, 2687010, 0, 65537, 2687011, 0, 65537, 2687012, 0, 65537, 2687013, 0, 65537, 2687014, 0, 65537, 2687015, 0, 65537, 2687016, 0, 65537, 2687017, 0, 65537, 2687018, 0, 65537, 2687019, 0, 65537, 2687020, 0, 65537, 2687021, 0, 65537, 2687022, 0, 65537, 2687023, 0, 65537, 2687024, 0, 65537, 2687025, 0, 65537, 2687026, 0, 65537, 2687027, 0, 65537, 2687028, 0, 65537, 2687029, 0, 65537, 2687030, 0, 65537, 2687031, 0, 65537, 2687032, 0, 65537, 2687033, 0, 65537, 2687034, 0, 65537, 2687035, 0, 65537, 2687036, 0, 65537, 2687037, 0, 65537, 2687038, 0, 65537, 2687039, 0, 65537, 2687040, 0, 65537, 2687041, 0, 65537, 2687042, 0, 65537, 2687043, 0, 65537, 2687044, 0, 65537, 2687045, 0, 65539, 2752512, 0, 65541, 2752513, 0, 65537, 2752514, 0, 65537, 2752515, 0, 65537, 2752516, 0, 65537, 2752517, 0, 131075, 2752518, 0, 1, 2752519, 0, 131077, 2752520, 0, 131075, 2752521, 0, 1, 2752522, 0, 1, 2752523, 0, 131076, 2752524, 0, 131076, 2752525, 0, 2, 2752526, 1, 65536, 2752527, 1, 65537, 2752528, 1, 65537, 2752529, 1, 65538, 2752530, 0, 65541, 2752531, 0, 65537, 2752532, 0, 65537, 2752533, 0, 131075, 2752534, 0, 1, 2752535, 0, 1, 2752536, 0, 131077, 2752537, 0, 65537, 2752538, 0, 65537, 2752539, 0, 65537, 2752540, 0, 65537, 2752541, 0, 65539, 2752543, 0, 65541, 2752544, 0, 65537, 2752545, 0, 65537, 2752546, 0, 65537, 2752547, 0, 65537, 2752548, 0, 65537, 2752549, 0, 65537, 2752550, 0, 65537, 2752551, 0, 65537, 2752552, 0, 65537, 2752553, 0, 65537, 2752554, 0, 65537, 2752555, 0, 65537, 2752556, 0, 65537, 2752557, 0, 65537, 2752558, 0, 65537, 2752559, 0, 65537, 2752560, 0, 65537, 2752561, 0, 65537, 2752562, 0, 65537, 2752563, 0, 65537, 2752564, 0, 65537, 2752565, 0, 65537, 2752566, 0, 65537, 2752567, 0, 65537, 2752568, 0, 65537, 2752569, 0, 65537, 2752570, 0, 65537, 2752571, 0, 65537, 2752572, 0, 65537, 2752573, 0, 65537, 2752574, 0, 65537, 2752575, 0, 65537, 2752576, 0, 65537, 2752577, 0, 65537, 2752578, 0, 65537, 2752579, 0, 65537, 2752580, 0, 65537, 2752581, 0, 65538, 2818048, 0, 65541, 2818049, 0, 65537, 2818050, 0, 65537, 2818051, 0, 65537, 2818052, 0, 65537, 2818053, 0, 65537, 2818054, 0, 65537, 2818055, 0, 65537, 2818056, 0, 65537, 2818057, 0, 65537, 2818058, 0, 65537, 2818059, 0, 65537, 2818060, 0, 65537, 2818061, 0, 65539, 2818062, 1, 131072, 2818063, 1, 131073, 2818064, 1, 131073, 2818065, 1, 131074, 2818066, 0, 65541, 2818067, 0, 65537, 2818068, 0, 65537, 2818069, 0, 65537, 2818070, 0, 65537, 2818071, 0, 65537, 2818072, 0, 65537, 2818073, 0, 65537, 2818074, 0, 65537, 2818075, 0, 65537, 2818076, 0, 65537, 2818077, 0, 65539, 2818079, 0, 65536, 2818080, 0, 65537, 2818081, 0, 65537, 2818082, 0, 65537, 2818083, 0, 65537, 2818084, 0, 65537, 2818085, 0, 65537, 2818086, 0, 65537, 2818087, 0, 65537, 2818088, 0, 65537, 2818089, 0, 65537, 2818090, 0, 65537, 2818091, 0, 65537, 2818092, 0, 65537, 2818093, 0, 65537, 2818094, 0, 65537, 2818095, 0, 65537, 2818096, 0, 65537, 2818097, 0, 65537, 2818098, 0, 65537, 2818099, 0, 65537, 2818100, 0, 65537, 2818101, 0, 65537, 2818102, 0, 65537, 2818103, 0, 65537, 2818104, 0, 65537, 2818105, 0, 65537, 2818106, 0, 65537, 2818107, 0, 65537, 2818108, 0, 65537, 2818109, 0, 65537, 2818110, 0, 65537, 2818111, 0, 65537, 2818112, 0, 65537, 2818113, 0, 65537, 2818114, 0, 65537, 2818115, 0, 65537, 2818116, 0, 65537, 2818117, 0, 65538, 2883584, 0, 65536, 2883585, 0, 65537, 2883586, 0, 65537, 2883587, 0, 65537, 2883588, 0, 65537, 2883589, 0, 65537, 2883590, 0, 65537, 2883591, 0, 65537, 2883592, 0, 65537, 2883593, 0, 65537, 2883594, 0, 65537, 2883595, 0, 65537, 2883596, 0, 65537, 2883597, 0, 131075, 2883598, 0, 1, 2883599, 0, 131076, 2883600, 0, 131076, 2883601, 0, 1, 2883602, 0, 131077, 2883603, 0, 65537, 2883604, 0, 65537, 2883605, 0, 65537, 2883606, 0, 65537, 2883607, 0, 65537, 2883608, 0, 65537, 2883609, 0, 65537, 2883610, 0, 65537, 2883611, 0, 65537, 2883612, 0, 65537, 2883613, 0, 65539, 2883615, 0, 65541, 2883616, 0, 65537, 2883617, 0, 65537, 2883618, 0, 65537, 2883619, 0, 65537, 2883620, 0, 65537, 2883621, 0, 65537, 2883622, 0, 65537, 2883623, 0, 65537, 2883624, 0, 65537, 2883625, 0, 65537, 2883626, 0, 65537, 2883627, 0, 65537, 2883628, 0, 65537, 2883629, 0, 65537, 2883630, 0, 65537, 2883631, 0, 65537, 2883632, 0, 65537, 2883633, 0, 65537, 2883634, 0, 65537, 2883635, 0, 65537, 2883636, 0, 65537, 2883637, 0, 65537, 2883638, 0, 65537, 2883639, 0, 65537, 2883640, 0, 65537, 2883641, 0, 65537, 2883642, 0, 65537, 2883643, 0, 65537, 2883644, 0, 65537, 2883645, 0, 65537, 2883646, 0, 65537, 2883647, 0, 65537, 2883648, 0, 65537, 2883649, 0, 65537, 2883650, 0, 65537, 2883651, 0, 65537, 2883652, 0, 65537, 2883653, 0, 65539, 2949120, 0, 65541, 2949121, 0, 65537, 2949122, 0, 65537, 2949123, 0, 65537, 2949124, 0, 65537, 2949125, 0, 65537, 2949126, 0, 65537, 2949127, 0, 65537, 2949128, 0, 65537, 2949129, 0, 65537, 2949130, 0, 65537, 2949131, 0, 65537, 2949132, 0, 65537, 2949133, 0, 65537, 2949134, 0, 65537, 2949135, 0, 65537, 2949136, 0, 65537, 2949137, 0, 65537, 2949138, 0, 65537, 2949139, 0, 65537, 2949140, 0, 65537, 2949141, 0, 65537, 2949142, 0, 65537, 2949143, 0, 65537, 2949144, 0, 65537, 2949145, 0, 65537, 2949146, 0, 65537, 2949147, 0, 65537, 2949148, 0, 65537, 2949149, 0, 65539, 2949151, 0, 65536, 2949152, 0, 65537, 2949153, 0, 65537, 2949154, 0, 65537, 2949155, 0, 65537, 2949156, 0, 65537, 2949157, 0, 65537, 2949158, 0, 65537, 2949159, 0, 65537, 2949160, 0, 65537, 2949161, 0, 65537, 2949162, 0, 65537, 2949163, 0, 65537, 2949164, 0, 65537, 2949165, 0, 65537, 2949166, 0, 65537, 2949167, 0, 65537, 2949168, 0, 65537, 2949169, 0, 65537, 2949170, 0, 65537, 2949171, 0, 65537, 2949172, 0, 65537, 2949173, 0, 65537, 2949174, 0, 65537, 2949175, 0, 65537, 2949176, 0, 65537, 2949177, 0, 65537, 2949178, 0, 65537, 2949179, 0, 65537, 2949180, 0, 65537, 2949181, 0, 65537, 2949182, 0, 65537, 2949183, 0, 65537, 2949184, 0, 65537, 2949185, 0, 65537, 2949186, 0, 65537, 2949187, 0, 65537, 2949188, 0, 65537, 2949189, 0, 65539, 3014656, 0, 65536, 3014657, 0, 65537, 3014658, 0, 65537, 3014659, 0, 65537, 3014660, 0, 65537, 3014661, 0, 65537, 3014662, 0, 65537, 3014663, 0, 65537, 3014664, 0, 65537, 3014665, 0, 65537, 3014666, 0, 65537, 3014667, 0, 65537, 3014668, 0, 65537, 3014669, 0, 65537, 3014670, 0, 65537, 3014671, 0, 65537, 3014672, 0, 65537, 3014673, 0, 65537, 3014674, 0, 65537, 3014675, 0, 65537, 3014676, 0, 65537, 3014677, 0, 65537, 3014678, 0, 65537, 3014679, 0, 65537, 3014680, 0, 65537, 3014681, 0, 65537, 3014682, 0, 65537, 3014683, 0, 65537, 3014684, 0, 65537, 3014685, 0, 65539, 3014687, 0, 65536, 3014688, 0, 65537, 3014689, 0, 65537, 3014690, 0, 65537, 3014691, 0, 65537, 3014692, 0, 65537, 3014693, 0, 65537, 3014694, 0, 65537, 3014695, 0, 65537, 3014696, 0, 65537, 3014697, 0, 65537, 3014698, 0, 65537, 3014699, 0, 65537, 3014700, 0, 65537, 3014701, 0, 65537, 3014702, 0, 65537, 3014703, 0, 65537, 3014704, 0, 65537, 3014705, 0, 65537, 3014706, 0, 65537, 3014707, 0, 65537, 3014708, 0, 65537, 3014709, 0, 65537, 3014710, 0, 65537, 3014711, 0, 65537, 3014712, 0, 65537, 3014713, 0, 65537, 3014714, 0, 65537, 3014715, 0, 65537, 3014716, 0, 65537, 3014717, 0, 65537, 3014718, 0, 65537, 3014719, 0, 65537, 3014720, 0, 65537, 3014721, 0, 65537, 3014722, 0, 65537, 3014723, 0, 65537, 3014724, 0, 65537, 3014725, 0, 65539, 3080192, 0, 65536, 3080193, 0, 65537, 3080194, 0, 65537, 3080195, 0, 65537, 3080196, 0, 65537, 3080197, 0, 65537, 3080198, 0, 65537, 3080199, 0, 65537, 3080200, 0, 65537, 3080201, 0, 65537, 3080202, 0, 65537, 3080203, 0, 65537, 3080204, 0, 65537, 3080205, 0, 65537, 3080206, 0, 65537, 3080207, 0, 65537, 3080208, 0, 65537, 3080209, 0, 65537, 3080210, 0, 65537, 3080211, 0, 65537, 3080212, 0, 65537, 3080213, 0, 65537, 3080214, 0, 65537, 3080215, 0, 65537, 3080216, 0, 65537, 3080217, 0, 65537, 3080218, 0, 65537, 3080219, 0, 65537, 3080220, 0, 65537, 3080221, 0, 65538, 3080223, 0, 65541, 3080224, 0, 65537, 3080225, 0, 65537, 3080226, 0, 65537, 3080227, 0, 65537, 3080228, 0, 65537, 3080229, 0, 65537, 3080230, 0, 65537, 3080231, 0, 65537, 3080232, 0, 65537, 3080233, 0, 65537, 3080234, 0, 65537, 3080235, 0, 65537, 3080236, 0, 65537, 3080237, 0, 65537, 3080238, 0, 65537, 3080239, 0, 65537, 3080240, 0, 65537, 3080241, 0, 65537, 3080242, 0, 65537, 3080243, 0, 65537, 3080244, 0, 65537, 3080245, 0, 65537, 3080246, 0, 65537, 3080247, 0, 65537, 3080248, 0, 65537, 3080249, 0, 65537, 3080250, 0, 65537, 3080251, 0, 65537, 3080252, 0, 65537, 3080253, 0, 65537, 3080254, 0, 65537, 3080255, 0, 65537, 3080256, 0, 65537, 3080257, 0, 65537, 3080258, 0, 65537, 3080259, 0, 65537, 3080260, 0, 65537, 3080261, 0, 65539, 3145728, 0, 65536, 3145729, 0, 65537, 3145730, 0, 65537, 3145731, 0, 65537, 3145732, 0, 65537, 3145733, 0, 65537, 3145734, 0, 65537, 3145735, 0, 65537, 3145736, 0, 65537, 3145737, 0, 65537, 3145738, 0, 65537, 3145739, 0, 65537, 3145740, 0, 65537, 3145741, 0, 65537, 3145742, 0, 65537, 3145743, 0, 65537, 3145744, 0, 65537, 3145745, 0, 65537, 3145746, 0, 65537, 3145747, 0, 65537, 3145748, 0, 65537, 3145749, 0, 65537, 3145750, 0, 65537, 3145751, 0, 65537, 3145752, 0, 65537, 3145753, 0, 65537, 3145754, 0, 65537, 3145755, 0, 65537, 3145756, 0, 65537, 3145757, 0, 65538, 3145759, 0, 65541, 3145760, 0, 65537, 3145761, 0, 65537, 3145762, 0, 65537, 3145763, 0, 65537, 3145764, 0, 65537, 3145765, 0, 65537, 3145766, 0, 65537, 3145767, 0, 65537, 3145768, 0, 65537, 3145769, 0, 65537, 3145770, 0, 65537, 3145771, 0, 65537, 3145772, 0, 65537, 3145773, 0, 65537, 3145774, 0, 65537, 3145775, 0, 65537, 3145776, 0, 65537, 3145777, 0, 65537, 3145778, 0, 65537, 3145779, 0, 65537, 3145780, 0, 65537, 3145781, 0, 65537, 3145782, 0, 65537, 3145783, 0, 65537, 3145784, 0, 65537, 3145785, 0, 65537, 3145786, 0, 65537, 3145787, 0, 65537, 3145788, 0, 65537, 3145789, 0, 65537, 3145790, 0, 65537, 3145791, 0, 65537, 3145792, 0, 65537, 3145793, 0, 65537, 3145794, 0, 65537, 3145795, 0, 65537, 3145796, 0, 65537, 3145797, 0, 65538, 3211264, 0, 131072, 3211265, 0, 131073, 3211266, 0, 131073, 3211267, 0, 131073, 3211268, 0, 4, 3211269, 0, 4, 3211270, 0, 4, 3211271, 0, 131073, 3211272, 0, 131073, 3211273, 0, 131073, 3211274, 0, 4, 3211275, 0, 4, 3211276, 0, 131073, 3211277, 0, 4, 3211278, 0, 131073, 3211279, 0, 4, 3211280, 0, 4, 3211281, 0, 4, 3211282, 0, 131073, 3211283, 0, 131073, 3211284, 0, 131073, 3211285, 0, 131073, 3211286, 0, 4, 3211287, 0, 131073, 3211288, 0, 4, 3211289, 0, 131073, 3211290, 0, 4, 3211291, 0, 131073, 3211292, 0, 131073, 3211293, 0, 131074, 3211295, 0, 65541, 3211296, 0, 65537, 3211297, 0, 65537, 3211298, 0, 65537, 3211299, 0, 65537, 3211300, 0, 65537, 3211301, 0, 65537, 3211302, 0, 65537, 3211303, 0, 65537, 3211304, 0, 65537, 3211305, 0, 65537, 3211306, 0, 65537, 3211307, 0, 65537, 3211308, 0, 65537, 3211309, 0, 65537, 3211310, 0, 65537, 3211311, 0, 65537, 3211312, 0, 65537, 3211313, 0, 65537, 3211314, 0, 65537, 3211315, 0, 65537, 3211316, 0, 65537, 3211317, 0, 65537, 3211318, 0, 65537, 3211319, 0, 65537, 3211320, 0, 65537, 3211321, 0, 65537, 3211322, 0, 65537, 3211323, 0, 65537, 3211324, 0, 65537, 3211325, 0, 65537, 3211326, 0, 65537, 3211327, 0, 65537, 3211328, 0, 65537, 3211329, 0, 65537, 3211330, 0, 65537, 3211331, 0, 65537, 3211332, 0, 65537, 3211333, 0, 65538, 3276830, 0, 0, 3276831, 0, 131077, 3276832, 0, 65537, 3276833, 0, 65537, 3276834, 0, 65537, 3276835, 0, 65537, 3276836, 0, 65537, 3276837, 0, 65537, 3276838, 0, 65537, 3276839, 0, 65537, 3276840, 0, 65537, 3276841, 0, 65537, 3276842, 0, 65537, 3276843, 0, 65537, 3276844, 0, 65537, 3276845, 0, 65537, 3276846, 0, 65537, 3276847, 0, 65537, 3276848, 0, 65537, 3276849, 0, 65537, 3276850, 0, 65537, 3276851, 0, 65537, 3276852, 0, 65537, 3276853, 0, 65537, 3276854, 0, 65537, 3276855, 0, 65537, 3276856, 0, 65537, 3276857, 0, 65537, 3276858, 0, 65537, 3276859, 0, 65537, 3276860, 0, 65537, 3276861, 0, 65537, 3276862, 0, 65537, 3276863, 0, 65537, 3276864, 0, 65537, 3276865, 0, 65537, 3276866, 0, 65537, 3276867, 0, 65537, 3276868, 0, 65537, 3276869, 0, 65539, 3342366, 0, 131072, 3342367, 0, 131073, 3342368, 0, 131073, 3342369, 0, 4, 3342370, 0, 4, 3342371, 0, 4, 3342372, 0, 4, 3342373, 0, 4, 3342374, 0, 131073, 3342375, 0, 4, 3342376, 0, 131073, 3342377, 0, 131073, 3342378, 0, 131073, 3342379, 0, 131073, 3342380, 0, 4, 3342381, 0, 4, 3342382, 0, 131073, 3342383, 0, 4, 3342384, 0, 4, 3342385, 0, 131073, 3342386, 0, 131073, 3342387, 0, 4, 3342388, 0, 131073, 3342389, 0, 4, 3342390, 0, 131073, 3342391, 0, 4, 3342392, 0, 4, 3342393, 0, 4, 3342394, 0, 4, 3342395, 0, 4, 3342396, 0, 4, 3342397, 0, 4, 3342398, 0, 4, 3342399, 0, 4, 3342400, 0, 131073, 3342401, 0, 4, 3342402, 0, 4, 3342403, 0, 4, 3342404, 0, 4, 3342405, 0, 131074 ) +tile_data = PoolIntArray( -65528, 0, 0, -65527, 0, 131076, -65526, 0, 1, -65525, 0, 131076, -65524, 0, 131076, -65523, 0, 1, -65522, 0, 1, -65521, 0, 1, -65520, 0, 131076, -65519, 0, 2, 8, 0, 65536, 9, 0, 3, 10, 0, 131073, 11, 0, 4, 12, 0, 131073, 13, 0, 131073, 14, 0, 5, 15, 0, 65537, 16, 0, 65537, 17, 0, 65538, 65544, 0, 65541, 65545, 0, 65539, 65546, 1, 0, 65547, 1, 1, 65548, 1, 1, 65549, 1, 2, 65550, 0, 65541, 65551, 0, 65537, 65552, 0, 65537, 65553, 0, 131075, 65554, 0, 1, 65555, 0, 1, 65556, 0, 1, 65557, 0, 131076, 65558, 0, 1, 65559, 0, 1, 65560, 0, 1, 65561, 0, 131076, 65562, 0, 1, 65563, 0, 1, 65564, 0, 1, 65565, 0, 2, 131080, 0, 65536, 131081, 0, 65538, 131082, 1, 131072, 131083, 1, 131073, 131084, 1, 131073, 131085, 1, 131074, 131086, 0, 65536, 131087, 0, 65537, 131088, 0, 65537, 131089, 0, 65537, 131090, 0, 65537, 131091, 0, 65537, 131092, 0, 65537, 131093, 0, 65537, 131094, 0, 65537, 131095, 0, 65537, 131096, 0, 65537, 131097, 0, 65537, 131098, 0, 65537, 131099, 0, 65537, 131100, 0, 65537, 131101, 0, 65538, 196616, 0, 131072, 196617, 0, 131074, 196618, 0, 0, 196619, 0, 2, 196620, 0, 0, 196621, 0, 0, 196622, 0, 0, 196623, 0, 131073, 196624, 0, 5, 196625, 0, 65537, 196626, 0, 65537, 196627, 0, 65537, 196628, 0, 65537, 196629, 0, 65537, 196630, 0, 65537, 196631, 0, 65537, 196632, 0, 65537, 196633, 0, 65537, 196634, 0, 65537, 196635, 0, 65537, 196636, 0, 65537, 196637, 0, 65539, 262154, 0, 131072, 262155, 0, 131074, 262157, 0, 65541, 262158, 0, 65539, 262160, 0, 65541, 262161, 0, 65537, 262162, 0, 65537, 262163, 0, 3, 262164, 0, 4, 262165, 0, 4, 262166, 0, 131073, 262167, 0, 131073, 262168, 0, 131073, 262169, 0, 5, 262170, 0, 65537, 262171, 0, 65537, 262172, 0, 65537, 262173, 0, 65538, 327693, 0, 131072, 327694, 0, 131074, 327696, 0, 131072, 327697, 0, 5, 327698, 0, 65537, 327699, 0, 65538, 327700, 1, 0, 327701, 1, 1, 327702, 1, 1, 327703, 1, 1, 327704, 1, 2, 327705, 0, 65541, 327706, 0, 65537, 327707, 0, 65537, 327708, 0, 65537, 327709, 0, 65539, 393233, 0, 65536, 393234, 0, 65537, 393235, 0, 65538, 393236, 1, 65536, 393237, 1, 65537, 393238, 1, 65537, 393239, 1, 65537, 393240, 1, 65538, 393241, 0, 131072, 393242, 0, 4, 393243, 0, 131073, 393244, 0, 5, 393245, 0, 65539, 458767, 0, 0, 458768, 0, 2, 458769, 0, 131072, 458770, 0, 5, 458771, 0, 65539, 458772, 1, 65536, 458773, 1, 65537, 458774, 1, 65537, 458775, 1, 65537, 458776, 1, 0, 458777, 1, 1, 458778, 1, 1, 458779, 1, 2, 458780, 0, 65536, 458781, 0, 65539, 524303, 0, 131072, 524304, 0, 131074, 524306, 0, 65541, 524307, 0, 65539, 524308, 1, 131072, 524309, 1, 131073, 524310, 1, 131073, 524311, 1, 131073, 524312, 1, 0, 524313, 1, 65537, 524314, 1, 65537, 524315, 1, 65538, 524316, 0, 65536, 524317, 0, 65539, 589842, 0, 65541, 589843, 0, 131075, 589844, 0, 131076, 589845, 0, 1, 589846, 0, 1, 589847, 0, 2, 589848, 1, 65536, 589849, 1, 65537, 589850, 1, 65537, 589851, 1, 65538, 589852, 0, 65541, 589853, 0, 65539, 655377, 0, 0, 655378, 0, 131077, 655379, 0, 65537, 655380, 0, 65537, 655381, 0, 65537, 655382, 0, 65537, 655383, 0, 65538, 655384, 1, 65536, 655385, 1, 65537, 655386, 1, 65537, 655387, 1, 65538, 655388, 0, 65541, 655389, 0, 65538, 720910, 0, 0, 720912, 0, 0, 720913, 0, 131077, 720914, 0, 65537, 720915, 0, 65537, 720916, 0, 65537, 720917, 0, 65537, 720918, 0, 65537, 720919, 0, 65539, 720920, 1, 65536, 720921, 1, 65537, 720922, 1, 65537, 720923, 1, 65538, 720924, 0, 65536, 720925, 0, 65539, 786445, 0, 0, 786446, 0, 131076, 786447, 0, 1, 786448, 0, 131077, 786449, 0, 65537, 786450, 0, 65537, 786451, 0, 65537, 786452, 0, 65537, 786453, 0, 65537, 786454, 0, 65537, 786455, 0, 65538, 786456, 1, 131072, 786457, 1, 131073, 786458, 1, 131073, 786459, 1, 131074, 786460, 0, 65541, 786461, 0, 65539, 851980, 0, 0, 851981, 0, 131077, 851982, 0, 65537, 851983, 0, 65537, 851984, 0, 65537, 851985, 0, 65537, 851986, 0, 65537, 851987, 0, 65537, 851988, 0, 65537, 851989, 0, 65537, 851990, 0, 65537, 851991, 0, 131075, 851992, 0, 1, 851993, 0, 1, 851994, 0, 131076, 851995, 0, 1, 851996, 0, 131077, 851997, 0, 65539, 917515, 0, 0, 917516, 0, 131077, 917517, 0, 65537, 917518, 0, 65537, 917519, 0, 65537, 917520, 0, 65537, 917521, 0, 65537, 917522, 0, 65537, 917523, 0, 65537, 917524, 0, 65537, 917525, 0, 65537, 917526, 0, 65537, 917527, 0, 65537, 917528, 0, 65537, 917529, 0, 65537, 917530, 0, 65537, 917531, 0, 65537, 917532, 0, 65537, 917533, 0, 65539, 983051, 0, 65536, 983052, 0, 65537, 983053, 0, 65537, 983054, 0, 65537, 983055, 0, 65537, 983056, 0, 65537, 983057, 0, 65537, 983058, 0, 65537, 983059, 0, 65537, 983060, 0, 65537, 983061, 0, 65537, 983062, 0, 65537, 983063, 0, 65537, 983064, 0, 65537, 983065, 0, 65537, 983066, 0, 65537, 983067, 0, 65537, 983068, 0, 65537, 983069, 0, 65538, 1048587, 0, 65536, 1048588, 0, 65537, 1048589, 0, 65537, 1048590, 0, 65537, 1048591, 0, 65537, 1048592, 0, 65537, 1048593, 0, 65537, 1048594, 0, 65537, 1048595, 0, 65537, 1048596, 0, 65537, 1048597, 0, 65537, 1048598, 0, 65537, 1048599, 0, 65537, 1048600, 0, 65537, 1048601, 0, 65537, 1048602, 0, 65537, 1048603, 0, 65537, 1048604, 0, 65537, 1048605, 0, 65539, 1114112, 0, 0, 1114113, 0, 131076, 1114114, 0, 1, 1114115, 0, 1, 1114116, 0, 131076, 1114117, 0, 131076, 1114118, 0, 1, 1114119, 0, 131076, 1114120, 0, 131076, 1114121, 0, 1, 1114122, 0, 131076, 1114123, 0, 131077, 1114124, 0, 65537, 1114125, 0, 65537, 1114126, 0, 65537, 1114127, 0, 65537, 1114128, 0, 65537, 1114129, 0, 3, 1114130, 0, 4, 1114131, 0, 131073, 1114132, 0, 4, 1114133, 0, 5, 1114134, 0, 65537, 1114135, 0, 65537, 1114136, 0, 65537, 1114137, 0, 65537, 1114138, 0, 65537, 1114139, 0, 65537, 1114140, 0, 65537, 1114141, 0, 65539, 1179648, 0, 131072, 1179649, 0, 131073, 1179650, 0, 131073, 1179651, 0, 4, 1179652, 0, 4, 1179653, 0, 5, 1179654, 0, 65537, 1179655, 0, 65537, 1179656, 0, 65537, 1179657, 0, 65537, 1179658, 0, 65537, 1179659, 0, 65537, 1179660, 0, 65537, 1179661, 0, 65537, 1179662, 0, 65537, 1179663, 0, 65537, 1179664, 0, 65537, 1179665, 0, 65538, 1179666, 1, 0, 1179667, 1, 1, 1179668, 1, 2, 1179669, 0, 65536, 1179670, 0, 65537, 1179671, 0, 65537, 1179672, 0, 65537, 1179673, 0, 65537, 1179674, 0, 3, 1179675, 0, 4, 1179676, 0, 131073, 1179677, 0, 131074, 1179679, 0, 0, 1179680, 0, 1, 1179681, 0, 131076, 1179682, 0, 131076, 1179683, 0, 131076, 1179684, 0, 1, 1179685, 0, 1, 1179686, 0, 131076, 1179687, 0, 131076, 1179688, 0, 131076, 1179689, 0, 131076, 1179690, 0, 1, 1179691, 0, 131076, 1179692, 0, 1, 1179693, 0, 131076, 1179694, 0, 1, 1179695, 0, 1, 1179696, 0, 131076, 1179697, 0, 1, 1179698, 0, 1, 1179699, 0, 1, 1179700, 0, 1, 1179701, 0, 131076, 1179702, 0, 1, 1179703, 0, 1, 1179704, 0, 1, 1179705, 0, 1, 1179706, 0, 1, 1179707, 0, 1, 1179708, 0, 131076, 1179709, 0, 1, 1179710, 0, 1, 1179711, 0, 131076, 1179712, 0, 131076, 1179713, 0, 131076, 1179714, 0, 131076, 1179715, 0, 131076, 1179716, 0, 131076, 1179717, 0, 2, 1310719, 1, 0, 1245184, 1, 1, 1245185, 1, 1, 1245186, 1, 1, 1245187, 1, 1, 1245188, 1, 2, 1245189, 0, 65536, 1245190, 0, 65537, 1245191, 0, 65537, 1245192, 0, 65537, 1245193, 0, 65537, 1245194, 0, 65537, 1245195, 0, 65537, 1245196, 0, 65537, 1245197, 0, 65537, 1245198, 0, 65537, 1245199, 0, 65537, 1245200, 0, 65537, 1245201, 0, 65539, 1245202, 1, 65536, 1245203, 1, 65537, 1245204, 1, 65538, 1245205, 0, 65536, 1245206, 0, 65537, 1245207, 0, 65537, 1245208, 0, 65537, 1245209, 0, 65537, 1245210, 0, 65538, 1245211, 1, 0, 1245212, 1, 1, 1245213, 1, 2, 1245215, 0, 65536, 1245216, 0, 65537, 1245217, 0, 65537, 1245218, 0, 65537, 1245219, 0, 65537, 1245220, 0, 65537, 1245221, 0, 65537, 1245222, 0, 65537, 1245223, 0, 65537, 1245224, 0, 65537, 1245225, 0, 65537, 1245226, 0, 65537, 1245227, 0, 65537, 1245228, 0, 65537, 1245229, 0, 65537, 1245230, 0, 65537, 1245231, 0, 65537, 1245232, 0, 65537, 1245233, 0, 65537, 1245234, 0, 65537, 1245235, 0, 65537, 1245236, 0, 65537, 1245237, 0, 65537, 1245238, 0, 65537, 1245239, 0, 65537, 1245240, 0, 65537, 1245241, 0, 65537, 1245242, 0, 65537, 1245243, 0, 65537, 1245244, 0, 65537, 1245245, 0, 65537, 1245246, 0, 65537, 1245247, 0, 65537, 1245248, 0, 65537, 1245249, 0, 65537, 1245250, 0, 65537, 1245251, 0, 65537, 1245252, 0, 65537, 1245253, 0, 65539, 1376255, 1, 65536, 1310720, 1, 65537, 1310721, 1, 0, 1310722, 1, 131073, 1310723, 1, 0, 1310724, 1, 65538, 1310725, 0, 65541, 1310726, 0, 65537, 1310727, 0, 65537, 1310728, 0, 65537, 1310729, 0, 3, 1310730, 0, 4, 1310731, 0, 4, 1310732, 0, 131073, 1310733, 0, 131073, 1310734, 0, 4, 1310735, 0, 4, 1310736, 0, 5, 1310737, 0, 65538, 1310738, 1, 131072, 1310739, 1, 131073, 1310740, 1, 131074, 1310741, 0, 65541, 1310742, 0, 65537, 1310743, 0, 65537, 1310744, 0, 65537, 1310745, 0, 65537, 1310746, 0, 65538, 1310747, 1, 65536, 1310748, 1, 65537, 1310749, 1, 65538, 1310751, 0, 65541, 1310752, 0, 65537, 1310753, 0, 65537, 1310754, 0, 65537, 1310755, 0, 65537, 1310756, 0, 65537, 1310757, 0, 65537, 1310758, 0, 65537, 1310759, 0, 65537, 1310760, 0, 65537, 1310761, 0, 65537, 1310762, 0, 65537, 1310763, 0, 65537, 1310764, 0, 65537, 1310765, 0, 65537, 1310766, 0, 65537, 1310767, 0, 65537, 1310768, 0, 65537, 1310769, 0, 65537, 1310770, 0, 65537, 1310771, 0, 65537, 1310772, 0, 65537, 1310773, 0, 65537, 1310774, 0, 65537, 1310775, 0, 65537, 1310776, 0, 65537, 1310777, 0, 65537, 1310778, 0, 65537, 1310779, 0, 65537, 1310780, 0, 65537, 1310781, 0, 65537, 1310782, 0, 65537, 1310783, 0, 65537, 1310784, 0, 65537, 1310785, 0, 65537, 1310786, 0, 65537, 1310787, 0, 65537, 1310788, 0, 65537, 1310789, 0, 65539, 1441791, 1, 65536, 1376256, 1, 65537, 1376257, 1, 65538, 1376258, 0, 0, 1376259, 1, 65536, 1376260, 1, 65538, 1376261, 0, 65536, 1376262, 0, 65537, 1376263, 0, 65537, 1376264, 0, 65537, 1376265, 0, 65538, 1376266, 1, 0, 1376267, 1, 1, 1376268, 1, 1, 1376269, 1, 1, 1376270, 1, 1, 1376271, 1, 2, 1376272, 0, 65536, 1376273, 0, 131075, 1376274, 0, 1, 1376275, 0, 131076, 1376276, 0, 1, 1376277, 0, 131077, 1376278, 0, 65537, 1376279, 0, 65537, 1376280, 0, 65537, 1376281, 0, 65537, 1376282, 0, 65539, 1376283, 1, 65536, 1376284, 1, 65537, 1376285, 1, 65538, 1376287, 0, 65536, 1376288, 0, 65537, 1376289, 0, 65537, 1376290, 0, 65537, 1376291, 0, 65537, 1376292, 0, 65537, 1376293, 0, 65537, 1376294, 0, 65537, 1376295, 0, 65537, 1376296, 0, 65537, 1376297, 0, 65537, 1376298, 0, 65537, 1376299, 0, 65537, 1376300, 0, 65537, 1376301, 0, 65537, 1376302, 0, 65537, 1376303, 0, 65537, 1376304, 0, 65537, 1376305, 0, 65537, 1376306, 0, 65537, 1376307, 0, 65537, 1376308, 0, 65537, 1376309, 0, 65537, 1376310, 0, 65537, 1376311, 0, 65537, 1376312, 0, 65537, 1376313, 0, 65537, 1376314, 0, 65537, 1376315, 0, 65537, 1376316, 0, 65537, 1376317, 0, 65537, 1376318, 0, 65537, 1376319, 0, 65537, 1376320, 0, 65537, 1376321, 0, 65537, 1376322, 0, 65537, 1376323, 0, 65537, 1376324, 0, 65537, 1376325, 0, 65538, 1507327, 1, 65536, 1441792, 1, 65537, 1441793, 1, 0, 1441794, 1, 1, 1441795, 1, 0, 1441796, 1, 65538, 1441797, 0, 65541, 1441798, 0, 65537, 1441799, 0, 65537, 1441800, 0, 65537, 1441801, 0, 65538, 1441802, 1, 65536, 1441803, 1, 65537, 1441804, 1, 65537, 1441805, 1, 65537, 1441806, 1, 65537, 1441807, 1, 65538, 1441808, 0, 65541, 1441809, 0, 65537, 1441810, 0, 65537, 1441811, 0, 65537, 1441812, 0, 65537, 1441813, 0, 65537, 1441814, 0, 65537, 1441815, 0, 65537, 1441816, 0, 65537, 1441817, 0, 65537, 1441818, 0, 65539, 1441819, 1, 131072, 1441820, 1, 131073, 1441821, 1, 131074, 1441823, 0, 65536, 1441824, 0, 65537, 1441825, 0, 65537, 1441826, 0, 65537, 1441827, 0, 65537, 1441828, 0, 65537, 1441829, 0, 65537, 1441830, 0, 65537, 1441831, 0, 65537, 1441832, 0, 65537, 1441833, 0, 65537, 1441834, 0, 65537, 1441835, 0, 65537, 1441836, 0, 65537, 1441837, 0, 65537, 1441838, 0, 65537, 1441839, 0, 65537, 1441840, 0, 65537, 1441841, 0, 65537, 1441842, 0, 65537, 1441843, 0, 65537, 1441844, 0, 65537, 1441845, 0, 65537, 1441846, 0, 65537, 1441847, 0, 65537, 1441848, 0, 65537, 1441849, 0, 65537, 1441850, 0, 65537, 1441851, 0, 65537, 1441852, 0, 65537, 1441853, 0, 65537, 1441854, 0, 65537, 1441855, 0, 65537, 1441856, 0, 65537, 1441857, 0, 65537, 1441858, 0, 65537, 1441859, 0, 65537, 1441860, 0, 65537, 1441861, 0, 65538, 1572863, 1, 131072, 1507328, 1, 131073, 1507329, 1, 131073, 1507330, 1, 131073, 1507331, 1, 131073, 1507332, 1, 131074, 1507333, 0, 65536, 1507334, 0, 65537, 1507335, 0, 65537, 1507336, 0, 65537, 1507337, 0, 65539, 1507338, 1, 65536, 1507339, 1, 65537, 1507340, 1, 65537, 1507341, 1, 65537, 1507342, 1, 65537, 1507343, 1, 65538, 1507344, 0, 65541, 1507345, 0, 65537, 1507346, 0, 65537, 1507347, 0, 65537, 1507348, 0, 65537, 1507349, 0, 65537, 1507350, 0, 65537, 1507351, 0, 65537, 1507352, 0, 65537, 1507353, 0, 65537, 1507354, 0, 131075, 1507355, 0, 1, 1507356, 0, 1, 1507357, 0, 2, 1507359, 0, 65536, 1507360, 0, 65537, 1507361, 0, 65537, 1507362, 0, 65537, 1507363, 0, 65537, 1507364, 0, 65537, 1507365, 0, 65537, 1507366, 0, 65537, 1507367, 0, 65537, 1507368, 0, 65537, 1507369, 0, 65537, 1507370, 0, 65537, 1507371, 0, 65537, 1507372, 0, 65537, 1507373, 0, 65537, 1507374, 0, 65537, 1507375, 0, 65537, 1507376, 0, 65537, 1507377, 0, 65537, 1507378, 0, 65537, 1507379, 0, 65537, 1507380, 0, 65537, 1507381, 0, 65537, 1507382, 0, 65537, 1507383, 0, 65537, 1507384, 0, 65537, 1507385, 0, 65537, 1507386, 0, 65537, 1507387, 0, 65537, 1507388, 0, 65537, 1507389, 0, 65537, 1507390, 0, 65537, 1507391, 0, 65537, 1507392, 0, 65537, 1507393, 0, 65537, 1507394, 0, 65537, 1507395, 0, 65537, 1507396, 0, 65537, 1507397, 0, 65538, 1572864, 0, 0, 1572865, 0, 131076, 1572866, 0, 131076, 1572867, 0, 1, 1572868, 0, 2, 1572869, 0, 131072, 1572870, 0, 5, 1572871, 0, 65537, 1572872, 0, 65537, 1572873, 0, 65538, 1572874, 1, 131072, 1572875, 1, 131073, 1572876, 1, 131073, 1572877, 1, 131073, 1572878, 1, 131073, 1572879, 1, 131074, 1572880, 0, 65536, 1572881, 0, 65537, 1572882, 0, 65537, 1572883, 0, 65537, 1572884, 0, 65537, 1572885, 0, 65537, 1572886, 0, 65537, 1572887, 0, 65537, 1572888, 0, 65537, 1572889, 0, 65537, 1572890, 0, 65537, 1572891, 0, 65537, 1572892, 0, 65537, 1572893, 0, 65539, 1572895, 0, 65541, 1572896, 0, 65537, 1572897, 0, 65537, 1572898, 0, 65537, 1572899, 0, 65537, 1572900, 0, 65537, 1572901, 0, 65537, 1572902, 0, 65537, 1572903, 0, 65537, 1572904, 0, 65537, 1572905, 0, 65537, 1572906, 0, 65537, 1572907, 0, 65537, 1572908, 0, 65537, 1572909, 0, 65537, 1572910, 0, 65537, 1572911, 0, 65537, 1572912, 0, 65537, 1572913, 0, 65537, 1572914, 0, 65537, 1572915, 0, 65537, 1572916, 0, 65537, 1572917, 0, 65537, 1572918, 0, 65537, 1572919, 0, 65537, 1572920, 0, 65537, 1572921, 0, 65537, 1572922, 0, 65537, 1572923, 0, 65537, 1572924, 0, 65537, 1572925, 0, 65537, 1572926, 0, 65537, 1572927, 0, 65537, 1572928, 0, 65537, 1572929, 0, 65537, 1572930, 0, 65537, 1572931, 0, 65537, 1572932, 0, 65537, 1572933, 0, 65538, 1638400, 0, 65536, 1638401, 0, 65537, 1638402, 0, 65537, 1638403, 0, 65537, 1638404, 0, 65539, 1638406, 0, 65541, 1638407, 0, 65537, 1638408, 0, 65537, 1638409, 0, 131075, 1638410, 0, 1, 1638411, 0, 131076, 1638412, 0, 131076, 1638413, 0, 1, 1638414, 0, 1, 1638415, 0, 1, 1638416, 0, 131077, 1638417, 0, 65537, 1638418, 0, 65537, 1638419, 0, 65537, 1638420, 0, 65537, 1638421, 0, 65537, 1638422, 0, 65537, 1638423, 0, 65537, 1638424, 0, 65537, 1638425, 0, 65537, 1638426, 0, 65537, 1638427, 0, 65537, 1638428, 0, 65537, 1638429, 0, 65538, 1638431, 0, 65541, 1638432, 0, 65537, 1638433, 0, 65537, 1638434, 0, 65537, 1638435, 0, 65537, 1638436, 0, 65537, 1638437, 0, 65537, 1638438, 0, 65537, 1638439, 0, 65537, 1638440, 0, 65537, 1638441, 0, 65537, 1638442, 0, 65537, 1638443, 0, 65537, 1638444, 0, 65537, 1638445, 0, 65537, 1638446, 0, 65537, 1638447, 0, 65537, 1638448, 0, 65537, 1638449, 0, 65537, 1638450, 0, 65537, 1638451, 0, 65537, 1638452, 0, 65537, 1638453, 0, 65537, 1638454, 0, 65537, 1638455, 0, 65537, 1638456, 0, 65537, 1638457, 0, 65537, 1638458, 0, 65537, 1638459, 0, 65537, 1638460, 0, 65537, 1638461, 0, 65537, 1638462, 0, 65537, 1638463, 0, 65537, 1638464, 0, 65537, 1638465, 0, 65537, 1638466, 0, 65537, 1638467, 0, 65537, 1638468, 0, 65537, 1638469, 0, 65539, 1703936, 0, 65541, 1703937, 0, 65537, 1703938, 0, 65537, 1703939, 0, 65537, 1703940, 0, 131075, 1703941, 0, 131076, 1703942, 0, 131077, 1703943, 0, 3, 1703944, 0, 131073, 1703945, 0, 131073, 1703946, 0, 4, 1703947, 0, 4, 1703948, 0, 4, 1703949, 0, 4, 1703950, 0, 131073, 1703951, 0, 5, 1703952, 0, 65537, 1703953, 0, 65537, 1703954, 0, 65537, 1703955, 0, 65537, 1703956, 0, 65537, 1703957, 0, 65537, 1703958, 0, 65537, 1703959, 0, 65537, 1703960, 0, 65537, 1703961, 0, 65537, 1703962, 0, 65537, 1703963, 0, 65537, 1703964, 0, 65537, 1703965, 0, 65539, 1703967, 0, 65541, 1703968, 0, 65537, 1703969, 0, 65537, 1703970, 0, 65537, 1703971, 0, 65537, 1703972, 0, 65537, 1703973, 0, 65537, 1703974, 0, 65537, 1703975, 0, 65537, 1703976, 0, 65537, 1703977, 0, 65537, 1703978, 0, 65537, 1703979, 0, 65537, 1703980, 0, 65537, 1703981, 0, 65537, 1703982, 0, 65537, 1703983, 0, 65537, 1703984, 0, 65537, 1703985, 0, 65537, 1703986, 0, 65537, 1703987, 0, 65537, 1703988, 0, 65537, 1703989, 0, 65537, 1703990, 0, 65537, 1703991, 0, 65537, 1703992, 0, 65537, 1703993, 0, 65537, 1703994, 0, 65537, 1703995, 0, 65537, 1703996, 0, 65537, 1703997, 0, 65537, 1703998, 0, 65537, 1703999, 0, 65537, 1704000, 0, 65537, 1704001, 0, 65537, 1704002, 0, 65537, 1704003, 0, 65537, 1704004, 0, 65537, 1704005, 0, 65539, 1769472, 0, 65541, 1769473, 0, 3, 1769474, 0, 131073, 1769475, 0, 5, 1769476, 0, 65537, 1769477, 0, 65537, 1769478, 0, 65537, 1769479, 0, 65539, 1769480, 1, 0, 1769481, 1, 1, 1769482, 1, 2, 1769483, 0, 0, 1769484, 1, 0, 1769485, 1, 0, 1769486, 1, 0, 1769487, 0, 65536, 1769488, 0, 65537, 1769489, 0, 65537, 1769490, 0, 3, 1769491, 0, 131073, 1769492, 0, 5, 1769493, 0, 65537, 1769494, 0, 65537, 1769495, 0, 3, 1769496, 0, 131073, 1769497, 0, 4, 1769498, 0, 131073, 1769499, 0, 131073, 1769500, 0, 5, 1769501, 0, 65538, 1769503, 0, 65541, 1769504, 0, 65537, 1769505, 0, 65537, 1769506, 0, 65537, 1769507, 0, 65537, 1769508, 0, 65537, 1769509, 0, 65537, 1769510, 0, 65537, 1769511, 0, 65537, 1769512, 0, 65537, 1769513, 0, 65537, 1769514, 0, 65537, 1769515, 0, 65537, 1769516, 0, 65537, 1769517, 0, 65537, 1769518, 0, 65537, 1769519, 0, 65537, 1769520, 0, 65537, 1769521, 0, 65537, 1769522, 0, 65537, 1769523, 0, 65537, 1769524, 0, 65537, 1769525, 0, 65537, 1769526, 0, 65537, 1769527, 0, 65537, 1769528, 0, 65537, 1769529, 0, 65537, 1769530, 0, 65537, 1769531, 0, 65537, 1769532, 0, 65537, 1769533, 0, 65537, 1769534, 0, 65537, 1769535, 0, 65537, 1769536, 0, 65537, 1769537, 0, 65537, 1769538, 0, 65537, 1769539, 0, 65537, 1769540, 0, 65537, 1769541, 0, 65539, 1835008, 0, 65536, 1835009, 0, 65538, 1835011, 0, 65536, 1835012, 0, 65537, 1835013, 0, 65537, 1835014, 0, 65537, 1835015, 0, 65539, 1835016, 1, 65536, 1835017, 1, 65537, 1835018, 1, 65538, 1835019, 0, 0, 1835020, 1, 0, 1835021, 0, 0, 1835022, 1, 0, 1835023, 0, 131072, 1835024, 0, 4, 1835025, 0, 5, 1835026, 0, 65539, 1835028, 0, 65536, 1835029, 0, 65537, 1835030, 0, 65537, 1835031, 0, 65539, 1835032, 1, 0, 1835033, 1, 1, 1835034, 1, 1, 1835035, 1, 2, 1835036, 0, 131072, 1835037, 0, 131074, 1835039, 0, 65541, 1835040, 0, 65537, 1835041, 0, 65537, 1835042, 0, 65537, 1835043, 0, 65537, 1835044, 0, 65537, 1835045, 0, 65537, 1835046, 0, 65537, 1835047, 0, 65537, 1835048, 0, 65537, 1835049, 0, 65537, 1835050, 0, 65537, 1835051, 0, 65537, 1835052, 0, 65537, 1835053, 0, 65537, 1835054, 0, 65537, 1835055, 0, 65537, 1835056, 0, 65537, 1835057, 0, 65537, 1835058, 0, 65537, 1835059, 0, 65537, 1835060, 0, 65537, 1835061, 0, 65537, 1835062, 0, 65537, 1835063, 0, 65537, 1835064, 0, 65537, 1835065, 0, 65537, 1835066, 0, 65537, 1835067, 0, 65537, 1835068, 0, 65537, 1835069, 0, 65537, 1835070, 0, 65537, 1835071, 0, 65537, 1835072, 0, 65537, 1835073, 0, 65537, 1835074, 0, 65537, 1835075, 0, 65537, 1835076, 0, 65537, 1835077, 0, 65538, 1900544, 0, 65536, 1900545, 0, 131075, 1900546, 0, 1, 1900547, 0, 131077, 1900548, 0, 65537, 1900549, 0, 65537, 1900550, 0, 3, 1900551, 0, 131074, 1900552, 1, 131072, 1900553, 1, 131073, 1900554, 1, 131074, 1900555, 1, 0, 1900556, 1, 1, 1900557, 1, 1, 1900558, 1, 1, 1900559, 1, 1, 1900560, 1, 2, 1900561, 0, 65541, 1900562, 0, 131075, 1900563, 0, 131076, 1900564, 0, 131077, 1900565, 0, 65537, 1900566, 0, 65537, 1900567, 0, 65538, 1900568, 1, 65536, 1900569, 1, 65537, 1900570, 1, 65537, 1900571, 1, 0, 1900572, 1, 1, 1900573, 1, 2, 1900575, 0, 65541, 1900576, 0, 65537, 1900577, 0, 65537, 1900578, 0, 65537, 1900579, 0, 65537, 1900580, 0, 65537, 1900581, 0, 65537, 1900582, 0, 65537, 1900583, 0, 65537, 1900584, 0, 65537, 1900585, 0, 65537, 1900586, 0, 65537, 1900587, 0, 65537, 1900588, 0, 65537, 1900589, 0, 65537, 1900590, 0, 65537, 1900591, 0, 65537, 1900592, 0, 65537, 1900593, 0, 65537, 1900594, 0, 65537, 1900595, 0, 65537, 1900596, 0, 65537, 1900597, 0, 65537, 1900598, 0, 65537, 1900599, 0, 65537, 1900600, 0, 65537, 1900601, 0, 65537, 1900602, 0, 65537, 1900603, 0, 65537, 1900604, 0, 65537, 1900605, 0, 65537, 1900606, 0, 65537, 1900607, 0, 65537, 1900608, 0, 65537, 1900609, 0, 65537, 1900610, 0, 65537, 1900611, 0, 65537, 1900612, 0, 65537, 1900613, 0, 65539, 1966080, 0, 65536, 1966081, 0, 3, 1966082, 0, 131073, 1966083, 0, 5, 1966084, 0, 65537, 1966085, 0, 65537, 1966086, 0, 65539, 1966088, 0, 0, 1966089, 0, 1, 1966090, 0, 2, 1966091, 1, 131072, 1966092, 1, 131073, 1966093, 1, 0, 1966094, 1, 0, 1966095, 1, 131073, 1966096, 1, 131074, 1966097, 0, 65536, 1966098, 0, 65537, 1966099, 0, 65537, 1966100, 0, 65537, 1966101, 0, 65537, 1966102, 0, 65537, 1966103, 0, 65539, 1966104, 1, 131072, 1966105, 1, 0, 1966106, 1, 65537, 1966107, 1, 65537, 1966108, 1, 65537, 1966109, 1, 65538, 1966111, 0, 65541, 1966112, 0, 65537, 1966113, 0, 65537, 1966114, 0, 65537, 1966115, 0, 65537, 1966116, 0, 65537, 1966117, 0, 65537, 1966118, 0, 65537, 1966119, 0, 65537, 1966120, 0, 65537, 1966121, 0, 65537, 1966122, 0, 65537, 1966123, 0, 65537, 1966124, 0, 65537, 1966125, 0, 65537, 1966126, 0, 65537, 1966127, 0, 65537, 1966128, 0, 65537, 1966129, 0, 65537, 1966130, 0, 65537, 1966131, 0, 65537, 1966132, 0, 65537, 1966133, 0, 65537, 1966134, 0, 65537, 1966135, 0, 65537, 1966136, 0, 65537, 1966137, 0, 65537, 1966138, 0, 65537, 1966139, 0, 65537, 1966140, 0, 65537, 1966141, 0, 65537, 1966142, 0, 65537, 1966143, 0, 65537, 1966144, 0, 65537, 1966145, 0, 65537, 1966146, 0, 65537, 1966147, 0, 65537, 1966148, 0, 65537, 1966149, 0, 65538, 2031616, 0, 65536, 2031617, 0, 65538, 2031619, 0, 65541, 2031620, 0, 65537, 2031621, 0, 65537, 2031622, 0, 131075, 2031623, 0, 131076, 2031624, 0, 131077, 2031625, 0, 65537, 2031626, 0, 131075, 2031627, 0, 1, 2031628, 0, 2, 2031629, 1, 65536, 2031630, 1, 65538, 2031631, 0, 0, 2031632, 0, 1, 2031633, 0, 131077, 2031634, 0, 65537, 2031635, 0, 65537, 2031636, 0, 65537, 2031637, 0, 65537, 2031638, 0, 3, 2031639, 0, 131074, 2031640, 0, 0, 2031641, 1, 65536, 2031642, 1, 65537, 2031643, 1, 65537, 2031644, 1, 65537, 2031645, 1, 65538, 2031647, 0, 65541, 2031648, 0, 65537, 2031649, 0, 65537, 2031650, 0, 65537, 2031651, 0, 65537, 2031652, 0, 65537, 2031653, 0, 65537, 2031654, 0, 65537, 2031655, 0, 65537, 2031656, 0, 65537, 2031657, 0, 65537, 2031658, 0, 65537, 2031659, 0, 65537, 2031660, 0, 65537, 2031661, 0, 65537, 2031662, 0, 65537, 2031663, 0, 65537, 2031664, 0, 65537, 2031665, 0, 65537, 2031666, 0, 65537, 2031667, 0, 65537, 2031668, 0, 65537, 2031669, 0, 65537, 2031670, 0, 65537, 2031671, 0, 65537, 2031672, 0, 65537, 2031673, 0, 65537, 2031674, 0, 65537, 2031675, 0, 65537, 2031676, 0, 65537, 2031677, 0, 65537, 2031678, 0, 65537, 2031679, 0, 65537, 2031680, 0, 65537, 2031681, 0, 65537, 2031682, 0, 65537, 2031683, 0, 65537, 2031684, 0, 65537, 2031685, 0, 65539, 2097152, 0, 65536, 2097153, 0, 131075, 2097154, 0, 1, 2097155, 0, 131077, 2097156, 0, 65537, 2097157, 0, 65537, 2097158, 0, 65537, 2097159, 0, 65537, 2097160, 0, 65537, 2097161, 0, 65537, 2097162, 0, 65537, 2097163, 0, 65537, 2097164, 0, 65538, 2097165, 1, 131072, 2097166, 1, 131074, 2097167, 0, 65541, 2097168, 0, 65537, 2097169, 0, 65537, 2097170, 0, 65537, 2097171, 0, 65537, 2097172, 0, 65537, 2097173, 0, 65537, 2097174, 0, 65538, 2097175, 1, 0, 2097176, 1, 1, 2097177, 1, 0, 2097178, 1, 65537, 2097179, 1, 65537, 2097180, 1, 65537, 2097181, 1, 65538, 2097183, 0, 65541, 2097184, 0, 65537, 2097185, 0, 65537, 2097186, 0, 65537, 2097187, 0, 65537, 2097188, 0, 65537, 2097189, 0, 65537, 2097190, 0, 65537, 2097191, 0, 65537, 2097192, 0, 65537, 2097193, 0, 65537, 2097194, 0, 65537, 2097195, 0, 65537, 2097196, 0, 65537, 2097197, 0, 65537, 2097198, 0, 65537, 2097199, 0, 65537, 2097200, 0, 65537, 2097201, 0, 65537, 2097202, 0, 65537, 2097203, 0, 65537, 2097204, 0, 65537, 2097205, 0, 65537, 2097206, 0, 65537, 2097207, 0, 65537, 2097208, 0, 65537, 2097209, 0, 65537, 2097210, 0, 65537, 2097211, 0, 65537, 2097212, 0, 65537, 2097213, 0, 65537, 2097214, 0, 65537, 2097215, 0, 65537, 2097216, 0, 65537, 2097217, 0, 65537, 2097218, 0, 65537, 2097219, 0, 65537, 2097220, 0, 65537, 2097221, 0, 65539, 2162688, 0, 65541, 2162689, 0, 65537, 2162690, 0, 65537, 2162691, 0, 65537, 2162692, 0, 65537, 2162693, 0, 65537, 2162694, 0, 65537, 2162695, 0, 65537, 2162696, 0, 65537, 2162697, 0, 65537, 2162698, 0, 65537, 2162699, 0, 3, 2162700, 0, 131074, 2162701, 0, 0, 2162702, 0, 0, 2162703, 0, 131077, 2162704, 0, 65537, 2162705, 0, 65537, 2162706, 0, 65537, 2162707, 0, 65537, 2162708, 0, 65537, 2162709, 0, 65537, 2162710, 0, 65538, 2162711, 1, 131072, 2162712, 1, 131073, 2162713, 1, 131073, 2162714, 1, 131073, 2162715, 1, 131073, 2162716, 1, 131073, 2162717, 1, 131074, 2162718, 0, 0, 2162719, 0, 131077, 2162720, 0, 65537, 2162721, 0, 65537, 2162722, 0, 65537, 2162723, 0, 65537, 2162724, 0, 65537, 2162725, 0, 65537, 2162726, 0, 65537, 2162727, 0, 65537, 2162728, 0, 65537, 2162729, 0, 65537, 2162730, 0, 65537, 2162731, 0, 65537, 2162732, 0, 65537, 2162733, 0, 65537, 2162734, 0, 65537, 2162735, 0, 65537, 2162736, 0, 65537, 2162737, 0, 65537, 2162738, 0, 65537, 2162739, 0, 65537, 2162740, 0, 65537, 2162741, 0, 65537, 2162742, 0, 65537, 2162743, 0, 65537, 2162744, 0, 65537, 2162745, 0, 65537, 2162746, 0, 65537, 2162747, 0, 65537, 2162748, 0, 65537, 2162749, 0, 65537, 2162750, 0, 65537, 2162751, 0, 65537, 2162752, 0, 65537, 2162753, 0, 65537, 2162754, 0, 65537, 2162755, 0, 65537, 2162756, 0, 65537, 2162757, 0, 131075, 2162758, 0, 131076, 2162759, 0, 131076, 2162760, 0, 131076, 2162761, 0, 131076, 2162762, 0, 1, 2162763, 0, 131076, 2162764, 0, 1, 2162765, 0, 2, 2228224, 0, 65541, 2228225, 0, 65537, 2228226, 0, 65537, 2228227, 0, 65537, 2228228, 0, 65537, 2228229, 0, 65537, 2228230, 0, 65537, 2228231, 0, 65537, 2228232, 0, 65537, 2228233, 0, 65537, 2228234, 0, 65537, 2228235, 0, 65539, 2228236, 1, 0, 2228237, 1, 2, 2228238, 0, 65541, 2228239, 0, 65537, 2228240, 0, 65537, 2228241, 0, 65537, 2228242, 0, 65537, 2228243, 0, 65537, 2228244, 0, 65537, 2228245, 0, 65537, 2228246, 0, 131075, 2228247, 0, 131076, 2228248, 0, 2, 2228250, 0, 0, 2228251, 0, 131076, 2228252, 0, 1, 2228253, 0, 2, 2228254, 0, 131072, 2228255, 0, 5, 2228256, 0, 65537, 2228257, 0, 65537, 2228258, 0, 65537, 2228259, 0, 65537, 2228260, 0, 65537, 2228261, 0, 65537, 2228262, 0, 65537, 2228263, 0, 65537, 2228264, 0, 65537, 2228265, 0, 65537, 2228266, 0, 65537, 2228267, 0, 65537, 2228268, 0, 65537, 2228269, 0, 65537, 2228270, 0, 65537, 2228271, 0, 65537, 2228272, 0, 65537, 2228273, 0, 65537, 2228274, 0, 65537, 2228275, 0, 65537, 2228276, 0, 65537, 2228277, 0, 65537, 2228278, 0, 65537, 2228279, 0, 65537, 2228280, 0, 65537, 2228281, 0, 65537, 2228282, 0, 65537, 2228283, 0, 65537, 2228284, 0, 65537, 2228285, 0, 65537, 2228286, 0, 65537, 2228287, 0, 65537, 2228288, 0, 65537, 2228289, 0, 65537, 2228290, 0, 65537, 2228291, 0, 65537, 2228292, 0, 65537, 2228293, 0, 3, 2228294, 0, 4, 2228295, 0, 4, 2228296, 0, 4, 2228297, 0, 4, 2228298, 0, 131073, 2228299, 0, 4, 2228300, 0, 4, 2228301, 0, 131074, 2293760, 0, 65541, 2293761, 0, 65537, 2293762, 0, 65537, 2293763, 0, 65537, 2293764, 0, 65537, 2293765, 0, 65537, 2293766, 0, 65537, 2293767, 0, 65537, 2293768, 0, 65537, 2293769, 0, 65537, 2293770, 0, 65537, 2293771, 0, 65539, 2293772, 1, 131072, 2293773, 1, 131074, 2293774, 0, 65536, 2293775, 0, 65537, 2293776, 0, 65537, 2293777, 0, 65537, 2293778, 0, 65537, 2293779, 0, 65537, 2293780, 0, 65537, 2293781, 0, 65537, 2293782, 0, 65537, 2293783, 0, 65537, 2293784, 0, 131075, 2293785, 0, 131076, 2293786, 0, 131077, 2293787, 0, 65537, 2293788, 0, 65537, 2293789, 0, 65538, 2293791, 0, 65541, 2293792, 0, 65537, 2293793, 0, 65537, 2293794, 0, 65537, 2293795, 0, 65537, 2293796, 0, 65537, 2293797, 0, 65537, 2293798, 0, 65537, 2293799, 0, 65537, 2293800, 0, 65537, 2293801, 0, 65537, 2293802, 0, 65537, 2293803, 0, 65537, 2293804, 0, 65537, 2293805, 0, 65537, 2293806, 0, 65537, 2293807, 0, 65537, 2293808, 0, 65537, 2293809, 0, 65537, 2293810, 0, 65537, 2293811, 0, 65537, 2293812, 0, 65537, 2293813, 0, 65537, 2293814, 0, 65537, 2293815, 0, 65537, 2293816, 0, 65537, 2293817, 0, 65537, 2293818, 0, 65537, 2293819, 0, 65537, 2293820, 0, 65537, 2293821, 0, 65537, 2293822, 0, 65537, 2293823, 0, 65537, 2293824, 0, 65537, 2293825, 0, 65537, 2293826, 0, 65537, 2293827, 0, 65537, 2293828, 0, 65537, 2293829, 0, 65539, 2359296, 0, 65541, 2359297, 0, 65537, 2359298, 0, 65537, 2359299, 0, 65537, 2359300, 0, 65537, 2359301, 0, 65537, 2359302, 0, 65537, 2359303, 0, 65537, 2359304, 0, 65537, 2359305, 0, 65537, 2359306, 0, 65537, 2359307, 0, 131075, 2359308, 0, 131076, 2359309, 0, 131076, 2359310, 0, 131077, 2359311, 0, 65537, 2359312, 0, 65537, 2359313, 0, 65537, 2359314, 0, 65537, 2359315, 0, 65537, 2359316, 0, 65537, 2359317, 0, 65537, 2359318, 0, 65537, 2359319, 0, 65537, 2359320, 0, 65537, 2359321, 0, 65537, 2359322, 0, 65537, 2359323, 0, 65537, 2359324, 0, 65537, 2359325, 0, 65539, 2359327, 0, 65541, 2359328, 0, 65537, 2359329, 0, 65537, 2359330, 0, 65537, 2359331, 0, 65537, 2359332, 0, 65537, 2359333, 0, 65537, 2359334, 0, 65537, 2359335, 0, 65537, 2359336, 0, 65537, 2359337, 0, 65537, 2359338, 0, 65537, 2359339, 0, 65537, 2359340, 0, 65537, 2359341, 0, 65537, 2359342, 0, 3, 2359343, 0, 131073, 2359344, 0, 131073, 2359345, 0, 4, 2359346, 0, 131073, 2359347, 0, 131073, 2359348, 0, 131073, 2359349, 0, 4, 2359350, 0, 4, 2359351, 0, 5, 2359352, 0, 65537, 2359353, 0, 65537, 2359354, 0, 65537, 2359355, 0, 65537, 2359356, 0, 65537, 2359357, 0, 65537, 2359358, 0, 65537, 2359359, 0, 65537, 2359360, 0, 65537, 2359361, 0, 65537, 2359362, 0, 65537, 2359363, 0, 65537, 2359364, 0, 65537, 2359365, 0, 65538, 2424832, 0, 65541, 2424833, 0, 65537, 2424834, 0, 65537, 2424835, 0, 65537, 2424836, 0, 65537, 2424837, 0, 65537, 2424838, 0, 65537, 2424839, 0, 65537, 2424840, 0, 3, 2424841, 0, 4, 2424842, 0, 4, 2424843, 0, 4, 2424844, 0, 131073, 2424845, 0, 131073, 2424846, 0, 4, 2424847, 0, 5, 2424848, 0, 65537, 2424849, 0, 65537, 2424850, 0, 65537, 2424851, 0, 65537, 2424852, 0, 65537, 2424853, 0, 3, 2424854, 0, 4, 2424855, 0, 5, 2424856, 0, 65537, 2424857, 0, 65537, 2424858, 0, 65537, 2424859, 0, 65537, 2424860, 0, 65537, 2424861, 0, 65539, 2424863, 0, 65541, 2424864, 0, 65537, 2424865, 0, 65537, 2424866, 0, 65537, 2424867, 0, 65537, 2424868, 0, 65537, 2424869, 0, 65537, 2424870, 0, 65537, 2424871, 0, 65537, 2424872, 0, 65537, 2424873, 0, 65537, 2424874, 0, 65537, 2424875, 0, 65537, 2424876, 0, 65537, 2424877, 0, 65537, 2424878, 0, 65539, 2424879, 1, 0, 2424880, 1, 1, 2424881, 1, 1, 2424882, 1, 1, 2424883, 1, 1, 2424884, 1, 1, 2424885, 1, 1, 2424886, 1, 2, 2424887, 0, 65536, 2424888, 0, 65537, 2424889, 0, 65537, 2424890, 0, 65537, 2424891, 0, 65537, 2424892, 0, 65537, 2424893, 0, 65537, 2424894, 0, 65537, 2424895, 0, 65537, 2424896, 0, 65537, 2424897, 0, 65537, 2424898, 0, 65537, 2424899, 0, 65537, 2424900, 0, 65537, 2424901, 0, 65539, 2490368, 0, 65536, 2490369, 0, 65537, 2490370, 0, 65537, 2490371, 0, 65537, 2490372, 0, 65537, 2490373, 0, 65537, 2490374, 0, 65537, 2490375, 0, 65537, 2490376, 0, 65538, 2490377, 1, 0, 2490378, 1, 1, 2490379, 1, 1, 2490380, 1, 1, 2490381, 1, 1, 2490382, 1, 2, 2490383, 0, 65536, 2490384, 0, 65537, 2490385, 0, 65537, 2490386, 0, 65537, 2490387, 0, 3, 2490388, 0, 4, 2490389, 0, 131074, 2490391, 0, 65541, 2490392, 0, 65537, 2490393, 0, 65537, 2490394, 0, 65537, 2490395, 0, 65537, 2490396, 0, 65537, 2490397, 0, 65538, 2490399, 0, 65536, 2490400, 0, 65537, 2490401, 0, 65537, 2490402, 0, 65537, 2490403, 0, 65537, 2490404, 0, 65537, 2490405, 0, 65537, 2490406, 0, 65537, 2490407, 0, 65537, 2490408, 0, 65537, 2490409, 0, 65537, 2490410, 0, 65537, 2490411, 0, 65537, 2490412, 0, 65537, 2490413, 0, 65537, 2490414, 0, 65538, 2490415, 1, 65536, 2490416, 1, 65537, 2490417, 1, 0, 2490418, 1, 131073, 2490419, 1, 131073, 2490420, 1, 0, 2490421, 1, 65537, 2490422, 1, 65538, 2490423, 0, 65536, 2490424, 0, 65537, 2490425, 0, 65537, 2490426, 0, 65537, 2490427, 0, 65537, 2490428, 0, 65537, 2490429, 0, 65537, 2490430, 0, 65537, 2490431, 0, 65537, 2490432, 0, 65537, 2490433, 0, 65537, 2490434, 0, 65537, 2490435, 0, 65537, 2490436, 0, 65537, 2490437, 0, 65539, 2555904, 0, 65541, 2555905, 0, 65537, 2555906, 0, 65537, 2555907, 0, 65537, 2555908, 0, 65537, 2555909, 0, 65537, 2555910, 0, 65537, 2555911, 0, 65537, 2555912, 0, 65538, 2555913, 1, 65536, 2555914, 1, 65537, 2555915, 1, 65537, 2555916, 1, 65537, 2555917, 1, 65537, 2555918, 1, 65538, 2555919, 0, 131072, 2555920, 0, 4, 2555921, 0, 4, 2555922, 0, 131073, 2555923, 0, 131074, 2555927, 0, 131072, 2555928, 0, 5, 2555929, 0, 65537, 2555930, 0, 65537, 2555931, 0, 65537, 2555932, 0, 65537, 2555933, 0, 65538, 2555935, 0, 65541, 2555936, 0, 65537, 2555937, 0, 65537, 2555938, 0, 65537, 2555939, 0, 65537, 2555940, 0, 65537, 2555941, 0, 65537, 2555942, 0, 65537, 2555943, 0, 65537, 2555944, 0, 65537, 2555945, 0, 65537, 2555946, 0, 3, 2555947, 0, 131073, 2555948, 0, 4, 2555949, 0, 131073, 2555950, 0, 131074, 2555951, 1, 65536, 2555952, 1, 65537, 2555953, 1, 65538, 2555954, 0, 0, 2555955, 0, 2, 2555956, 1, 65536, 2555957, 1, 65537, 2555958, 1, 65538, 2555959, 0, 131072, 2555960, 0, 131073, 2555961, 0, 131073, 2555962, 0, 5, 2555963, 0, 65537, 2555964, 0, 65537, 2555965, 0, 65537, 2555966, 0, 65537, 2555967, 0, 65537, 2555968, 0, 65537, 2555969, 0, 65537, 2555970, 0, 65537, 2555971, 0, 65537, 2555972, 0, 65537, 2555973, 0, 65539, 2621440, 0, 65536, 2621441, 0, 65537, 2621442, 0, 65537, 2621443, 0, 65537, 2621444, 0, 65537, 2621445, 0, 3, 2621446, 0, 131073, 2621447, 0, 5, 2621448, 0, 65539, 2621449, 1, 65536, 2621450, 1, 65537, 2621451, 1, 65537, 2621452, 1, 65537, 2621453, 1, 65537, 2621454, 1, 0, 2621455, 1, 1, 2621456, 1, 1, 2621457, 1, 2, 2621458, 0, 0, 2621462, 1, 0, 2621463, 1, 2, 2621464, 0, 65536, 2621465, 0, 65537, 2621466, 0, 65537, 2621467, 0, 65537, 2621468, 0, 65537, 2621469, 0, 65539, 2621471, 0, 65541, 2621472, 0, 65537, 2621473, 0, 65537, 2621474, 0, 65537, 2621475, 0, 65537, 2621476, 0, 65537, 2621477, 0, 65537, 2621478, 0, 65537, 2621479, 0, 65537, 2621480, 0, 65537, 2621481, 0, 65537, 2621482, 0, 65539, 2621483, 1, 0, 2621484, 1, 0, 2621485, 1, 0, 2621486, 1, 0, 2621487, 1, 65536, 2621488, 1, 65537, 2621489, 1, 65538, 2621490, 0, 131072, 2621491, 0, 131074, 2621492, 1, 65536, 2621493, 1, 65537, 2621494, 1, 0, 2621495, 1, 1, 2621496, 1, 1, 2621497, 1, 2, 2621498, 0, 65541, 2621499, 0, 65537, 2621500, 0, 65537, 2621501, 0, 65537, 2621502, 0, 65537, 2621503, 0, 65537, 2621504, 0, 65537, 2621505, 0, 65537, 2621506, 0, 65537, 2621507, 0, 65537, 2621508, 0, 65537, 2621509, 0, 65538, 2686976, 0, 65536, 2686977, 0, 65537, 2686978, 0, 65537, 2686979, 0, 65537, 2686980, 0, 65537, 2686981, 0, 65538, 2686983, 0, 65541, 2686984, 0, 65538, 2686985, 1, 131072, 2686986, 1, 131073, 2686987, 1, 131073, 2686988, 1, 131073, 2686989, 1, 131073, 2686990, 1, 0, 2686991, 1, 65537, 2686992, 1, 65537, 2686993, 1, 65538, 2686994, 0, 0, 2686995, 0, 131076, 2686996, 0, 131076, 2686997, 0, 2, 2686998, 1, 131072, 2686999, 1, 131074, 2687000, 0, 65536, 2687001, 0, 65537, 2687002, 0, 65537, 2687003, 0, 65537, 2687004, 0, 65537, 2687005, 0, 65538, 2687007, 0, 65541, 2687008, 0, 65537, 2687009, 0, 65537, 2687010, 0, 65537, 2687011, 0, 65537, 2687012, 0, 65537, 2687013, 0, 65537, 2687014, 0, 65537, 2687015, 0, 65537, 2687016, 0, 65537, 2687017, 0, 65537, 2687018, 0, 131075, 2687019, 0, 1, 2687020, 0, 1, 2687021, 0, 1, 2687022, 0, 2, 2687023, 1, 65536, 2687024, 1, 65537, 2687025, 1, 0, 2687026, 1, 1, 2687027, 1, 1, 2687028, 1, 0, 2687029, 1, 65537, 2687030, 1, 65537, 2687031, 1, 65537, 2687032, 1, 65537, 2687033, 1, 65538, 2687034, 0, 65536, 2687035, 0, 65537, 2687036, 0, 65537, 2687037, 0, 65537, 2687038, 0, 65537, 2687039, 0, 65537, 2687040, 0, 65537, 2687041, 0, 65537, 2687042, 0, 65537, 2687043, 0, 65537, 2687044, 0, 65537, 2687045, 0, 65539, 2752512, 0, 65541, 2752513, 0, 65537, 2752514, 0, 65537, 2752515, 0, 65537, 2752516, 0, 65537, 2752517, 0, 131075, 2752518, 0, 1, 2752519, 0, 131077, 2752520, 0, 131075, 2752521, 0, 1, 2752522, 0, 1, 2752523, 0, 131076, 2752524, 0, 131076, 2752525, 0, 2, 2752526, 1, 65536, 2752527, 1, 65537, 2752528, 1, 65537, 2752529, 1, 65538, 2752530, 0, 65541, 2752531, 0, 65537, 2752532, 0, 65537, 2752533, 0, 131075, 2752534, 0, 1, 2752535, 0, 1, 2752536, 0, 131077, 2752537, 0, 65537, 2752538, 0, 65537, 2752539, 0, 65537, 2752540, 0, 65537, 2752541, 0, 65539, 2752543, 0, 65541, 2752544, 0, 65537, 2752545, 0, 65537, 2752546, 0, 65537, 2752547, 0, 65537, 2752548, 0, 65537, 2752549, 0, 65537, 2752550, 0, 65537, 2752551, 0, 65537, 2752552, 0, 65537, 2752553, 0, 65537, 2752554, 0, 65537, 2752555, 0, 65537, 2752556, 0, 65537, 2752557, 0, 65537, 2752558, 0, 65538, 2752559, 1, 65536, 2752560, 1, 65537, 2752561, 1, 65537, 2752562, 1, 65537, 2752563, 1, 65537, 2752564, 1, 65537, 2752565, 1, 65537, 2752566, 1, 65537, 2752567, 1, 65537, 2752568, 1, 65537, 2752569, 1, 65538, 2752570, 0, 65536, 2752571, 0, 65537, 2752572, 0, 65537, 2752573, 0, 65537, 2752574, 0, 65537, 2752575, 0, 65537, 2752576, 0, 65537, 2752577, 0, 65537, 2752578, 0, 65537, 2752579, 0, 65537, 2752580, 0, 65537, 2752581, 0, 65538, 2818048, 0, 65541, 2818049, 0, 65537, 2818050, 0, 65537, 2818051, 0, 65537, 2818052, 0, 65537, 2818053, 0, 65537, 2818054, 0, 65537, 2818055, 0, 65537, 2818056, 0, 65537, 2818057, 0, 65537, 2818058, 0, 65537, 2818059, 0, 65537, 2818060, 0, 65537, 2818061, 0, 65539, 2818062, 1, 131072, 2818063, 1, 131073, 2818064, 1, 131073, 2818065, 1, 131074, 2818066, 0, 65541, 2818067, 0, 65537, 2818068, 0, 65537, 2818069, 0, 65537, 2818070, 0, 65537, 2818071, 0, 65537, 2818072, 0, 65537, 2818073, 0, 65537, 2818074, 0, 65537, 2818075, 0, 65537, 2818076, 0, 65537, 2818077, 0, 65539, 2818079, 0, 65536, 2818080, 0, 65537, 2818081, 0, 65537, 2818082, 0, 65537, 2818083, 0, 65537, 2818084, 0, 65537, 2818085, 0, 65537, 2818086, 0, 65537, 2818087, 0, 65537, 2818088, 0, 65537, 2818089, 0, 65537, 2818090, 0, 65537, 2818091, 0, 65537, 2818092, 0, 65537, 2818093, 0, 65537, 2818094, 0, 65538, 2818095, 1, 65536, 2818096, 1, 65537, 2818097, 1, 65537, 2818098, 1, 65537, 2818099, 1, 65537, 2818100, 1, 65537, 2818101, 1, 65537, 2818102, 1, 65537, 2818103, 1, 0, 2818104, 1, 131073, 2818105, 1, 131074, 2818106, 0, 65541, 2818107, 0, 65537, 2818108, 0, 65537, 2818109, 0, 65537, 2818110, 0, 65537, 2818111, 0, 65537, 2818112, 0, 65537, 2818113, 0, 65537, 2818114, 0, 65537, 2818115, 0, 65537, 2818116, 0, 65537, 2818117, 0, 65538, 2883584, 0, 65536, 2883585, 0, 65537, 2883586, 0, 65537, 2883587, 0, 65537, 2883588, 0, 65537, 2883589, 0, 65537, 2883590, 0, 65537, 2883591, 0, 65537, 2883592, 0, 65537, 2883593, 0, 65537, 2883594, 0, 65537, 2883595, 0, 65537, 2883596, 0, 65537, 2883597, 0, 131075, 2883598, 0, 1, 2883599, 0, 131076, 2883600, 0, 131076, 2883601, 0, 1, 2883602, 0, 131077, 2883603, 0, 65537, 2883604, 0, 65537, 2883605, 0, 65537, 2883606, 0, 65537, 2883607, 0, 65537, 2883608, 0, 65537, 2883609, 0, 65537, 2883610, 0, 65537, 2883611, 0, 65537, 2883612, 0, 65537, 2883613, 0, 65539, 2883615, 0, 65541, 2883616, 0, 65537, 2883617, 0, 65537, 2883618, 0, 65537, 2883619, 0, 65537, 2883620, 0, 65537, 2883621, 0, 65537, 2883622, 0, 65537, 2883623, 0, 65537, 2883624, 0, 65537, 2883625, 0, 65537, 2883626, 0, 65537, 2883627, 0, 65537, 2883628, 0, 65537, 2883629, 0, 65537, 2883630, 0, 65538, 2883631, 1, 65536, 2883632, 1, 65537, 2883633, 1, 65537, 2883634, 1, 65537, 2883635, 1, 65537, 2883636, 1, 65537, 2883637, 1, 65537, 2883638, 1, 0, 2883639, 1, 131074, 2883640, 0, 0, 2883641, 0, 1, 2883642, 0, 131077, 2883643, 0, 65537, 2883644, 0, 65537, 2883645, 0, 65537, 2883646, 0, 65537, 2883647, 0, 65537, 2883648, 0, 65537, 2883649, 0, 65537, 2883650, 0, 65537, 2883651, 0, 65537, 2883652, 0, 65537, 2883653, 0, 65539, 2949120, 0, 65541, 2949121, 0, 65537, 2949122, 0, 65537, 2949123, 0, 65537, 2949124, 0, 65537, 2949125, 0, 65537, 2949126, 0, 65537, 2949127, 0, 65537, 2949128, 0, 65537, 2949129, 0, 65537, 2949130, 0, 65537, 2949131, 0, 65537, 2949132, 0, 65537, 2949133, 0, 65537, 2949134, 0, 65537, 2949135, 0, 65537, 2949136, 0, 65537, 2949137, 0, 65537, 2949138, 0, 65537, 2949139, 0, 65537, 2949140, 0, 65537, 2949141, 0, 65537, 2949142, 0, 65537, 2949143, 0, 65537, 2949144, 0, 65537, 2949145, 0, 65537, 2949146, 0, 65537, 2949147, 0, 65537, 2949148, 0, 65537, 2949149, 0, 65539, 2949151, 0, 65536, 2949152, 0, 65537, 2949153, 0, 65537, 2949154, 0, 65537, 2949155, 0, 65537, 2949156, 0, 65537, 2949157, 0, 65537, 2949158, 0, 65537, 2949159, 0, 65537, 2949160, 0, 65537, 2949161, 0, 65537, 2949162, 0, 65537, 2949163, 0, 65537, 2949164, 0, 65537, 2949165, 0, 65537, 2949166, 0, 65539, 2949167, 1, 65536, 2949168, 1, 65537, 2949169, 1, 65537, 2949170, 1, 65537, 2949171, 1, 65537, 2949172, 1, 65537, 2949173, 1, 65537, 2949174, 1, 65538, 2949175, 0, 0, 2949176, 0, 131077, 2949177, 0, 65537, 2949178, 0, 65537, 2949179, 0, 65537, 2949180, 0, 65537, 2949181, 0, 65537, 2949182, 0, 65537, 2949183, 0, 65537, 2949184, 0, 65537, 2949185, 0, 65537, 2949186, 0, 65537, 2949187, 0, 65537, 2949188, 0, 65537, 2949189, 0, 65539, 3014656, 0, 65536, 3014657, 0, 65537, 3014658, 0, 65537, 3014659, 0, 65537, 3014660, 0, 65537, 3014661, 0, 65537, 3014662, 0, 65537, 3014663, 0, 65537, 3014664, 0, 65537, 3014665, 0, 65537, 3014666, 0, 65537, 3014667, 0, 65537, 3014668, 0, 65537, 3014669, 0, 65537, 3014670, 0, 65537, 3014671, 0, 65537, 3014672, 0, 65537, 3014673, 0, 65537, 3014674, 0, 65537, 3014675, 0, 65537, 3014676, 0, 65537, 3014677, 0, 65537, 3014678, 0, 65537, 3014679, 0, 65537, 3014680, 0, 65537, 3014681, 0, 65537, 3014682, 0, 65537, 3014683, 0, 65537, 3014684, 0, 65537, 3014685, 0, 65539, 3014687, 0, 65536, 3014688, 0, 65537, 3014689, 0, 65537, 3014690, 0, 65537, 3014691, 0, 65537, 3014692, 0, 65537, 3014693, 0, 65537, 3014694, 0, 65537, 3014695, 0, 65537, 3014696, 0, 65537, 3014697, 0, 65537, 3014698, 0, 65537, 3014699, 0, 65537, 3014700, 0, 65537, 3014701, 0, 65537, 3014702, 0, 65538, 3014703, 1, 131072, 3014704, 1, 131073, 3014705, 1, 131073, 3014706, 1, 131073, 3014707, 1, 131073, 3014708, 1, 131073, 3014709, 1, 131073, 3014710, 1, 131074, 3014711, 0, 65536, 3014712, 0, 65537, 3014713, 0, 65537, 3014714, 0, 65537, 3014715, 0, 65537, 3014716, 0, 65537, 3014717, 0, 65537, 3014718, 0, 65537, 3014719, 0, 65537, 3014720, 0, 65537, 3014721, 0, 65537, 3014722, 0, 65537, 3014723, 0, 65537, 3014724, 0, 65537, 3014725, 0, 65539, 3080192, 0, 65536, 3080193, 0, 65537, 3080194, 0, 65537, 3080195, 0, 65537, 3080196, 0, 65537, 3080197, 0, 65537, 3080198, 0, 65537, 3080199, 0, 65537, 3080200, 0, 65537, 3080201, 0, 65537, 3080202, 0, 65537, 3080203, 0, 65537, 3080204, 0, 65537, 3080205, 0, 65537, 3080206, 0, 65537, 3080207, 0, 65537, 3080208, 0, 65537, 3080209, 0, 65537, 3080210, 0, 65537, 3080211, 0, 65537, 3080212, 0, 65537, 3080213, 0, 65537, 3080214, 0, 65537, 3080215, 0, 65537, 3080216, 0, 65537, 3080217, 0, 65537, 3080218, 0, 65537, 3080219, 0, 65537, 3080220, 0, 65537, 3080221, 0, 65538, 3080223, 0, 65541, 3080224, 0, 65537, 3080225, 0, 65537, 3080226, 0, 65537, 3080227, 0, 65537, 3080228, 0, 65537, 3080229, 0, 65537, 3080230, 0, 65537, 3080231, 0, 65537, 3080232, 0, 65537, 3080233, 0, 65537, 3080234, 0, 65537, 3080235, 0, 65537, 3080236, 0, 65537, 3080237, 0, 65537, 3080238, 0, 131075, 3080239, 0, 1, 3080240, 0, 131076, 3080241, 0, 1, 3080242, 0, 131076, 3080243, 0, 1, 3080244, 0, 1, 3080245, 0, 131076, 3080246, 0, 1, 3080247, 0, 131077, 3080248, 0, 65537, 3080249, 0, 65537, 3080250, 0, 65537, 3080251, 0, 65537, 3080252, 0, 65537, 3080253, 0, 65537, 3080254, 0, 65537, 3080255, 0, 65537, 3080256, 0, 65537, 3080257, 0, 65537, 3080258, 0, 65537, 3080259, 0, 65537, 3080260, 0, 65537, 3080261, 0, 65539, 3145728, 0, 65536, 3145729, 0, 65537, 3145730, 0, 65537, 3145731, 0, 65537, 3145732, 0, 65537, 3145733, 0, 65537, 3145734, 0, 65537, 3145735, 0, 65537, 3145736, 0, 65537, 3145737, 0, 65537, 3145738, 0, 65537, 3145739, 0, 65537, 3145740, 0, 65537, 3145741, 0, 65537, 3145742, 0, 65537, 3145743, 0, 65537, 3145744, 0, 65537, 3145745, 0, 65537, 3145746, 0, 65537, 3145747, 0, 65537, 3145748, 0, 65537, 3145749, 0, 65537, 3145750, 0, 65537, 3145751, 0, 65537, 3145752, 0, 65537, 3145753, 0, 65537, 3145754, 0, 65537, 3145755, 0, 65537, 3145756, 0, 65537, 3145757, 0, 65538, 3145759, 0, 65541, 3145760, 0, 65537, 3145761, 0, 65537, 3145762, 0, 65537, 3145763, 0, 65537, 3145764, 0, 65537, 3145765, 0, 65537, 3145766, 0, 65537, 3145767, 0, 65537, 3145768, 0, 65537, 3145769, 0, 65537, 3145770, 0, 65537, 3145771, 0, 65537, 3145772, 0, 65537, 3145773, 0, 65537, 3145774, 0, 65537, 3145775, 0, 65537, 3145776, 0, 65537, 3145777, 0, 65537, 3145778, 0, 65537, 3145779, 0, 65537, 3145780, 0, 65537, 3145781, 0, 65537, 3145782, 0, 65537, 3145783, 0, 65537, 3145784, 0, 65537, 3145785, 0, 65537, 3145786, 0, 65537, 3145787, 0, 65537, 3145788, 0, 65537, 3145789, 0, 65537, 3145790, 0, 65537, 3145791, 0, 65537, 3145792, 0, 65537, 3145793, 0, 65537, 3145794, 0, 65537, 3145795, 0, 65537, 3145796, 0, 65537, 3145797, 0, 65538, 3211264, 0, 131072, 3211265, 0, 131073, 3211266, 0, 131073, 3211267, 0, 131073, 3211268, 0, 4, 3211269, 0, 4, 3211270, 0, 4, 3211271, 0, 131073, 3211272, 0, 131073, 3211273, 0, 131073, 3211274, 0, 4, 3211275, 0, 4, 3211276, 0, 131073, 3211277, 0, 4, 3211278, 0, 131073, 3211279, 0, 4, 3211280, 0, 4, 3211281, 0, 4, 3211282, 0, 131073, 3211283, 0, 131073, 3211284, 0, 131073, 3211285, 0, 131073, 3211286, 0, 4, 3211287, 0, 131073, 3211288, 0, 4, 3211289, 0, 131073, 3211290, 0, 4, 3211291, 0, 131073, 3211292, 0, 131073, 3211293, 0, 131074, 3211295, 0, 65541, 3211296, 0, 65537, 3211297, 0, 65537, 3211298, 0, 65537, 3211299, 0, 65537, 3211300, 0, 65537, 3211301, 0, 65537, 3211302, 0, 65537, 3211303, 0, 65537, 3211304, 0, 65537, 3211305, 0, 65537, 3211306, 0, 65537, 3211307, 0, 65537, 3211308, 0, 65537, 3211309, 0, 65537, 3211310, 0, 65537, 3211311, 0, 65537, 3211312, 0, 65537, 3211313, 0, 65537, 3211314, 0, 65537, 3211315, 0, 65537, 3211316, 0, 65537, 3211317, 0, 65537, 3211318, 0, 65537, 3211319, 0, 65537, 3211320, 0, 65537, 3211321, 0, 65537, 3211322, 0, 65537, 3211323, 0, 65537, 3211324, 0, 65537, 3211325, 0, 65537, 3211326, 0, 65537, 3211327, 0, 65537, 3211328, 0, 65537, 3211329, 0, 65537, 3211330, 0, 65537, 3211331, 0, 65537, 3211332, 0, 65537, 3211333, 0, 65538, 3276830, 0, 0, 3276831, 0, 131077, 3276832, 0, 65537, 3276833, 0, 65537, 3276834, 0, 65537, 3276835, 0, 65537, 3276836, 0, 65537, 3276837, 0, 65537, 3276838, 0, 65537, 3276839, 0, 65537, 3276840, 0, 65537, 3276841, 0, 65537, 3276842, 0, 65537, 3276843, 0, 65537, 3276844, 0, 65537, 3276845, 0, 65537, 3276846, 0, 65537, 3276847, 0, 65537, 3276848, 0, 65537, 3276849, 0, 65537, 3276850, 0, 65537, 3276851, 0, 65537, 3276852, 0, 65537, 3276853, 0, 65537, 3276854, 0, 65537, 3276855, 0, 65537, 3276856, 0, 65537, 3276857, 0, 65537, 3276858, 0, 65537, 3276859, 0, 65537, 3276860, 0, 65537, 3276861, 0, 65537, 3276862, 0, 65537, 3276863, 0, 65537, 3276864, 0, 65537, 3276865, 0, 65537, 3276866, 0, 65537, 3276867, 0, 65537, 3276868, 0, 65537, 3276869, 0, 65539, 3342366, 0, 131072, 3342367, 0, 131073, 3342368, 0, 131073, 3342369, 0, 4, 3342370, 0, 4, 3342371, 0, 4, 3342372, 0, 4, 3342373, 0, 4, 3342374, 0, 131073, 3342375, 0, 4, 3342376, 0, 131073, 3342377, 0, 131073, 3342378, 0, 131073, 3342379, 0, 131073, 3342380, 0, 4, 3342381, 0, 4, 3342382, 0, 131073, 3342383, 0, 4, 3342384, 0, 4, 3342385, 0, 131073, 3342386, 0, 131073, 3342387, 0, 4, 3342388, 0, 131073, 3342389, 0, 4, 3342390, 0, 131073, 3342391, 0, 4, 3342392, 0, 4, 3342393, 0, 4, 3342394, 0, 4, 3342395, 0, 4, 3342396, 0, 4, 3342397, 0, 4, 3342398, 0, 4, 3342399, 0, 4, 3342400, 0, 131073, 3342401, 0, 4, 3342402, 0, 4, 3342403, 0, 4, 3342404, 0, 4, 3342405, 0, 131074 ) [node name="StaticBody2D" type="StaticBody2D" parent="World/SemiSolidsTileMap"] collision_layer = 8 @@ -473,7 +474,7 @@ tile_data = PoolIntArray( 983044, 5, 0, 1900564, 4, 0, 1900566, 2, 0, 2031623, 3 [node name="SolidsTileMap" parent="World" instance=ExtResource( 12 )] tile_set = SubResource( 37 ) -tile_data = PoolIntArray( -65517, 0, 0, -65516, 0, 131076, -65515, 0, 131076, -65514, 0, 1, -65513, 0, 1, -65512, 0, 131076, -65511, 0, 1, -65510, 0, 131076, -65509, 0, 1, -65508, 0, 2, 65533, 0, 0, 65534, 0, 1, 65535, 0, 2, 19, 0, 65541, 20, 0, 65537, 21, 0, 65537, 22, 0, 65537, 23, 0, 65537, 24, 0, 65537, 25, 0, 65537, 26, 0, 65537, 27, 0, 65537, 28, 0, 131075, 29, 0, 131076, 30, 0, 2, 131069, 0, 65541, 131070, 0, 65537, 131071, 0, 65538, 65555, 0, 131072, 65556, 0, 4, 65557, 0, 5, 65558, 0, 65537, 65559, 0, 65537, 65560, 0, 65537, 65561, 0, 65537, 65562, 0, 65537, 65563, 0, 65537, 65564, 0, 65537, 65565, 0, 65537, 65566, 0, 65539, 196605, 0, 65541, 196606, 0, 65537, 196607, 0, 65538, 131093, 0, 131072, 131094, 0, 131073, 131095, 0, 4, 131096, 0, 4, 131097, 0, 131073, 131098, 0, 131073, 131099, 0, 4, 131100, 0, 5, 131101, 0, 65537, 131102, 0, 65539, 262141, 0, 65536, 262142, 0, 65537, 262143, 0, 65538, 196636, 0, 65536, 196637, 0, 65537, 196638, 0, 65538, 327677, 0, 65541, 327678, 0, 65537, 327679, 0, 65539, 262172, 0, 65541, 262173, 0, 65537, 262174, 0, 65539, 393213, 0, 65536, 393214, 0, 65537, 393215, 0, 65539, 327708, 0, 65541, 327709, 0, 65537, 327710, 0, 65538, 458749, 0, 65536, 458750, 0, 65537, 458751, 0, 65538, 393244, 0, 65541, 393245, 0, 65537, 393246, 0, 65538, 524285, 0, 65536, 524286, 0, 65537, 524287, 0, 65539, 458780, 0, 65536, 458781, 0, 65537, 458782, 0, 65539, 589821, 0, 65536, 589822, 0, 65537, 589823, 0, 65538, 524316, 0, 65536, 524317, 0, 65537, 524318, 0, 65538, 655357, 0, 65536, 655358, 0, 65537, 655359, 0, 65539, 589852, 0, 65541, 589853, 0, 65537, 589854, 0, 65538, 720893, 0, 65541, 720894, 0, 65537, 720895, 0, 65538, 655388, 0, 65541, 655389, 0, 65537, 655390, 0, 65538, 786429, 0, 65541, 786430, 0, 65537, 786431, 0, 65539, 720924, 0, 65536, 720925, 0, 65537, 720926, 0, 65539, 851965, 0, 65536, 851966, 0, 65537, 851967, 0, 65539, 786460, 0, 65541, 786461, 0, 65537, 786462, 0, 65538, 917501, 0, 65536, 917502, 0, 65537, 917503, 0, 65539, 851996, 0, 65541, 851997, 0, 65537, 851998, 0, 65538, 983037, 0, 65536, 983038, 0, 65537, 983039, 0, 65539, 917522, 0, 0, 917523, 0, 2, 917532, 0, 65536, 917533, 0, 65537, 917534, 0, 65539, 1048573, 0, 65536, 1048574, 0, 65537, 1048575, 0, 65538, 983053, 0, 0, 983054, 0, 2, 983058, 0, 65536, 983059, 0, 131075, 983060, 0, 2, 983062, 0, 0, 983063, 0, 2, 983068, 0, 65541, 983069, 0, 65537, 983070, 0, 65538, 1114109, 0, 131072, 1114110, 0, 131073, 1114111, 0, 1, 1048576, 0, 131076, 1048577, 0, 131076, 1048578, 0, 131076, 1048579, 0, 131076, 1048580, 0, 131076, 1048581, 0, 1, 1048582, 0, 1, 1048583, 0, 1, 1048584, 0, 1, 1048585, 0, 1, 1048586, 0, 1, 1048587, 0, 131076, 1048588, 0, 131076, 1048589, 0, 131077, 1048590, 0, 131075, 1048591, 0, 131076, 1048592, 0, 131076, 1048593, 0, 131076, 1048594, 0, 131077, 1048595, 0, 65537, 1048596, 0, 131075, 1048597, 0, 1, 1048598, 0, 131077, 1048599, 0, 131075, 1048600, 0, 2, 1048603, 0, 0, 1048604, 0, 131077, 1048605, 0, 65537, 1048606, 0, 131075, 1048607, 0, 1, 1048608, 0, 131076, 1048609, 0, 1, 1048610, 0, 1, 1048611, 0, 1, 1048612, 0, 1, 1048613, 0, 131076, 1048614, 0, 1, 1048615, 0, 1, 1048616, 0, 1, 1048617, 0, 131076, 1048618, 0, 1, 1048619, 0, 131076, 1048620, 0, 1, 1048621, 0, 131076, 1048622, 0, 131076, 1048623, 0, 1, 1048624, 0, 131076, 1048625, 0, 131076, 1048626, 0, 1, 1048627, 0, 131076, 1048628, 0, 1, 1048629, 0, 131076, 1048630, 0, 131076, 1048631, 0, 131076, 1048632, 0, 131076, 1048633, 0, 131076, 1048634, 0, 1, 1048635, 0, 131076, 1048636, 0, 2, 1179647, 0, 65541, 1114112, 0, 65537, 1114113, 0, 65537, 1114114, 0, 65537, 1114115, 0, 65537, 1114116, 0, 65537, 1114117, 0, 65537, 1114118, 0, 65537, 1114119, 0, 65537, 1114120, 0, 65537, 1114121, 0, 65537, 1114122, 0, 65537, 1114123, 0, 65537, 1114124, 0, 65537, 1114125, 0, 65537, 1114126, 0, 65537, 1114127, 0, 65537, 1114128, 0, 65537, 1114129, 0, 65537, 1114130, 0, 65537, 1114131, 0, 65537, 1114132, 0, 65537, 1114133, 0, 65537, 1114134, 0, 65537, 1114135, 0, 65537, 1114136, 0, 65539, 1114139, 0, 65536, 1114140, 0, 65537, 1114141, 0, 65537, 1114142, 0, 3, 1114143, 0, 4, 1114144, 0, 4, 1114145, 0, 131073, 1114146, 0, 4, 1114147, 0, 131073, 1114148, 0, 131073, 1114149, 0, 4, 1114150, 0, 131073, 1114151, 0, 4, 1114152, 0, 4, 1114153, 0, 131073, 1114154, 0, 131073, 1114155, 0, 4, 1114156, 0, 131073, 1114157, 0, 4, 1114158, 0, 131073, 1114159, 0, 4, 1114160, 0, 4, 1114161, 0, 131073, 1114162, 0, 131073, 1114163, 0, 131073, 1114164, 0, 131073, 1114165, 0, 4, 1114166, 0, 131073, 1114167, 0, 4, 1114168, 0, 4, 1114169, 0, 131073, 1114170, 0, 4, 1114171, 0, 5, 1114172, 0, 65539, 1245183, 0, 65536, 1179648, 0, 65537, 1179649, 0, 65537, 1179650, 0, 65537, 1179651, 0, 65537, 1179652, 0, 65537, 1179653, 0, 65537, 1179654, 0, 65537, 1179655, 0, 65537, 1179656, 0, 65537, 1179657, 0, 65537, 1179658, 0, 65537, 1179659, 0, 65537, 1179660, 0, 65537, 1179661, 0, 65537, 1179662, 0, 65537, 1179663, 0, 65537, 1179664, 0, 65537, 1179665, 0, 3, 1179666, 0, 131073, 1179667, 0, 4, 1179668, 0, 4, 1179669, 0, 4, 1179670, 0, 4, 1179671, 0, 5, 1179672, 0, 65538, 1179675, 0, 131072, 1179676, 0, 131073, 1179677, 0, 5, 1179678, 0, 65538, 1179707, 0, 65536, 1179708, 0, 65538, 1310719, 0, 65541, 1245184, 0, 65537, 1245185, 0, 65537, 1245186, 0, 65537, 1245187, 0, 65537, 1245188, 0, 65537, 1245189, 0, 65537, 1245190, 0, 65537, 1245191, 0, 65537, 1245192, 0, 65537, 1245193, 0, 65537, 1245194, 0, 65537, 1245195, 0, 65537, 1245196, 0, 65537, 1245197, 0, 65537, 1245198, 0, 65537, 1245199, 0, 65537, 1245200, 0, 65537, 1245201, 0, 65539, 1245207, 0, 65536, 1245208, 0, 131075, 1245209, 0, 2, 1245213, 0, 65536, 1245214, 0, 65539, 1245243, 0, 65536, 1245244, 0, 65539, 1376255, 0, 65541, 1310720, 0, 65537, 1310721, 0, 65537, 1310722, 0, 65537, 1310723, 0, 65537, 1310724, 0, 65537, 1310725, 0, 65537, 1310726, 0, 65537, 1310727, 0, 65537, 1310728, 0, 65537, 1310729, 0, 65537, 1310730, 0, 65537, 1310731, 0, 65537, 1310732, 0, 65537, 1310733, 0, 65537, 1310734, 0, 65537, 1310735, 0, 65537, 1310736, 0, 65537, 1310737, 0, 131075, 1310738, 0, 2, 1310743, 0, 65536, 1310744, 0, 3, 1310745, 0, 131074, 1310749, 0, 65536, 1310750, 0, 65539, 1310779, 0, 65541, 1310780, 0, 65538, 1441791, 0, 65541, 1376256, 0, 65537, 1376257, 0, 65537, 1376258, 0, 65537, 1376259, 0, 3, 1376260, 0, 4, 1376261, 0, 131073, 1376262, 0, 131073, 1376263, 0, 4, 1376264, 0, 4, 1376265, 0, 131073, 1376266, 0, 4, 1376267, 0, 131073, 1376268, 0, 5, 1376269, 0, 3, 1376270, 0, 131073, 1376271, 0, 131073, 1376272, 0, 4, 1376273, 0, 131073, 1376274, 0, 131074, 1376278, 0, 0, 1376279, 0, 131077, 1376280, 0, 65538, 1376285, 0, 65541, 1376286, 0, 65539, 1376315, 0, 65536, 1376316, 0, 65539, 1507327, 0, 65541, 1441792, 0, 3, 1441793, 0, 4, 1441794, 0, 131073, 1441795, 0, 131074, 1441804, 0, 65541, 1441805, 0, 65538, 1441814, 0, 131072, 1441815, 0, 5, 1441816, 0, 65539, 1441821, 0, 65536, 1441822, 0, 65539, 1441851, 0, 65536, 1441852, 0, 65539, 1572863, 0, 65536, 1507328, 0, 65538, 1507340, 0, 65541, 1507341, 0, 65539, 1507351, 0, 65541, 1507352, 0, 131075, 1507353, 0, 1, 1507354, 0, 131076, 1507355, 0, 2, 1507357, 0, 65536, 1507358, 0, 65539, 1507387, 0, 65536, 1507388, 0, 65539, 1638399, 0, 65541, 1572864, 0, 65538, 1572866, 0, 0, 1572867, 0, 131076, 1572868, 0, 1, 1572869, 0, 1, 1572870, 0, 1, 1572871, 0, 1, 1572872, 0, 2, 1572876, 0, 65541, 1572877, 0, 131075, 1572878, 0, 2, 1572880, 0, 0, 1572881, 0, 131076, 1572882, 0, 2, 1572887, 0, 131072, 1572888, 0, 131073, 1572889, 0, 4, 1572890, 0, 131073, 1572891, 0, 131074, 1572893, 0, 65536, 1572894, 0, 65538, 1572923, 0, 65541, 1572924, 0, 65539, 1703935, 0, 65541, 1638400, 0, 65538, 1638402, 0, 131072, 1638403, 0, 4, 1638404, 0, 131073, 1638405, 0, 4, 1638406, 0, 131073, 1638407, 0, 5, 1638408, 0, 65539, 1638412, 0, 65536, 1638413, 0, 65537, 1638414, 0, 65539, 1638416, 0, 131072, 1638417, 0, 5, 1638418, 0, 65538, 1638429, 0, 65541, 1638430, 0, 65538, 1638459, 0, 65541, 1638460, 0, 65539, 1769471, 0, 65541, 1703936, 0, 65539, 1703943, 0, 65541, 1703944, 0, 65539, 1703947, 0, 0, 1703948, 0, 131077, 1703949, 0, 65537, 1703950, 0, 65539, 1703953, 0, 131072, 1703954, 0, 131074, 1703965, 0, 65536, 1703966, 0, 65538, 1703995, 0, 65541, 1703996, 0, 65538, 1835007, 0, 65536, 1769472, 0, 65539, 1769479, 0, 65541, 1769480, 0, 131075, 1769481, 0, 2, 1769483, 0, 131072, 1769484, 0, 5, 1769485, 0, 65537, 1769486, 0, 65538, 1769491, 0, 0, 1769492, 0, 1, 1769493, 0, 1, 1769494, 0, 1, 1769495, 0, 1, 1769496, 0, 131076, 1769497, 0, 131076, 1769498, 0, 1, 1769499, 0, 1, 1769500, 0, 131076, 1769501, 0, 131077, 1769502, 0, 65538, 1769531, 0, 65536, 1769532, 0, 65539, 1900543, 0, 65541, 1835008, 0, 131075, 1835009, 0, 131076, 1835010, 0, 1, 1835011, 0, 131076, 1835012, 0, 2, 1835015, 0, 65536, 1835016, 0, 65537, 1835017, 0, 65539, 1835020, 0, 131072, 1835021, 0, 4, 1835022, 0, 131074, 1835027, 0, 65541, 1835028, 0, 65537, 1835029, 0, 65537, 1835030, 0, 3, 1835031, 0, 131073, 1835032, 0, 5, 1835033, 0, 65537, 1835034, 0, 65537, 1835035, 0, 65537, 1835036, 0, 65537, 1835037, 0, 65537, 1835038, 0, 65538, 1835067, 0, 65541, 1835068, 0, 65538, 1966079, 0, 65536, 1900544, 0, 65537, 1900545, 0, 65537, 1900546, 0, 65537, 1900547, 0, 3, 1900548, 0, 131074, 1900551, 0, 65536, 1900552, 0, 65537, 1900553, 0, 65539, 1900563, 0, 131072, 1900564, 0, 4, 1900565, 0, 131073, 1900566, 0, 131074, 1900568, 0, 131072, 1900569, 0, 5, 1900570, 0, 3, 1900571, 0, 4, 1900572, 0, 131073, 1900573, 0, 5, 1900574, 0, 65539, 1900603, 0, 65536, 1900604, 0, 65539, 2031615, 0, 65536, 1966080, 0, 65537, 1966081, 0, 65537, 1966082, 0, 65537, 1966083, 0, 65538, 1966087, 0, 65541, 1966088, 0, 65537, 1966089, 0, 131075, 1966090, 0, 131076, 1966091, 0, 131076, 1966092, 0, 1, 1966093, 0, 2, 1966105, 0, 131072, 1966106, 0, 131074, 1966109, 0, 65536, 1966110, 0, 65538, 1966139, 0, 65541, 1966140, 0, 65539, 2097151, 0, 65536, 2031616, 0, 65537, 2031617, 0, 65537, 2031618, 0, 65537, 2031619, 0, 65538, 2031623, 0, 65541, 2031624, 0, 65537, 2031625, 0, 65537, 2031626, 0, 65537, 2031627, 0, 65537, 2031628, 0, 65537, 2031629, 0, 131075, 2031630, 0, 2, 2031645, 0, 65536, 2031646, 0, 65539, 2031675, 0, 65536, 2031676, 0, 65538, 2162687, 0, 65536, 2097152, 0, 65537, 2097153, 0, 65537, 2097154, 0, 65537, 2097155, 0, 65538, 2097159, 0, 65536, 2097160, 0, 65537, 2097161, 0, 65537, 2097162, 0, 65537, 2097163, 0, 65537, 2097164, 0, 65537, 2097165, 0, 65537, 2097166, 0, 131075, 2097167, 0, 1, 2097168, 0, 2, 2097173, 0, 0, 2097174, 0, 2, 2097181, 0, 65536, 2097182, 0, 65538, 2097211, 0, 65541, 2097212, 0, 65539, 2228223, 0, 65536, 2162688, 0, 65537, 2162689, 0, 65537, 2162690, 0, 65537, 2162691, 0, 65538, 2162693, 0, 0, 2162694, 0, 131076, 2162695, 0, 131077, 2162696, 0, 65537, 2162697, 0, 65537, 2162698, 0, 65537, 2162699, 0, 65537, 2162700, 0, 65537, 2162701, 0, 65537, 2162702, 0, 65537, 2162703, 0, 65537, 2162704, 0, 131075, 2162705, 0, 1, 2162706, 0, 1, 2162707, 0, 1, 2162708, 0, 1, 2162709, 0, 131077, 2162710, 0, 131075, 2162711, 0, 131076, 2162712, 0, 1, 2162713, 0, 131076, 2162714, 0, 131076, 2162715, 0, 1, 2162716, 0, 1, 2162717, 0, 131077, 2162718, 0, 131075, 2162719, 0, 1, 2162720, 0, 1, 2162721, 0, 131076, 2162722, 0, 1, 2162723, 0, 131076, 2162724, 0, 1, 2162725, 0, 131076, 2162726, 0, 131076, 2162727, 0, 1, 2162728, 0, 1, 2162729, 0, 131076, 2162730, 0, 1, 2162731, 0, 131076, 2162732, 0, 131076, 2162733, 0, 131076, 2162734, 0, 131076, 2162735, 0, 1, 2162736, 0, 1, 2162737, 0, 131076, 2162738, 0, 131076, 2162739, 0, 1, 2162740, 0, 1, 2162741, 0, 1, 2162742, 0, 131076, 2162743, 0, 131076, 2162744, 0, 131076, 2162745, 0, 1, 2162746, 0, 1, 2162747, 0, 131077, 2162748, 0, 131075, 2162749, 0, 131076, 2162750, 0, 131076, 2162751, 0, 1, 2162752, 0, 1, 2162753, 0, 1, 2162754, 0, 131076, 2162755, 0, 1, 2162756, 0, 131076, 2162757, 0, 131076, 2162758, 0, 131076, 2162759, 0, 2, 2293759, 0, 65536, 2228224, 0, 65537, 2228225, 0, 65537, 2228226, 0, 65537, 2228227, 0, 65539, 2228229, 0, 65536, 2228230, 0, 65537, 2228231, 0, 3, 2228232, 0, 131073, 2228233, 0, 131073, 2228234, 0, 131073, 2228235, 0, 131073, 2228236, 0, 131073, 2228237, 0, 4, 2228238, 0, 4, 2228239, 0, 131073, 2228240, 0, 131073, 2228241, 0, 131073, 2228242, 0, 4, 2228243, 0, 4, 2228244, 0, 131073, 2228245, 0, 131073, 2228246, 0, 4, 2228247, 0, 4, 2228248, 0, 4, 2228249, 0, 131073, 2228250, 0, 131073, 2228251, 0, 4, 2228252, 0, 4, 2228253, 0, 5, 2228254, 0, 3, 2228255, 0, 4, 2228256, 0, 4, 2228257, 0, 4, 2228258, 0, 4, 2228259, 0, 4, 2228260, 0, 4, 2228261, 0, 131073, 2228262, 0, 4, 2228263, 0, 4, 2228264, 0, 131073, 2228265, 0, 4, 2228266, 0, 4, 2228267, 0, 131073, 2228268, 0, 4, 2228269, 0, 131073, 2228270, 0, 4, 2228271, 0, 4, 2228272, 0, 4, 2228273, 0, 131073, 2228274, 0, 131073, 2228275, 0, 4, 2228276, 0, 4, 2228277, 0, 4, 2228278, 0, 131073, 2228279, 0, 131073, 2228280, 0, 131073, 2228281, 0, 4, 2228282, 0, 131073, 2228283, 0, 5, 2228284, 0, 3, 2228285, 0, 131073, 2228286, 0, 4, 2228287, 0, 4, 2228288, 0, 131073, 2228289, 0, 131073, 2228290, 0, 131073, 2228291, 0, 131073, 2228292, 0, 4, 2228293, 0, 131073, 2228294, 0, 4, 2228295, 0, 131074, 2359295, 0, 65541, 2293760, 0, 65537, 2293761, 0, 65537, 2293762, 0, 65537, 2293763, 0, 65539, 2293765, 0, 65541, 2293766, 0, 65537, 2293767, 0, 65538, 2293789, 0, 65541, 2293790, 0, 65539, 2293819, 0, 65536, 2293820, 0, 65539, 2424831, 0, 65541, 2359296, 0, 65537, 2359297, 0, 65537, 2359298, 0, 65537, 2359299, 0, 65539, 2359301, 0, 65536, 2359302, 0, 65537, 2359303, 0, 65538, 2359325, 0, 131072, 2359326, 0, 131074, 2359355, 0, 65536, 2359356, 0, 65538, 2490367, 0, 65536, 2424832, 0, 65537, 2424833, 0, 65537, 2424834, 0, 65537, 2424835, 0, 65539, 2424837, 0, 65541, 2424838, 0, 65537, 2424839, 0, 65539, 2424891, 0, 65541, 2424892, 0, 65538, 2555903, 0, 65536, 2490368, 0, 65537, 2490369, 0, 65537, 2490370, 0, 65537, 2490371, 0, 65538, 2490373, 0, 65536, 2490374, 0, 65537, 2490375, 0, 65539, 2490397, 0, 0, 2490398, 0, 1, 2490399, 0, 131076, 2490400, 0, 131076, 2490401, 0, 131076, 2490402, 0, 1, 2490403, 0, 131076, 2490404, 0, 1, 2490405, 0, 131076, 2490406, 0, 131076, 2490407, 0, 1, 2490408, 0, 1, 2490409, 0, 131076, 2490410, 0, 131076, 2490411, 0, 1, 2490412, 0, 1, 2490413, 0, 2, 2490427, 0, 65541, 2490428, 0, 65539, 2621439, 0, 65541, 2555904, 0, 65537, 2555905, 0, 65537, 2555906, 0, 65537, 2555907, 0, 65538, 2555909, 0, 65541, 2555910, 0, 65537, 2555911, 0, 65538, 2555933, 0, 65541, 2555934, 0, 3, 2555935, 0, 4, 2555936, 0, 4, 2555937, 0, 4, 2555938, 0, 4, 2555939, 0, 4, 2555940, 0, 131073, 2555941, 0, 4, 2555942, 0, 131073, 2555943, 0, 131073, 2555944, 0, 4, 2555945, 0, 131073, 2555946, 0, 131073, 2555947, 0, 131073, 2555948, 0, 4, 2555949, 0, 131074, 2555963, 0, 65536, 2555964, 0, 65539, 2686975, 0, 65536, 2621440, 0, 65537, 2621441, 0, 65537, 2621442, 0, 65537, 2621443, 0, 65539, 2621445, 0, 65541, 2621446, 0, 65537, 2621447, 0, 65538, 2621469, 0, 65541, 2621470, 0, 65538, 2621499, 0, 65541, 2621500, 0, 65538, 2752511, 0, 65541, 2686976, 0, 65537, 2686977, 0, 65537, 2686978, 0, 65537, 2686979, 0, 65538, 2686981, 0, 65536, 2686982, 0, 65537, 2686983, 0, 65538, 2687005, 0, 65536, 2687006, 0, 65538, 2687035, 0, 65536, 2687036, 0, 65538, 2818047, 0, 65536, 2752512, 0, 3, 2752513, 0, 131073, 2752514, 0, 4, 2752515, 0, 131074, 2752517, 0, 65541, 2752518, 0, 65537, 2752519, 0, 65539, 2752541, 0, 65541, 2752542, 0, 65539, 2752563, 0, 1, 2752564, 0, 1, 2752565, 0, 1, 2752571, 0, 65536, 2752572, 0, 65538, 2883583, 0, 65536, 2818048, 0, 65538, 2818053, 0, 65536, 2818054, 0, 65537, 2818055, 0, 131075, 2818056, 0, 131076, 2818057, 0, 131076, 2818058, 0, 131076, 2818059, 0, 1, 2818060, 0, 131076, 2818061, 0, 131076, 2818062, 0, 131076, 2818063, 0, 1, 2818064, 0, 131076, 2818065, 0, 131076, 2818066, 0, 131076, 2818067, 0, 2, 2818077, 0, 65536, 2818078, 0, 65539, 2818084, 0, 1, 2818085, 0, 1, 2818086, 0, 1, 2818087, 0, 1, 2818088, 0, 1, 2818089, 0, 1, 2818107, 0, 65541, 2818108, 0, 65538, 2949119, 0, 65536, 2883584, 0, 65538, 2883589, 0, 65541, 2883590, 0, 65537, 2883591, 0, 65537, 2883592, 0, 65537, 2883593, 0, 65537, 2883594, 0, 65537, 2883595, 0, 65537, 2883596, 0, 65537, 2883597, 0, 65537, 2883598, 0, 65537, 2883599, 0, 65537, 2883600, 0, 65537, 2883601, 0, 65537, 2883602, 0, 65537, 2883603, 0, 65539, 2883613, 0, 65541, 2883614, 0, 65538, 2883643, 0, 65541, 2883644, 0, 65539, 3014655, 0, 65536, 2949120, 0, 65539, 2949125, 0, 65536, 2949126, 0, 65537, 2949127, 0, 65537, 2949128, 0, 65537, 2949129, 0, 65537, 2949130, 0, 65537, 2949131, 0, 65537, 2949132, 0, 65537, 2949133, 0, 65537, 2949134, 0, 65537, 2949135, 0, 65537, 2949136, 0, 65537, 2949137, 0, 65537, 2949138, 0, 65537, 2949139, 0, 65539, 2949149, 0, 65541, 2949150, 0, 65538, 2949161, 0, 1, 2949162, 0, 1, 2949163, 0, 1, 2949164, 0, 1, 2949165, 0, 1, 2949179, 0, 65536, 2949180, 0, 65539, 3080191, 0, 65536, 3014656, 0, 65538, 3014661, 0, 131072, 3014662, 0, 131073, 3014663, 0, 131073, 3014664, 0, 4, 3014665, 0, 4, 3014666, 0, 4, 3014667, 0, 4, 3014668, 0, 131073, 3014669, 0, 131073, 3014670, 0, 131073, 3014671, 0, 131073, 3014672, 0, 131073, 3014673, 0, 131073, 3014674, 0, 4, 3014675, 0, 131074, 3014685, 0, 65541, 3014686, 0, 65538, 3014715, 0, 65536, 3014716, 0, 65538, 3145727, 0, 65536, 3080192, 0, 65538, 3080221, 0, 65536, 3080222, 0, 65538, 3080251, 0, 65541, 3080252, 0, 65538, 3211263, 0, 65541, 3145728, 0, 65539, 3145757, 0, 65541, 3145758, 0, 65538, 3145787, 0, 65541, 3145788, 0, 65538, 3276799, 0, 65536, 3211264, 0, 65538, 3211293, 0, 65536, 3211294, 0, 65538, 3211323, 0, 65541, 3211324, 0, 65538, 3342335, 0, 65541, 3276800, 0, 131075, 3276801, 0, 131076, 3276802, 0, 1, 3276803, 0, 131076, 3276804, 0, 1, 3276805, 0, 131076, 3276806, 0, 1, 3276807, 0, 131076, 3276808, 0, 1, 3276809, 0, 1, 3276810, 0, 1, 3276811, 0, 1, 3276812, 0, 131076, 3276813, 0, 1, 3276814, 0, 131076, 3276815, 0, 131076, 3276816, 0, 131076, 3276817, 0, 1, 3276818, 0, 1, 3276819, 0, 1, 3276820, 0, 1, 3276821, 0, 1, 3276822, 0, 131076, 3276823, 0, 131076, 3276824, 0, 1, 3276825, 0, 131076, 3276826, 0, 1, 3276827, 0, 131076, 3276828, 0, 1, 3276829, 0, 131077, 3276830, 0, 131075, 3276831, 0, 131076, 3276832, 0, 131076, 3276833, 0, 1, 3276834, 0, 131076, 3276835, 0, 131076, 3276836, 0, 131076, 3276837, 0, 1, 3276838, 0, 1, 3276839, 0, 1, 3276840, 0, 1, 3276841, 0, 1, 3276842, 0, 1, 3276843, 0, 1, 3276844, 0, 131076, 3276845, 0, 131076, 3276846, 0, 131076, 3276847, 0, 1, 3276848, 0, 131076, 3276849, 0, 1, 3276850, 0, 131076, 3276851, 0, 131076, 3276852, 0, 131076, 3276853, 0, 1, 3276854, 0, 1, 3276855, 0, 131076, 3276856, 0, 131076, 3276857, 0, 1, 3276858, 0, 1, 3276859, 0, 131077, 3276860, 0, 131075, 3276861, 0, 131076, 3276862, 0, 1, 3276863, 0, 1, 3276864, 0, 131076, 3276865, 0, 1, 3276866, 0, 131076, 3276867, 0, 1, 3276868, 0, 2, 3407871, 0, 131072, 3342336, 0, 131073, 3342337, 0, 131073, 3342338, 0, 4, 3342339, 0, 131073, 3342340, 0, 131073, 3342341, 0, 4, 3342342, 0, 4, 3342343, 0, 131073, 3342344, 0, 131073, 3342345, 0, 131073, 3342346, 0, 131073, 3342347, 0, 4, 3342348, 0, 4, 3342349, 0, 131073, 3342350, 0, 131073, 3342351, 0, 131073, 3342352, 0, 131073, 3342353, 0, 4, 3342354, 0, 4, 3342355, 0, 131073, 3342356, 0, 131073, 3342357, 0, 4, 3342358, 0, 4, 3342359, 0, 4, 3342360, 0, 131073, 3342361, 0, 4, 3342362, 0, 4, 3342363, 0, 4, 3342364, 0, 4, 3342365, 0, 4, 3342366, 0, 131073, 3342367, 0, 4, 3342368, 0, 131073, 3342369, 0, 4, 3342370, 0, 4, 3342371, 0, 131073, 3342372, 0, 4, 3342373, 0, 131073, 3342374, 0, 4, 3342375, 0, 131073, 3342376, 0, 4, 3342377, 0, 4, 3342378, 0, 4, 3342379, 0, 4, 3342380, 0, 131073, 3342381, 0, 4, 3342382, 0, 4, 3342383, 0, 131073, 3342384, 0, 131073, 3342385, 0, 4, 3342386, 0, 4, 3342387, 0, 131073, 3342388, 0, 4, 3342389, 0, 4, 3342390, 0, 4, 3342391, 0, 131073, 3342392, 0, 4, 3342393, 0, 4, 3342394, 0, 131073, 3342395, 0, 4, 3342396, 0, 4, 3342397, 0, 131073, 3342398, 0, 4, 3342399, 0, 4, 3342400, 0, 4, 3342401, 0, 4, 3342402, 0, 4, 3342403, 0, 4, 3342404, 0, 131074 ) +tile_data = PoolIntArray( -65517, 0, 0, -65516, 0, 131076, -65515, 0, 131076, -65514, 0, 1, -65513, 0, 1, -65512, 0, 131076, -65511, 0, 1, -65510, 0, 131076, -65509, 0, 1, -65508, 0, 2, 65533, 0, 0, 65534, 0, 1, 65535, 0, 2, 19, 0, 65541, 20, 0, 65537, 21, 0, 65537, 22, 0, 65537, 23, 0, 65537, 24, 0, 65537, 25, 0, 65537, 26, 0, 65537, 27, 0, 65537, 28, 0, 131075, 29, 0, 131076, 30, 0, 2, 131069, 0, 65541, 131070, 0, 65537, 131071, 0, 65538, 65555, 0, 131072, 65556, 0, 4, 65557, 0, 5, 65558, 0, 65537, 65559, 0, 65537, 65560, 0, 65537, 65561, 0, 65537, 65562, 0, 65537, 65563, 0, 65537, 65564, 0, 65537, 65565, 0, 65537, 65566, 0, 65539, 196605, 0, 65541, 196606, 0, 65537, 196607, 0, 65538, 131093, 0, 131072, 131094, 0, 131073, 131095, 0, 4, 131096, 0, 4, 131097, 0, 131073, 131098, 0, 131073, 131099, 0, 4, 131100, 0, 5, 131101, 0, 65537, 131102, 0, 65539, 262141, 0, 65536, 262142, 0, 65537, 262143, 0, 65538, 196636, 0, 65536, 196637, 0, 65537, 196638, 0, 65538, 327677, 0, 65541, 327678, 0, 65537, 327679, 0, 65539, 262172, 0, 65541, 262173, 0, 65537, 262174, 0, 65539, 393213, 0, 65536, 393214, 0, 65537, 393215, 0, 65539, 327708, 0, 65541, 327709, 0, 65537, 327710, 0, 65538, 458749, 0, 65536, 458750, 0, 65537, 458751, 0, 65538, 393244, 0, 65541, 393245, 0, 65537, 393246, 0, 65538, 524285, 0, 65536, 524286, 0, 65537, 524287, 0, 65539, 458780, 0, 65536, 458781, 0, 65537, 458782, 0, 65539, 589821, 0, 65536, 589822, 0, 65537, 589823, 0, 65538, 524316, 0, 65536, 524317, 0, 65537, 524318, 0, 65538, 655357, 0, 65536, 655358, 0, 65537, 655359, 0, 65539, 589852, 0, 65541, 589853, 0, 65537, 589854, 0, 65538, 720893, 0, 65541, 720894, 0, 65537, 720895, 0, 65538, 655388, 0, 65541, 655389, 0, 65537, 655390, 0, 65538, 786429, 0, 65541, 786430, 0, 65537, 786431, 0, 65539, 720924, 0, 65536, 720925, 0, 65537, 720926, 0, 65539, 851965, 0, 65536, 851966, 0, 65537, 851967, 0, 65539, 786460, 0, 65541, 786461, 0, 65537, 786462, 0, 65538, 917501, 0, 65536, 917502, 0, 65537, 917503, 0, 65539, 851996, 0, 65541, 851997, 0, 65537, 851998, 0, 65538, 983037, 0, 65536, 983038, 0, 65537, 983039, 0, 65539, 917522, 0, 0, 917523, 0, 2, 917532, 0, 65536, 917533, 0, 65537, 917534, 0, 65539, 1048573, 0, 65536, 1048574, 0, 65537, 1048575, 0, 65538, 983053, 0, 0, 983054, 0, 2, 983058, 0, 65536, 983059, 0, 131075, 983060, 0, 2, 983062, 0, 0, 983063, 0, 2, 983068, 0, 65541, 983069, 0, 65537, 983070, 0, 65538, 1114109, 0, 131072, 1114110, 0, 131073, 1114111, 0, 1, 1048576, 0, 131076, 1048577, 0, 131076, 1048578, 0, 131076, 1048579, 0, 131076, 1048580, 0, 131076, 1048581, 0, 1, 1048582, 0, 1, 1048583, 0, 1, 1048584, 0, 1, 1048585, 0, 1, 1048586, 0, 1, 1048587, 0, 131076, 1048588, 0, 131076, 1048589, 0, 131077, 1048590, 0, 131075, 1048591, 0, 131076, 1048592, 0, 131076, 1048593, 0, 131076, 1048594, 0, 131077, 1048595, 0, 65537, 1048596, 0, 131075, 1048597, 0, 1, 1048598, 0, 131077, 1048599, 0, 131075, 1048600, 0, 2, 1048603, 0, 0, 1048604, 0, 131077, 1048605, 0, 65537, 1048606, 0, 131075, 1048607, 0, 1, 1048608, 0, 131076, 1048609, 0, 1, 1048610, 0, 1, 1048611, 0, 1, 1048612, 0, 1, 1048613, 0, 131076, 1048614, 0, 1, 1048615, 0, 1, 1048616, 0, 1, 1048617, 0, 131076, 1048618, 0, 1, 1048619, 0, 131076, 1048620, 0, 1, 1048621, 0, 131076, 1048622, 0, 131076, 1048623, 0, 1, 1048624, 0, 131076, 1048625, 0, 131076, 1048626, 0, 1, 1048627, 0, 131076, 1048628, 0, 1, 1048629, 0, 131076, 1048630, 0, 131076, 1048631, 0, 131076, 1048632, 0, 131076, 1048633, 0, 131076, 1048634, 0, 1, 1048635, 0, 131076, 1048636, 0, 2, 1179647, 0, 65541, 1114112, 0, 65537, 1114113, 0, 65537, 1114114, 0, 65537, 1114115, 0, 65537, 1114116, 0, 65537, 1114117, 0, 65537, 1114118, 0, 65537, 1114119, 0, 65537, 1114120, 0, 65537, 1114121, 0, 65537, 1114122, 0, 65537, 1114123, 0, 65537, 1114124, 0, 65537, 1114125, 0, 65537, 1114126, 0, 65537, 1114127, 0, 65537, 1114128, 0, 65537, 1114129, 0, 65537, 1114130, 0, 65537, 1114131, 0, 65537, 1114132, 0, 65537, 1114133, 0, 65537, 1114134, 0, 65537, 1114135, 0, 65537, 1114136, 0, 65539, 1114139, 0, 65536, 1114140, 0, 65537, 1114141, 0, 65537, 1114142, 0, 3, 1114143, 0, 4, 1114144, 0, 4, 1114145, 0, 131073, 1114146, 0, 4, 1114147, 0, 131073, 1114148, 0, 131073, 1114149, 0, 4, 1114150, 0, 131073, 1114151, 0, 4, 1114152, 0, 4, 1114153, 0, 131073, 1114154, 0, 131073, 1114155, 0, 4, 1114156, 0, 131073, 1114157, 0, 4, 1114158, 0, 131073, 1114159, 0, 4, 1114160, 0, 4, 1114161, 0, 131073, 1114162, 0, 131073, 1114163, 0, 131073, 1114164, 0, 131073, 1114165, 0, 4, 1114166, 0, 131073, 1114167, 0, 4, 1114168, 0, 4, 1114169, 0, 131073, 1114170, 0, 4, 1114171, 0, 5, 1114172, 0, 65539, 1245183, 0, 65536, 1179648, 0, 65537, 1179649, 0, 65537, 1179650, 0, 65537, 1179651, 0, 65537, 1179652, 0, 65537, 1179653, 0, 65537, 1179654, 0, 65537, 1179655, 0, 65537, 1179656, 0, 65537, 1179657, 0, 65537, 1179658, 0, 65537, 1179659, 0, 65537, 1179660, 0, 65537, 1179661, 0, 65537, 1179662, 0, 65537, 1179663, 0, 65537, 1179664, 0, 65537, 1179665, 0, 3, 1179666, 0, 131073, 1179667, 0, 4, 1179668, 0, 4, 1179669, 0, 4, 1179670, 0, 4, 1179671, 0, 5, 1179672, 0, 65538, 1179675, 0, 131072, 1179676, 0, 131073, 1179677, 0, 5, 1179678, 0, 65538, 1179707, 0, 65536, 1179708, 0, 65538, 1310719, 0, 65541, 1245184, 0, 65537, 1245185, 0, 65537, 1245186, 0, 65537, 1245187, 0, 65537, 1245188, 0, 65537, 1245189, 0, 65537, 1245190, 0, 65537, 1245191, 0, 65537, 1245192, 0, 65537, 1245193, 0, 65537, 1245194, 0, 65537, 1245195, 0, 65537, 1245196, 0, 65537, 1245197, 0, 65537, 1245198, 0, 65537, 1245199, 0, 65537, 1245200, 0, 65537, 1245201, 0, 65539, 1245207, 0, 65536, 1245208, 0, 131075, 1245209, 0, 2, 1245213, 0, 65536, 1245214, 0, 65539, 1245243, 0, 65536, 1245244, 0, 65539, 1376255, 0, 65541, 1310720, 0, 65537, 1310721, 0, 65537, 1310722, 0, 65537, 1310723, 0, 65537, 1310724, 0, 65537, 1310725, 0, 65537, 1310726, 0, 65537, 1310727, 0, 65537, 1310728, 0, 65537, 1310729, 0, 65537, 1310730, 0, 65537, 1310731, 0, 65537, 1310732, 0, 65537, 1310733, 0, 65537, 1310734, 0, 65537, 1310735, 0, 65537, 1310736, 0, 65537, 1310737, 0, 131075, 1310738, 0, 2, 1310743, 0, 65536, 1310744, 0, 3, 1310745, 0, 131074, 1310749, 0, 65536, 1310750, 0, 65539, 1310779, 0, 65541, 1310780, 0, 65538, 1441791, 0, 65541, 1376256, 0, 65537, 1376257, 0, 65537, 1376258, 0, 65537, 1376259, 0, 3, 1376260, 0, 4, 1376261, 0, 131073, 1376262, 0, 131073, 1376263, 0, 4, 1376264, 0, 4, 1376265, 0, 131073, 1376266, 0, 4, 1376267, 0, 131073, 1376268, 0, 5, 1376269, 0, 3, 1376270, 0, 131073, 1376271, 0, 131073, 1376272, 0, 4, 1376273, 0, 131073, 1376274, 0, 131074, 1376278, 0, 0, 1376279, 0, 131077, 1376280, 0, 65538, 1376285, 0, 65541, 1376286, 0, 65539, 1376315, 0, 65536, 1376316, 0, 65539, 1507327, 0, 65541, 1441792, 0, 3, 1441793, 0, 4, 1441794, 0, 131073, 1441795, 0, 131074, 1441804, 0, 65541, 1441805, 0, 65538, 1441814, 0, 131072, 1441815, 0, 5, 1441816, 0, 65539, 1441821, 0, 65536, 1441822, 0, 65539, 1441851, 0, 65536, 1441852, 0, 65539, 1572863, 0, 65536, 1507328, 0, 65538, 1507340, 0, 65541, 1507341, 0, 65539, 1507351, 0, 65541, 1507352, 0, 131075, 1507353, 0, 1, 1507354, 0, 131076, 1507355, 0, 2, 1507357, 0, 65536, 1507358, 0, 65539, 1507387, 0, 65536, 1507388, 0, 65539, 1638399, 0, 65541, 1572864, 0, 65538, 1572866, 0, 0, 1572867, 0, 131076, 1572868, 0, 1, 1572869, 0, 1, 1572870, 0, 1, 1572871, 0, 1, 1572872, 0, 2, 1572876, 0, 65541, 1572877, 0, 131075, 1572878, 0, 2, 1572880, 0, 0, 1572881, 0, 131076, 1572882, 0, 2, 1572887, 0, 131072, 1572888, 0, 131073, 1572889, 0, 4, 1572890, 0, 131073, 1572891, 0, 131074, 1572893, 0, 65536, 1572894, 0, 65538, 1572923, 0, 65541, 1572924, 0, 65539, 1703935, 0, 65541, 1638400, 0, 65538, 1638402, 0, 131072, 1638403, 0, 4, 1638404, 0, 131073, 1638405, 0, 4, 1638406, 0, 131073, 1638407, 0, 5, 1638408, 0, 65539, 1638412, 0, 65536, 1638413, 0, 65537, 1638414, 0, 65539, 1638416, 0, 131072, 1638417, 0, 5, 1638418, 0, 65538, 1638429, 0, 65541, 1638430, 0, 65538, 1638459, 0, 65541, 1638460, 0, 65539, 1769471, 0, 65541, 1703936, 0, 65539, 1703943, 0, 65541, 1703944, 0, 65539, 1703947, 0, 0, 1703948, 0, 131077, 1703949, 0, 65537, 1703950, 0, 65539, 1703953, 0, 131072, 1703954, 0, 131074, 1703965, 0, 65536, 1703966, 0, 65538, 1703995, 0, 65541, 1703996, 0, 65538, 1835007, 0, 65536, 1769472, 0, 65539, 1769479, 0, 65541, 1769480, 0, 131075, 1769481, 0, 2, 1769483, 0, 131072, 1769484, 0, 5, 1769485, 0, 65537, 1769486, 0, 65538, 1769491, 0, 0, 1769492, 0, 1, 1769493, 0, 1, 1769494, 0, 1, 1769495, 0, 1, 1769496, 0, 131076, 1769497, 0, 131076, 1769498, 0, 1, 1769499, 0, 1, 1769500, 0, 131076, 1769501, 0, 131077, 1769502, 0, 65538, 1769531, 0, 65536, 1769532, 0, 65539, 1900543, 0, 65541, 1835008, 0, 131075, 1835009, 0, 131076, 1835010, 0, 1, 1835011, 0, 131076, 1835012, 0, 2, 1835015, 0, 65536, 1835016, 0, 65537, 1835017, 0, 65539, 1835020, 0, 131072, 1835021, 0, 4, 1835022, 0, 131074, 1835027, 0, 65541, 1835028, 0, 65537, 1835029, 0, 65537, 1835030, 0, 3, 1835031, 0, 131073, 1835032, 0, 5, 1835033, 0, 65537, 1835034, 0, 65537, 1835035, 0, 65537, 1835036, 0, 65537, 1835037, 0, 65537, 1835038, 0, 65538, 1835067, 0, 65541, 1835068, 0, 65538, 1966079, 0, 65536, 1900544, 0, 65537, 1900545, 0, 65537, 1900546, 0, 65537, 1900547, 0, 3, 1900548, 0, 131074, 1900551, 0, 65536, 1900552, 0, 65537, 1900553, 0, 65539, 1900563, 0, 131072, 1900564, 0, 4, 1900565, 0, 131073, 1900566, 0, 131074, 1900568, 0, 131072, 1900569, 0, 5, 1900570, 0, 3, 1900571, 0, 4, 1900572, 0, 131073, 1900573, 0, 5, 1900574, 0, 65539, 1900603, 0, 65536, 1900604, 0, 65539, 2031615, 0, 65536, 1966080, 0, 65537, 1966081, 0, 65537, 1966082, 0, 65537, 1966083, 0, 65538, 1966087, 0, 65541, 1966088, 0, 65537, 1966089, 0, 131075, 1966090, 0, 131076, 1966091, 0, 131076, 1966092, 0, 1, 1966093, 0, 2, 1966105, 0, 131072, 1966106, 0, 131074, 1966109, 0, 65536, 1966110, 0, 65538, 1966139, 0, 65541, 1966140, 0, 65539, 2097151, 0, 65536, 2031616, 0, 65537, 2031617, 0, 65537, 2031618, 0, 65537, 2031619, 0, 65538, 2031623, 0, 65541, 2031624, 0, 65537, 2031625, 0, 65537, 2031626, 0, 65537, 2031627, 0, 65537, 2031628, 0, 65537, 2031629, 0, 131075, 2031630, 0, 2, 2031645, 0, 65536, 2031646, 0, 65539, 2031675, 0, 65536, 2031676, 0, 65538, 2162687, 0, 65536, 2097152, 0, 65537, 2097153, 0, 65537, 2097154, 0, 65537, 2097155, 0, 65538, 2097159, 0, 65536, 2097160, 0, 65537, 2097161, 0, 65537, 2097162, 0, 65537, 2097163, 0, 65537, 2097164, 0, 65537, 2097165, 0, 65537, 2097166, 0, 131075, 2097167, 0, 1, 2097168, 0, 2, 2097173, 0, 0, 2097174, 0, 2, 2097181, 0, 65536, 2097182, 0, 65538, 2097211, 0, 65541, 2097212, 0, 65539, 2228223, 0, 65536, 2162688, 0, 65537, 2162689, 0, 65537, 2162690, 0, 65537, 2162691, 0, 65538, 2162693, 0, 0, 2162694, 0, 131076, 2162695, 0, 131077, 2162696, 0, 65537, 2162697, 0, 65537, 2162698, 0, 65537, 2162699, 0, 65537, 2162700, 0, 65537, 2162701, 0, 65537, 2162702, 0, 65537, 2162703, 0, 65537, 2162704, 0, 131075, 2162705, 0, 1, 2162706, 0, 1, 2162707, 0, 1, 2162708, 0, 1, 2162709, 0, 131077, 2162710, 0, 131075, 2162711, 0, 131076, 2162712, 0, 1, 2162713, 0, 131076, 2162714, 0, 131076, 2162715, 0, 1, 2162716, 0, 1, 2162717, 0, 131077, 2162718, 0, 131075, 2162719, 0, 1, 2162720, 0, 1, 2162721, 0, 131076, 2162722, 0, 1, 2162723, 0, 131076, 2162724, 0, 1, 2162725, 0, 131076, 2162726, 0, 131076, 2162727, 0, 1, 2162728, 0, 1, 2162729, 0, 131076, 2162730, 0, 1, 2162731, 0, 131076, 2162732, 0, 131076, 2162733, 0, 131076, 2162734, 0, 131076, 2162735, 0, 1, 2162736, 0, 1, 2162737, 0, 131076, 2162738, 0, 131076, 2162739, 0, 1, 2162740, 0, 1, 2162741, 0, 1, 2162742, 0, 131076, 2162743, 0, 131076, 2162744, 0, 131076, 2162745, 0, 1, 2162746, 0, 1, 2162747, 0, 131077, 2162748, 0, 131075, 2162749, 0, 131076, 2162750, 0, 131076, 2162751, 0, 1, 2162752, 0, 1, 2162753, 0, 1, 2162754, 0, 131076, 2162755, 0, 1, 2162756, 0, 131076, 2162757, 0, 131076, 2162758, 0, 131076, 2162759, 0, 2, 2293759, 0, 65536, 2228224, 0, 65537, 2228225, 0, 65537, 2228226, 0, 65537, 2228227, 0, 65539, 2228229, 0, 65536, 2228230, 0, 65537, 2228231, 0, 3, 2228232, 0, 131073, 2228233, 0, 131073, 2228234, 0, 131073, 2228235, 0, 131073, 2228236, 0, 131073, 2228237, 0, 4, 2228238, 0, 4, 2228239, 0, 131073, 2228240, 0, 131073, 2228241, 0, 131073, 2228242, 0, 4, 2228243, 0, 4, 2228244, 0, 131073, 2228245, 0, 131073, 2228246, 0, 4, 2228247, 0, 4, 2228248, 0, 4, 2228249, 0, 131073, 2228250, 0, 131073, 2228251, 0, 4, 2228252, 0, 4, 2228253, 0, 5, 2228254, 0, 3, 2228255, 0, 4, 2228256, 0, 4, 2228257, 0, 4, 2228258, 0, 4, 2228259, 0, 4, 2228260, 0, 4, 2228261, 0, 131073, 2228262, 0, 4, 2228263, 0, 4, 2228264, 0, 131073, 2228265, 0, 4, 2228266, 0, 4, 2228267, 0, 131073, 2228268, 0, 4, 2228269, 0, 131073, 2228270, 0, 4, 2228271, 0, 4, 2228272, 0, 4, 2228273, 0, 131073, 2228274, 0, 131073, 2228275, 0, 4, 2228276, 0, 4, 2228277, 0, 4, 2228278, 0, 131073, 2228279, 0, 131073, 2228280, 0, 131073, 2228281, 0, 4, 2228282, 0, 131073, 2228283, 0, 5, 2228284, 0, 3, 2228285, 0, 131073, 2228286, 0, 4, 2228287, 0, 4, 2228288, 0, 131073, 2228289, 0, 131073, 2228290, 0, 131073, 2228291, 0, 131073, 2228292, 0, 4, 2228293, 0, 131073, 2228294, 0, 4, 2228295, 0, 131074, 2359295, 0, 65541, 2293760, 0, 65537, 2293761, 0, 65537, 2293762, 0, 65537, 2293763, 0, 65539, 2293765, 0, 65541, 2293766, 0, 65537, 2293767, 0, 65538, 2293789, 0, 65541, 2293790, 0, 65539, 2293819, 0, 65536, 2293820, 0, 65539, 2424831, 0, 65541, 2359296, 0, 65537, 2359297, 0, 65537, 2359298, 0, 65537, 2359299, 0, 65539, 2359301, 0, 65536, 2359302, 0, 65537, 2359303, 0, 65538, 2359325, 0, 131072, 2359326, 0, 131074, 2359355, 0, 65536, 2359356, 0, 65538, 2490367, 0, 65536, 2424832, 0, 65537, 2424833, 0, 65537, 2424834, 0, 65537, 2424835, 0, 65539, 2424837, 0, 65541, 2424838, 0, 65537, 2424839, 0, 65539, 2424891, 0, 65541, 2424892, 0, 65538, 2555903, 0, 65536, 2490368, 0, 65537, 2490369, 0, 65537, 2490370, 0, 65537, 2490371, 0, 65538, 2490373, 0, 65536, 2490374, 0, 65537, 2490375, 0, 65539, 2490397, 0, 0, 2490398, 0, 1, 2490399, 0, 131076, 2490400, 0, 131076, 2490401, 0, 131076, 2490402, 0, 1, 2490403, 0, 131076, 2490404, 0, 1, 2490405, 0, 131076, 2490406, 0, 131076, 2490407, 0, 1, 2490408, 0, 1, 2490409, 0, 131076, 2490410, 0, 131076, 2490411, 0, 1, 2490412, 0, 1, 2490413, 0, 2, 2490427, 0, 65541, 2490428, 0, 65539, 2621439, 0, 65541, 2555904, 0, 65537, 2555905, 0, 65537, 2555906, 0, 65537, 2555907, 0, 65538, 2555909, 0, 65541, 2555910, 0, 65537, 2555911, 0, 65538, 2555933, 0, 65541, 2555934, 0, 3, 2555935, 0, 4, 2555936, 0, 4, 2555937, 0, 4, 2555938, 0, 4, 2555939, 0, 4, 2555940, 0, 131073, 2555941, 0, 4, 2555942, 0, 131073, 2555943, 0, 131073, 2555944, 0, 4, 2555945, 0, 131073, 2555946, 0, 131073, 2555947, 0, 131073, 2555948, 0, 4, 2555949, 0, 131074, 2555963, 0, 65536, 2555964, 0, 65539, 2686975, 0, 65536, 2621440, 0, 65537, 2621441, 0, 65537, 2621442, 0, 65537, 2621443, 0, 65539, 2621445, 0, 65541, 2621446, 0, 65537, 2621447, 0, 65538, 2621469, 0, 65541, 2621470, 0, 65538, 2621499, 0, 65541, 2621500, 0, 65538, 2752511, 0, 65541, 2686976, 0, 65537, 2686977, 0, 65537, 2686978, 0, 65537, 2686979, 0, 65538, 2686981, 0, 65536, 2686982, 0, 65537, 2686983, 0, 65538, 2687005, 0, 65536, 2687006, 0, 65538, 2687035, 0, 65536, 2687036, 0, 65538, 2818047, 0, 65536, 2752512, 0, 3, 2752513, 0, 131073, 2752514, 0, 4, 2752515, 0, 131074, 2752517, 0, 65541, 2752518, 0, 65537, 2752519, 0, 65539, 2752541, 0, 65541, 2752542, 0, 65539, 2752563, 0, 1, 2752564, 0, 1, 2752565, 0, 1, 2752571, 0, 65536, 2752572, 0, 65538, 2883583, 0, 65536, 2818048, 0, 65538, 2818053, 0, 65536, 2818054, 0, 65537, 2818055, 0, 131075, 2818056, 0, 131076, 2818057, 0, 131076, 2818058, 0, 131076, 2818059, 0, 1, 2818060, 0, 131076, 2818061, 0, 131076, 2818062, 0, 131076, 2818063, 0, 1, 2818064, 0, 131076, 2818065, 0, 131076, 2818066, 0, 131076, 2818067, 0, 2, 2818077, 0, 65536, 2818078, 0, 65539, 2818084, 0, 1, 2818085, 0, 1, 2818086, 0, 1, 2818087, 0, 1, 2818088, 0, 1, 2818089, 0, 1, 2818107, 0, 65541, 2818108, 0, 65538, 2949119, 0, 65536, 2883584, 0, 65538, 2883589, 0, 65541, 2883590, 0, 65537, 2883591, 0, 65537, 2883592, 0, 65537, 2883593, 0, 65537, 2883594, 0, 65537, 2883595, 0, 65537, 2883596, 0, 65537, 2883597, 0, 65537, 2883598, 0, 65537, 2883599, 0, 65537, 2883600, 0, 65537, 2883601, 0, 65537, 2883602, 0, 65537, 2883603, 0, 65539, 2883613, 0, 65541, 2883614, 0, 65538, 2883643, 0, 65541, 2883644, 0, 65539, 3014655, 0, 65536, 2949120, 0, 65539, 2949125, 0, 65536, 2949126, 0, 65537, 2949127, 0, 65537, 2949128, 0, 65537, 2949129, 0, 65537, 2949130, 0, 65537, 2949131, 0, 65537, 2949132, 0, 65537, 2949133, 0, 65537, 2949134, 0, 65537, 2949135, 0, 65537, 2949136, 0, 65537, 2949137, 0, 65537, 2949138, 0, 65537, 2949139, 0, 65539, 2949149, 0, 65541, 2949150, 0, 65538, 2949161, 0, 1, 2949162, 0, 1, 2949163, 0, 1, 2949164, 0, 1, 2949165, 0, 1, 2949179, 0, 65536, 2949180, 0, 65539, 3080191, 0, 65536, 3014656, 0, 65538, 3014661, 0, 131072, 3014662, 0, 131073, 3014663, 0, 131073, 3014664, 0, 4, 3014665, 0, 4, 3014666, 0, 4, 3014667, 0, 4, 3014668, 0, 131073, 3014669, 0, 131073, 3014670, 0, 131073, 3014671, 0, 131073, 3014672, 0, 131073, 3014673, 0, 131073, 3014674, 0, 4, 3014675, 0, 131074, 3014685, 0, 65541, 3014686, 0, 131075, 3014687, 0, 131076, 3014688, 0, 131076, 3014689, 0, 1, 3014690, 0, 1, 3014691, 0, 2, 3014715, 0, 65536, 3014716, 0, 65538, 3145727, 0, 65536, 3080192, 0, 65538, 3080221, 0, 65536, 3080222, 0, 3, 3080223, 0, 131073, 3080224, 0, 131073, 3080225, 0, 4, 3080226, 0, 4, 3080227, 0, 131074, 3080251, 0, 65541, 3080252, 0, 65538, 3211263, 0, 65541, 3145728, 0, 65539, 3145757, 0, 65541, 3145758, 0, 65539, 3145787, 0, 65541, 3145788, 0, 65538, 3276799, 0, 65536, 3211264, 0, 65538, 3211293, 0, 65536, 3211294, 0, 65538, 3211323, 0, 65541, 3211324, 0, 65538, 3342335, 0, 65541, 3276800, 0, 131075, 3276801, 0, 131076, 3276802, 0, 1, 3276803, 0, 131076, 3276804, 0, 1, 3276805, 0, 131076, 3276806, 0, 1, 3276807, 0, 131076, 3276808, 0, 1, 3276809, 0, 1, 3276810, 0, 1, 3276811, 0, 1, 3276812, 0, 131076, 3276813, 0, 1, 3276814, 0, 131076, 3276815, 0, 131076, 3276816, 0, 131076, 3276817, 0, 1, 3276818, 0, 1, 3276819, 0, 1, 3276820, 0, 1, 3276821, 0, 1, 3276822, 0, 131076, 3276823, 0, 131076, 3276824, 0, 1, 3276825, 0, 131076, 3276826, 0, 1, 3276827, 0, 131076, 3276828, 0, 1, 3276829, 0, 131077, 3276830, 0, 131075, 3276831, 0, 131076, 3276832, 0, 131076, 3276833, 0, 1, 3276834, 0, 131076, 3276835, 0, 131076, 3276836, 0, 131076, 3276837, 0, 1, 3276838, 0, 1, 3276839, 0, 1, 3276840, 0, 1, 3276841, 0, 1, 3276842, 0, 1, 3276843, 0, 1, 3276844, 0, 131076, 3276845, 0, 131076, 3276846, 0, 131076, 3276847, 0, 1, 3276848, 0, 131076, 3276849, 0, 1, 3276850, 0, 131076, 3276851, 0, 131076, 3276852, 0, 131076, 3276853, 0, 1, 3276854, 0, 1, 3276855, 0, 131076, 3276856, 0, 131076, 3276857, 0, 1, 3276858, 0, 1, 3276859, 0, 131077, 3276860, 0, 131075, 3276861, 0, 131076, 3276862, 0, 1, 3276863, 0, 1, 3276864, 0, 131076, 3276865, 0, 1, 3276866, 0, 131076, 3276867, 0, 1, 3276868, 0, 2, 3407871, 0, 131072, 3342336, 0, 131073, 3342337, 0, 131073, 3342338, 0, 4, 3342339, 0, 131073, 3342340, 0, 131073, 3342341, 0, 4, 3342342, 0, 4, 3342343, 0, 131073, 3342344, 0, 131073, 3342345, 0, 131073, 3342346, 0, 131073, 3342347, 0, 4, 3342348, 0, 4, 3342349, 0, 131073, 3342350, 0, 131073, 3342351, 0, 131073, 3342352, 0, 131073, 3342353, 0, 4, 3342354, 0, 4, 3342355, 0, 131073, 3342356, 0, 131073, 3342357, 0, 4, 3342358, 0, 4, 3342359, 0, 4, 3342360, 0, 131073, 3342361, 0, 4, 3342362, 0, 4, 3342363, 0, 4, 3342364, 0, 4, 3342365, 0, 4, 3342366, 0, 131073, 3342367, 0, 4, 3342368, 0, 131073, 3342369, 0, 4, 3342370, 0, 4, 3342371, 0, 131073, 3342372, 0, 4, 3342373, 0, 131073, 3342374, 0, 4, 3342375, 0, 131073, 3342376, 0, 4, 3342377, 0, 4, 3342378, 0, 4, 3342379, 0, 4, 3342380, 0, 131073, 3342381, 0, 4, 3342382, 0, 4, 3342383, 0, 131073, 3342384, 0, 131073, 3342385, 0, 4, 3342386, 0, 4, 3342387, 0, 131073, 3342388, 0, 4, 3342389, 0, 4, 3342390, 0, 4, 3342391, 0, 131073, 3342392, 0, 4, 3342393, 0, 4, 3342394, 0, 131073, 3342395, 0, 4, 3342396, 0, 4, 3342397, 0, 131073, 3342398, 0, 4, 3342399, 0, 4, 3342400, 0, 4, 3342401, 0, 4, 3342402, 0, 4, 3342403, 0, 4, 3342404, 0, 131074 ) [node name="WatterfallesBG" type="Node2D" parent="World"] position = Vector2( 1.37535, 6 ) @@ -546,6 +547,9 @@ position = Vector2( -900.545, 401.773 ) [node name="Enemies" type="Node2D" parent="."] +[node name="Goblin" parent="Enemies" instance=ExtResource( 22 )] +position = Vector2( 380.375, 528 ) + [node name="Hazards" type="Node2D" parent="."] [node name="Spikes" type="Node2D" parent="Hazards"] @@ -600,6 +604,11 @@ position = Vector2( 285.992, 769.316 ) [node name="Player" parent="." instance=ExtResource( 13 )] position = Vector2( 37.3754, 256 ) wall_jump_speed_factor = Vector2( 2.5, 0.9 ) +abilities = { +"attack": true, +"dash": false, +"wall_jump": false +} [node name="HUD" parent="." instance=ExtResource( 14 )]