1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034 |
- [gd_scene load_steps=220 format=2]
- [ext_resource path="res://floor_scene.res" type="PackedScene" id=1]
- [ext_resource path="res://Camera.gd" type="Script" id=2]
- [ext_resource path="res://floor_scene_mid.res" type="PackedScene" id=3]
- [ext_resource path="res://decals/decal.shader" type="Shader" id=4]
- [ext_resource path="res://decals/decal.gd" type="Script" id=5]
- [ext_resource path="res://textures/sprites_16.png" type="Texture" id=6]
- [ext_resource path="res://shaders/particle_cube_base.shader" type="Shader" id=7]
- [ext_resource path="res://decals_spawn.gd" type="Script" id=8]
- [ext_resource path="res://scripts/debug.gd" type="Script" id=9]
- [ext_resource path="res://shaders/logic_demo/particle_basicp_color.shader" type="Shader" id=10]
- [ext_resource path="res://shaders/particle_lineGlow_base.shader" type="Shader" id=11]
- [ext_resource path="res://scripts/bg_particles.gd" type="Script" id=12]
- [ext_resource path="res://scripts/material_id.gd" type="Script" id=13]
- [ext_resource path="res://shaders/particle_lineAA_base.shader" type="Shader" id=14]
- [ext_resource path="res://mesh_p.mesh" type="ArrayMesh" id=15]
- [ext_resource path="res://shaders/logic_demo/particle_cuberepeat_logic.shader" type="Shader" id=16]
- [ext_resource path="res://shaders/debug/debug_audio.shader" type="Shader" id=17]
- [ext_resource path="res://music/Chiptronical.ogg" type="AudioStream" id=18]
- [ext_resource path="res://scripts/audio.gd" type="Script" id=19]
- [ext_resource path="res://default_env.tres" type="Environment" id=20]
- [ext_resource path="res://shaders/logic_demo/particle_basicp_logic.shader" type="Shader" id=21]
- [ext_resource path="res://mesh_p_lp4.mesh" type="ArrayMesh" id=22]
- [ext_resource path="res://mesh_cloud.mesh" type="ArrayMesh" id=23]
- [ext_resource path="res://scripts/areas.gd" type="Script" id=24]
- [ext_resource path="res://textures/part_c.png" type="Texture" id=25]
- [ext_resource path="res://shaders/particle_cloud_base.shader" type="Shader" id=26]
- [ext_resource path="res://textures/part_c2.png" type="Texture" id=27]
- [ext_resource path="res://textures/part_AAtest.png" type="Texture" id=28]
- [ext_resource path="res://scripts/scene.gd" type="Script" id=29]
- [ext_resource path="res://scripts/target.gd" type="Script" id=30]
- [ext_resource path="res://decals/decal_demo.gd" type="Script" id=31]
- [ext_resource path="res://textures/part_c3.png" type="Texture" id=32]
- [ext_resource path="res://mesh_p_lp_90.mesh" type="ArrayMesh" id=33]
- [ext_resource path="res://shaders/particle_spark_base.shader" type="Shader" id=34]
- [ext_resource path="res://mesh_p_hex.mesh" type="ArrayMesh" id=35]
- [ext_resource path="res://portal2.mesh" type="ArrayMesh" id=36]
- [ext_resource path="res://shaders/particle_sparks_fountain_base.shader" type="Shader" id=37]
- [ext_resource path="res://scripts/sparks_fountain.gd" type="Script" id=38]
- [ext_resource path="res://shaders/particle_sparks_fountain_textured.shader" type="Shader" id=39]
- [ext_resource path="res://textures/part_c31.png" type="Texture" id=40]
- [ext_resource path="res://mesh_p_tri.tres" type="ArrayMesh" id=41]
- [ext_resource path="res://portal1.mesh" type="ArrayMesh" id=42]
- [ext_resource path="res://portal.mesh" type="ArrayMesh" id=43]
- [ext_resource path="res://scripts/portal.gd" type="Script" id=44]
- [ext_resource path="res://mesh_p_lp.mesh" type="ArrayMesh" id=45]
- [ext_resource path="res://shaders/demo/particle_cube_audio.shader" type="Shader" id=46]
- [ext_resource path="res://model/char.res" type="PackedScene" id=47]
- [ext_resource path="res://scripts/preloading.gd" type="Script" id=48]
- [ext_resource path="res://textures/loading.png" type="Texture" id=49]
- [ext_resource path="res://shaders/demo/particle_cube_spiral.shader" type="Shader" id=50]
- [sub_resource type="Environment" id=1]
- background_mode = 1
- [sub_resource type="World" id=2]
- environment = SubResource( 1 )
- [sub_resource type="SphereShape" id=3]
- radius = 0.2
- [sub_resource type="Shader" id=4]
- code = "shader_type spatial;
- render_mode blend_mix,depth_draw_never,depth_test_disable,cull_back,unshaded;
- float get_depth(float depth, in mat4 proj_mat){
- depth = depth * 2.0 - 1.0;
- float z = -proj_mat[3][2] / (depth + proj_mat[2][2]);
- z*=0.1;
- depth=1.+z;
- depth=1.-clamp(depth,0.,1.);
- return depth;
- }
- void fragment() {
- float depth = texture(DEPTH_TEXTURE, SCREEN_UV).r;
- ALBEDO=vec3(get_depth(depth,PROJECTION_MATRIX));
- }"
- [sub_resource type="ShaderMaterial" id=5]
- render_priority = 100
- shader = SubResource( 4 )
- [sub_resource type="CubeMesh" id=6]
- resource_local_to_scene = true
- flip_faces = true
- size = Vector3( 0.3, 0.3, 0.3 )
- [sub_resource type="Shader" id=7]
- resource_local_to_scene = true
- code = "shader_type spatial;
- render_mode blend_mix,depth_draw_never,depth_test_disable,cull_back,unshaded;
- uniform sampler2D iChannel0;
- uniform float depth_step=0.001;
- const float dv=0.25;
- int decode_mid(float mid){
- if(mid<dv){
- return -1;
- }
- return int(mid/dv)-1;
- }
- float DigitBin(in int x)
- {
- if (x==0)return 480599.0;
- else if(x==1) return 139810.0;
- else if(x==2) return 476951.0;
- else if(x==3) return 476999.0;
- else if(x==4) return 350020.0;
- else if(x==5) return 464711.0;
- else if(x==6) return 464727.0;
- else if(x==7) return 476228.0;
- else if(x==8) return 481111.0;
- else if(x==9) return 481095.0;
- return 0.0;
- }
- float PrintValue(vec2 fragCoord, vec2 pixelCoord, vec2 fontSize, float value,
- float digits, float decimals) {
- vec2 charCoord = (fragCoord - pixelCoord) / fontSize;
- if(charCoord.y < 0.0 || charCoord.y >= 1.0) return 0.0;
- float bits = 0.0;
- float digitIndex1 = digits - floor(charCoord.x)+ 1.0;
- if(- digitIndex1 <= decimals) {
- float pow1 = pow(10.0, digitIndex1);
- float absValue = abs(value);
- float pivot = max(absValue, 1.5) * 10.0;
- if(pivot < pow1) {
- if(value < 0.0 && pivot >= pow1 * 0.1) bits = 1792.0;
- } else if(digitIndex1 == 0.0) {
- if(decimals > 0.0) bits = 2.0;
- } else {
- value = digitIndex1 < 0.0 ? fract(absValue) : absValue * 10.0;
- bits = DigitBin(int (mod(value / pow1, 10.0)));
- }
- }
- return floor(mod(bits / pow(2.0, floor(fract(charCoord.x) * 4.0) + floor(charCoord.y * 5.0) * 4.0), 2.0));
- }
- float print_n(in vec2 uv ,float nm){
- uv.x+=0.5;
- vec2 vPixelCoord2 = vec2(0.);
- float fValue2 = nm;
- float fDigits = 2.0;
- float fDecimalPlaces = 0.0;
- vec2 fontSize = vec2(8.)/vec2(16.,9.);
- float fIsDigit2 = PrintValue(uv, vPixelCoord2, fontSize, fValue2, fDigits, fDecimalPlaces);
- return fIsDigit2;
- }
- float get_depth(float depth, in mat4 proj_mat){
- depth = depth * 2.0 - 1.0;
- float z = -proj_mat[3][2] / (depth + proj_mat[2][2]);
- z*=0.1;
- depth=1.+z;
- depth=1.-clamp(depth,0.,1.);
- return depth;
- }
- void mainImage( out vec4 fragColor, in vec2 fragCoord, in vec2 iResolution , sampler2D depth_txt, in mat4 proj_mtx,vec2 scuv)
- {
- vec2 uv = fragCoord/iResolution.xy;
- //vec4 data=texelFetch(iChannel0,ivec2(fragCoord),1);
- vec4 data=textureLod(iChannel0,scuv,0.);
- float depth = texelFetch(depth_txt, ivec2(fragCoord),0).x;
- depth=get_depth(depth,proj_mtx);
- int mid=-1;
- if((depth+depth_step*(depth*0.5+0.5)>=data.z)&&(depth-depth_step*(depth*0.5+0.5)<=data.z)){
- mid=decode_mid(data.x*data.a);
- }
- vec3 c=vec3(0.);
- if(mid<0){
- c=vec3(0.5);
- }else{
- switch(mid%5){
- case 0:c=vec3(0.8,0.05,0.05);break;
- case 1:c=vec3(0.05,0.8,0.05);break;
- case 2:c=vec3(0.05,0.05,0.8);break;
- case 3:c=vec3(0.8,0.8,0.05);break;
- case 4:c=vec3(0.05,0.8,0.8);break;
- }
- }
- vec2 guv=fract(uv*20.);
- float d=print_n(guv,float(mid));
- fragColor=vec4(c*d,d*(0.85));
- }
- void fragment(){
- vec4 col=vec4(0.);
- mainImage(col,FRAGCOORD.xy,VIEWPORT_SIZE.xy, DEPTH_TEXTURE, PROJECTION_MATRIX, SCREEN_UV);
- ALBEDO=col.rgb;
- ALPHA=col.a;
-
- //ALBEDO=vec3(textureLod(iChannel0,SCREEN_UV,0.).rgb);
- //ALPHA=1.;
- }"
- [sub_resource type="ViewportTexture" id=8]
- viewport_path = NodePath("material_id")
- [sub_resource type="ShaderMaterial" id=9]
- resource_local_to_scene = true
- render_priority = 101
- shader = SubResource( 7 )
- shader_param/depth_step = 0.001
- shader_param/iChannel0 = SubResource( 8 )
- [sub_resource type="StyleBoxFlat" id=10]
- bg_color = Color( 0.0117647, 0.0117647, 0.0117647, 0.239216 )
- [sub_resource type="Shader" id=11]
- code = "shader_type canvas_item;
- render_mode blend_mix;
- void mainImage( out vec4 fragColor, in vec2 fragCoord, in vec2 iResolution, sampler2D iChannel0)
- {
- vec2 uv = fragCoord/iResolution.xy;
- vec3 col=vec3(0.);
- col=texture(iChannel0,uv).rgb;
- fragColor=vec4(col,1.);
- }
- void fragment(){
- vec2 iResolution=1./TEXTURE_PIXEL_SIZE;
- mainImage(COLOR,UV*iResolution,iResolution,SCREEN_TEXTURE);
- }
- "
- [sub_resource type="ShaderMaterial" id=12]
- resource_local_to_scene = true
- shader = SubResource( 11 )
- [sub_resource type="ImageTexture" id=13]
- size = Vector2( 1280, 720 )
- [sub_resource type="ShaderMaterial" id=14]
- resource_local_to_scene = true
- shader = ExtResource( 17 )
- [sub_resource type="ImageTexture" id=15]
- size = Vector2( 1280, 720 )
- [sub_resource type="ShaderMaterial" id=17]
- render_priority = 50
- shader = ExtResource( 46 )
- shader_param/iTime = 0.0
- [sub_resource type="Shader" id=18]
- code = "shader_type particles;
- render_mode keep_data,disable_velocity,disable_force;
- uniform float iTime=0.;
- float rand(float p)
- {
- vec3 p3 = fract(vec3(p) * 3.10432);
- p3 += dot(p3, p3.yzx + 15.19);
- return fract((p3.x + p3.y) * p3.z);
- }
- vec3 get_pos(int idx, out float tjx){
- const float pi=3.1415926;
- const float sx = 1.;
- const float sy = .850;
- vec3 pos=vec3(0.);
- float ti=float(idx/15)*2.;
- float jMod = (floor(rand(ti*8.) * 6.0));
- float tj=jMod+float(idx%15);
- pos=vec3(ti*sy -5.*sy*2.+sin(float(tj/15.) * pi)*1.5, tj*sx-5.*sx*2., -sin(float(tj/15.) * pi)*2.15-1.5);
- tjx=tj;
- return pos;
- }
- mat4 rotationAxisAngle( vec3 v, float angle )
- {
- float s = sin( angle );
- float c = cos( angle );
- float ic = 1.0 - c;
- return mat4( vec4(v.x*v.x*ic + c, v.y*v.x*ic - s*v.z, v.z*v.x*ic + s*v.y, 0.0),
- vec4(v.x*v.y*ic + s*v.z, v.y*v.y*ic + c, v.z*v.y*ic - s*v.x, 0.0),
- vec4(v.x*v.z*ic - s*v.y, v.y*v.z*ic + s*v.x, v.z*v.z*ic + c, 0.0),
- vec4(0.0, 0.0, 0.0, 1.0) );
- }
- float get_ang(int idx,float time){
- float tv=mod(max(mod(time,36.)-2.,0.),34.);
- float o=0.;
- float a=-0.4+float(idx/15)*0.2;
- float c=-0.4+float(idx%15)*0.2;
- float b=0.1+float(idx/15)*0.3;
- float d=0.1+float(idx%15);
- float mva=smoothstep(0.,3.,tv);
- float mvb=smoothstep(3.,6.,tv);
- mva*=1.-mvb;
- float mvc=smoothstep(6.,9.,tv);
- mvb*=1.-mvc;
- float mvd=smoothstep(9.,16.,tv);
- mvc*=1.-mvd;
- float mve=smoothstep(30.,34.,tv);
- mvd*=1.-mve;
- o=mix(o,b,mvc);
- return mix(o,a,mvb);
- //o=mix(mix(mix(mix(o,b,mvb),c,mvc),d,mvd),o,mve);
- //return mix(mix(mix(mix(mix(o,a,mva),b,mvb),c,mvc),d,mvd),o,mve);
- }
- void vertex() {
- CUSTOM=vec4(0.);
- TRANSFORM = EMISSION_TRANSFORM;
- float tj=0.;
- vec3 pos=get_pos(INDEX,tj);
- pos=(rotationAxisAngle(vec3(0.,1.,0.),get_ang(INDEX,iTime*0.2))*vec4(pos,0.)).xyz;
- CUSTOM.w=tj;
- TRANSFORM[3].xyz=pos.xzy;
- TRANSFORM[0].xyz *= 1.;
- TRANSFORM[1].xyz *= 1.;
- TRANSFORM[2].xyz *= 1.;
- }
- "
- [sub_resource type="ShaderMaterial" id=19]
- shader = SubResource( 18 )
- shader_param/iTime = 0.0
- [sub_resource type="QuadMesh" id=20]
- size = Vector2( 1.5, 1.5 )
- [sub_resource type="ShaderMaterial" id=22]
- render_priority = 50
- shader = ExtResource( 50 )
- [sub_resource type="Gradient" id=23]
- offsets = PoolRealArray( 0, 0.0962963, 0.925926, 1 )
- colors = PoolColorArray( 0, 0, 0, 1, 0.899029, 0.402344, 1, 1, 1, 0.416679, 0.210938, 1, 0, 0, 0, 1 )
- [sub_resource type="GradientTexture" id=24]
- gradient = SubResource( 23 )
- [sub_resource type="ParticlesMaterial" id=25]
- trail_divisor = 30
- direction = Vector3( 0, 1, 0 )
- spread = 0.0
- gravity = Vector3( 0, 0, 0 )
- initial_velocity = 5.0
- linear_accel = -0.5
- linear_accel_random = 1.0
- radial_accel = -2.0
- tangential_accel = -5.0
- damping = 4.8
- color_ramp = SubResource( 24 )
- hue_variation = 1.0
- hue_variation_random = 1.0
- [sub_resource type="QuadMesh" id=26]
- [sub_resource type="ShaderMaterial" id=27]
- render_priority = 50
- shader = ExtResource( 10 )
- shader_param/iTime = 0.0
- shader_param/test_texture = ExtResource( 28 )
- [sub_resource type="ShaderMaterial" id=28]
- shader = ExtResource( 21 )
- shader_param/iTime = 2.0
- [sub_resource type="ShaderMaterial" id=29]
- render_priority = 52
- shader = ExtResource( 11 )
- shader_param/iTime = null
- shader_param/col_a = Color( 1, 0.788235, 0.341176, 1 )
- shader_param/cam_pos = null
- [sub_resource type="QuadMesh" id=30]
- [sub_resource type="ShaderMaterial" id=31]
- render_priority = 52
- shader = ExtResource( 7 )
- shader_param/col_a = Color( 0.345098, 1, 0.341176, 1 )
- [sub_resource type="ShaderMaterial" id=32]
- render_priority = 50
- shader = ExtResource( 26 )
- shader_param/use_occ = false
- shader_param/cell_shading = false
- shader_param/fix_perspective = false
- shader_param/use_light_color = true
- shader_param/object_color = Color( 0.788235, 0.788235, 0.788235, 1 )
- shader_param/base_light_color = Color( 0.94902, 0.94902, 0.94902, 1 )
- shader_param/shade_color = Color( 0.00392157, 0.00392157, 0.00392157, 1 )
- shader_param/shade_threshold = 0.148
- shader_param/shade_softness = 0.091
- [sub_resource type="ShaderMaterial" id=33]
- render_priority = 52
- shader = ExtResource( 34 )
- shader_param/color = Color( 0.988235, 0.717647, 0.2, 1 )
- shader_param/texture_gr = ExtResource( 32 )
- [sub_resource type="ShaderMaterial" id=34]
- render_priority = 50
- shader = ExtResource( 37 )
- shader_param/iTime = 0.0
- [sub_resource type="Shader" id=35]
- code = "shader_type particles;
- render_mode keep_data,disable_velocity,disable_force;
- void vertex() {
- TRANSFORM = EMISSION_TRANSFORM;
- vec3 pos=vec3(0.);
- TRANSFORM[3].xyz=vec3(pos);
- TRANSFORM[0].xyz *= 1.;
- TRANSFORM[1].xyz *= 1.;
- TRANSFORM[2].xyz *= 1.;
- }"
- [sub_resource type="ShaderMaterial" id=36]
- shader = SubResource( 35 )
- [sub_resource type="ViewportTexture" id=37]
- viewport_path = NodePath("material_id")
- [sub_resource type="ShaderMaterial" id=38]
- resource_local_to_scene = true
- shader = ExtResource( 4 )
- shader_param/emulate_lighting = true
- shader_param/brightness = 0.0
- shader_param/iFrame = 90
- shader_param/iTime = 2.0
- shader_param/ttlive = 30.0
- shader_param/material_id = -1
- shader_param/depth_step = 0.001
- shader_param/expl = ExtResource( 27 )
- shader_param/sprites = ExtResource( 6 )
- shader_param/material_id_viewport = SubResource( 37 )
- [sub_resource type="CubeMesh" id=39]
- [sub_resource type="Shader" id=40]
- code = "shader_type spatial;
- render_mode blend_mix,depth_draw_opaque,cull_back,diffuse_toon,specular_schlick_ggx,shadows_disabled; //ambient_light_disabled
- uniform bool use_occ=false;
- uniform bool cell_shading=false;
- uniform bool fix_perspective=false;
- uniform bool use_light_color=true;
- uniform vec4 object_color : hint_color = vec4(0.5,0.5,0.5,1.0);
- uniform vec4 object_color_expl : hint_color = vec4(0.5,0.5,0.5,1.0);
- uniform vec4 base_light_color : hint_color = vec4(1.0,1.0,1.0,1.0);
- uniform vec4 shade_color : hint_color = vec4(0.05,0.05,0.05,1.);
- uniform float shade_threshold : hint_range(-1.0, 1.0, 0.001) = 0.1;
- uniform float shade_softness : hint_range(0.0, 1.0, 0.001) = 0.02;
- varying vec3 spos;
- varying vec3 roc;
- varying float sp_size;
- // fix black color
- // t2=max(t2,0.001)
- void vertex() {
- //MODELVIEW_MATRIX = INV_CAMERA_MATRIX * mat4(CAMERA_MATRIX[0],CAMERA_MATRIX[1],CAMERA_MATRIX[2],WORLD_MATRIX[3]);
-
- mat4 mat_world = mat4(normalize(CAMERA_MATRIX[0])*length(WORLD_MATRIX[0]),normalize(CAMERA_MATRIX[1])*length(WORLD_MATRIX[0]),normalize(CAMERA_MATRIX[2])*length(WORLD_MATRIX[2]),WORLD_MATRIX[3]);
- float ts=1.;
-
- MODELVIEW_MATRIX = INV_CAMERA_MATRIX * mat_world;
- spos=mat_world[3].xyz;
- sp_size=2./(dot(vec3(WORLD_MATRIX[0][0],WORLD_MATRIX[1][1],WORLD_MATRIX[2][2]),vec3(1.))/3.);
- roc=CAMERA_MATRIX[3].xyz*sp_size;
- if(fix_perspective)
- //VERTEX*=clamp(length(spos-CAMERA_MATRIX[3].xyz)/2.,0.,1.); //correct proportion fix on zoom
- VERTEX*=clamp(length(spos-CAMERA_MATRIX[3].xyz)/(2./sp_size),0.,1.); //not correct proportion fix on zoom
- }
- float cell_shade(vec3 nor, vec3 light)
- {
- float NdotL = dot(nor, light);
- float is_lit = step(shade_threshold, NdotL);
- float shade_value = smoothstep(shade_threshold - shade_softness ,shade_threshold + shade_softness, NdotL);
- //diffuse = mix(shade, base, shade_value);
- return shade_value;
- }
- // The MIT License
- // Copyright © 2014 Inigo Quilez
- // https://iquilezles.org/www/articles/intersectors/intersectors.htm
- float sphIntersect( in vec3 ro, in vec3 rd, in vec4 sph )
- {
- vec3 oc = ro - sph.xyz;
- float b = dot( oc, rd );
- float c = dot( oc, oc ) - sph.w*sph.w;
- float h = b*b - c;
- if( h<0.0 ) return -1.0;
- return -b - sqrt( h );
- }
- vec3 sphNormal( in vec3 pos, in vec4 sph )
- {
- return normalize(pos-sph.xyz);
- }
- vec4 sph_img( vec3 rd , vec3 lght, vec3 ro, vec3 sp, float sp_sz,vec3 bcol)
- {
- vec4 sph = vec4( sp, sp_sz);
- vec3 lig=lght;
- vec3 col = vec3(0.0);
- float tmin = 1e10;
- vec3 nor=vec3(0.);
- float occ = 1.0;
- float a=0.;
- float t2 = sphIntersect( ro, rd, sph );
- t2=max(t2,0.001); //to fix black color
- if( t2>0.0 && t2<tmin )
- {
- tmin = t2;
- vec3 pos = ro + t2*rd;
- nor = sphNormal( pos, sph );
- occ = 0.5 + 0.5*nor.y;
- }
- if( tmin<1000.0 )
- {
- vec3 pos = ro + tmin*rd;
-
- col = vec3(1.0);
- a=1.;
- float shade_value=0.;
- if(!cell_shading)
- shade_value = clamp( dot(nor,lig), 0.0, 1.0 ); //base shadow
- else
- shade_value=cell_shade(nor,lig); //cell
- if(use_occ)shade_value+=0.05*occ;
- col = mix(shade_color.rgb, bcol, shade_value);
- //col *= exp( -0.05*tmin );
- }
- //col=clamp(col,0.,1.);
- col = sqrt(col);
- return vec4(col, a );
- }
- void light(){
- vec3 rd=normalize(((CAMERA_MATRIX) * vec4(normalize(-VIEW), 0.0)).xyz);
- //DIFFUSE_LIGHT=vec3(0.);
- //SPECULAR_LIGHT=vec3(0.);
-
- vec3 lgt=normalize(((CAMERA_MATRIX) * vec4(normalize(LIGHT), 0.0)).xyz);
- //proportion fix on zoom
- vec4 col=vec4(0.);
- vec3 lc=base_light_color.rgb;
- if(use_light_color){
- lc=LIGHT_COLOR;
- }
- if(fix_perspective)
- //correct
- //col=sph_img(normalize(rd),normalize( lgt ), roc,spos*sp_size, 1.-0.999*(1.-min(length(spos-CAMERA_MATRIX[3].xyz)/2.,1.)),lc);
- //not correct
- col=sph_img(normalize(rd),normalize( lgt ), roc,spos*sp_size, 1.-0.999*(1.-min(length(spos-CAMERA_MATRIX[3].xyz)/(2./sp_size),1.)),lc);
- else
- col=sph_img(normalize(rd),normalize( lgt ), roc,spos*sp_size, 1.,lc); //no fix
- SPECULAR_LIGHT+=col.rgb*ATTENUATION*ALBEDO;
- DIFFUSE_LIGHT+=col.rgb*ATTENUATION*ALBEDO;
- //ALPHA=col.w;
- }
- void fragment() {
- //ALBEDO=object_color.rgb;
- ALBEDO=object_color.rgb+object_color_expl.rgb*COLOR.r*15.;
- METALLIC = 0.;
- ROUGHNESS = 0.9;
- SPECULAR = 0.5;
- }
- "
- [sub_resource type="ShaderMaterial" id=41]
- shader = SubResource( 40 )
- shader_param/use_occ = false
- shader_param/cell_shading = false
- shader_param/fix_perspective = false
- shader_param/use_light_color = true
- shader_param/object_color = Color( 0.227451, 0.227451, 0.227451, 1 )
- shader_param/object_color_expl = Color( 0.937255, 0.478431, 0.0784314, 1 )
- shader_param/base_light_color = Color( 0.501961, 0.501961, 0.501961, 1 )
- shader_param/shade_color = Color( 0.0431373, 0.0431373, 0.0431373, 1 )
- shader_param/shade_threshold = 0.1
- shader_param/shade_softness = 0.05
- [sub_resource type="Gradient" id=42]
- offsets = PoolRealArray( 0, 0.0813008, 1 )
- colors = PoolColorArray( 0.992157, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1 )
- [sub_resource type="GradientTexture" id=43]
- gradient = SubResource( 42 )
- [sub_resource type="Curve" id=44]
- min_value = -1.0
- _data = [ Vector2( 0, -0.00669646 ), 0.0, -0.734127, 0, 0, Vector2( 0.114865, -0.00446427 ), 0.0, 0.0, 0, 0, Vector2( 0.27027, -0.308036 ), -0.061462, -0.061462, 0, 0, Vector2( 0.756757, -0.379464 ), -0.695489, -0.695489, 0, 0, Vector2( 1, -0.265625 ), -0.677656, 0.0, 0, 0 ]
- [sub_resource type="CurveTexture" id=45]
- curve = SubResource( 44 )
- [sub_resource type="Curve" id=46]
- min_value = -1.0
- _data = [ Vector2( 0, 0.441964 ), 0.0, 0.0, 0, 0, Vector2( 0.162162, -0.185268 ), 0.0, 0.0, 0, 0, Vector2( 0.324324, 0.0647321 ), 0.0, 0.0, 0, 0, Vector2( 1, 0 ), 0.0, 0.0, 0, 0 ]
- [sub_resource type="CurveTexture" id=47]
- curve = SubResource( 46 )
- [sub_resource type="Curve" id=48]
- _data = [ Vector2( 0, 1 ), 0.0, 0.0, 0, 0, Vector2( 0.567568, 0.973214 ), -0.893907, -0.893907, 0, 0, Vector2( 0.804054, 0.526786 ), -2.51701, -2.51701, 0, 0, Vector2( 0.986486, 0.0234375 ), -1.2585, 0.0, 0, 0 ]
- [sub_resource type="CurveTexture" id=49]
- curve = SubResource( 48 )
- [sub_resource type="ParticlesMaterial" id=50]
- lifetime_randomness = 0.5
- emission_shape = 1
- emission_sphere_radius = 0.05
- direction = Vector3( 0, 0.45, 0.55 )
- spread = 25.0
- flatness = 1.0
- gravity = Vector3( 0, 0, 0 )
- initial_velocity = 0.3
- initial_velocity_random = 0.5
- linear_accel_random = 0.5
- linear_accel_curve = SubResource( 45 )
- radial_accel_curve = SubResource( 47 )
- scale = 0.03
- scale_random = 0.15
- scale_curve = SubResource( 49 )
- color_ramp = SubResource( 43 )
- [sub_resource type="Gradient" id=51]
- offsets = PoolRealArray( 0, 0.113821, 1 )
- colors = PoolColorArray( 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1 )
- [sub_resource type="GradientTexture" id=52]
- gradient = SubResource( 51 )
- [sub_resource type="Curve" id=53]
- min_value = -1.0
- _data = [ Vector2( 0, -0.136161 ), 0.0, 0.0, 0, 0, Vector2( 0.263514, 0.00223207 ), 0.0, 0.0, 0, 0, Vector2( 0.506757, -0.261161 ), 0.0, 0.0, 0, 0, Vector2( 0.709459, 0 ), -0.112462, -0.112462, 0, 0, Vector2( 1, 0 ), -0.00854376, 0.0, 0, 0 ]
- [sub_resource type="CurveTexture" id=54]
- curve = SubResource( 53 )
- [sub_resource type="Curve" id=55]
- min_value = -1.0
- _data = [ Vector2( 0, 0.502232 ), 0.0, 0.0, 0, 0, Vector2( 0.277027, -0.319196 ), 0.0, 0.0, 0, 0, Vector2( 0.540541, 0.0111607 ), 0.0, 0.0, 0, 0, Vector2( 1, 0.00223207 ), 0.0, 0.0, 0, 0 ]
- [sub_resource type="CurveTexture" id=56]
- curve = SubResource( 55 )
- [sub_resource type="Curve" id=57]
- min_value = -1.0
- _data = [ Vector2( 0, 0.589286 ), 0.0, 0.0, 0, 0, Vector2( 0.209459, 0.0837054 ), -0.30971, -0.30971, 0, 0, Vector2( 0.425676, 0 ), 0.0388654, 0.0388654, 0, 0, Vector2( 1, 0 ), 0.0, 0.0, 0, 0 ]
- [sub_resource type="CurveTexture" id=58]
- curve = SubResource( 57 )
- [sub_resource type="ParticlesMaterial" id=59]
- lifetime_randomness = 0.5
- emission_shape = 2
- emission_box_extents = Vector3( 0.1, 0.001, 0.1 )
- direction = Vector3( 0, 1, 0 )
- spread = 180.0
- flatness = 1.0
- gravity = Vector3( 0, 0, 0 )
- initial_velocity = 0.1
- initial_velocity_random = 0.5
- linear_accel_curve = SubResource( 54 )
- radial_accel_curve = SubResource( 56 )
- tangential_accel_curve = SubResource( 58 )
- scale = 0.03
- scale_random = 0.07
- scale_curve = SubResource( 49 )
- color_ramp = SubResource( 52 )
- [sub_resource type="Shader" id=60]
- code = "shader_type spatial;
- render_mode blend_add,depth_draw_never,cull_front,depth_test_disable,unshaded;
- uniform vec4 colorx:hint_color;
- uniform float iTime=0.;
- void fragment() {
- ALBEDO = colorx.rgb;
-
- float intensity = pow(0.022+0.3*smoothstep(0.,.25,iTime) + max(dot(NORMAL, normalize(VIEW)),0.), 03.85);
- ALBEDO=ALBEDO/max(1.-intensity,0.001);
- ALPHA=0.0+intensity*(1.-smoothstep(0.25,.45,iTime));
- }"
- [sub_resource type="ShaderMaterial" id=61]
- shader = SubResource( 60 )
- shader_param/colorx = Color( 0.921569, 0.47451, 0.0823529, 1 )
- shader_param/iTime = 0.0
- [sub_resource type="SphereMesh" id=62]
- radius = 0.4
- height = 0.8
- radial_segments = 32
- rings = 16
- [sub_resource type="ShaderMaterial" id=63]
- render_priority = 52
- shader = ExtResource( 14 )
- shader_param/test_texture = ExtResource( 28 )
- [sub_resource type="ShaderMaterial" id=64]
- shader = ExtResource( 16 )
- shader_param/line_size = null
- shader_param/iTime = null
- [sub_resource type="Shader" id=65]
- code = "shader_type spatial;
- render_mode blend_add,depth_draw_alpha_prepass,cull_front,shadows_disabled,unshaded;
- uniform float iTime;
- varying vec3 spos;
- varying vec3 roc;
- varying float sp_size;
- const float b_size=.6;
- const float pi=3.1415926;
- mat4 rotationAxisAngle( vec3 v, float angle )
- {
- float s = sin( angle );
- float c = cos( angle );
- float ic = 1.0 - c;
- return mat4( vec4(v.x*v.x*ic + c, v.y*v.x*ic - s*v.z, v.z*v.x*ic + s*v.y, 0.0),
- vec4(v.x*v.y*ic + s*v.z, v.y*v.y*ic + c, v.z*v.y*ic - s*v.x, 0.0),
- vec4(v.x*v.z*ic - s*v.y, v.y*v.z*ic + s*v.x, v.z*v.z*ic + c, 0.0),
- vec4(0.0, 0.0, 0.0, 1.0) );
- }
- varying mat4 rm;
- void vertex() {
- mat4 mat_world = mat4(normalize(CAMERA_MATRIX[0])*length(WORLD_MATRIX[0]),normalize(CAMERA_MATRIX[1])*length(WORLD_MATRIX[0]),normalize(CAMERA_MATRIX[2])*length(WORLD_MATRIX[2]),WORLD_MATRIX[3]);
- float an = cos(iTime*0.43)*pi;
- float ab=sin(iTime*0.23);
- rm=rotationAxisAngle(normalize(vec3(ab,1.,0.)),an);
- MODELVIEW_MATRIX*=rm;
- //MODELVIEW_MATRIX = INV_CAMERA_MATRIX * mat_world;
- spos=mat_world[3].xyz;
- float tsp_size=b_size;
- sp_size=2.*1./(1.*b_size);
- VERTEX*=tsp_size*0.5;
- roc=CAMERA_MATRIX[3].xyz*sp_size;
- }
- // using https://www.shadertoy.com/view/4s23DR
- // cube() by Simon Green
- bool cube(vec3 org, vec3 dir, out float near, out float far)
- {
- dir=(vec4(dir,0.)*rm).xyz;
- org=(vec4(org,0.)*rm).xyz;
- // compute intersection of ray with all six bbox planes
- vec3 invR = 1.0/dir;
- vec3 tbot = invR * (-0.5 - org);
- vec3 ttop = invR * (0.5 - org);
-
- // re-order intersections to find smallest and largest on each axis
- vec3 tmin = min (ttop, tbot);
- vec3 tmax = max (ttop, tbot);
-
- // find the largest tmin and the smallest tmax
- vec2 t0 = max(tmin.xx, tmin.yz);
- near = max(t0.x, t0.y);
- t0 = min(tmax.xx, tmax.yz);
- far = min(t0.x, t0.y);
- // check for hit
- return near < far && far > 0.0;
- }
- void fragment() {
- vec3 rd=normalize(((CAMERA_MATRIX) * vec4(normalize(-VIEW), 0.0)).xyz);
- vec4 col=vec4(0.);
- float far, near;
- if(cube(roc-spos*sp_size,rd,far,near)){
- float d=clamp(-(far - max(near, 0.0)),0.,1.);
- col=vec4(d);
- }
- ALBEDO=sqrt(col.rgb)*vec3(.85,0.995,0.92)*0.5;
- ALPHA=col.a*(0.5+0.5*float(int(FRAGCOORD.y+FRAGCOORD.x)%2));
- }
- "
- [sub_resource type="ShaderMaterial" id=66]
- render_priority = 50
- shader = SubResource( 65 )
- shader_param/iTime = 0.0
- [sub_resource type="CubeMesh" id=67]
- size = Vector3( 1, 1, 1 )
- [sub_resource type="Shader" id=68]
- code = "shader_type spatial;
- render_mode blend_add,depth_draw_alpha_prepass,cull_front,shadows_disabled,unshaded;
- uniform float iTime;
- varying vec3 spos;
- varying vec3 roc;
- varying float sp_size;
- const float b_size=.23;
- const float pi=3.1415926;
- mat4 rotationAxisAngle( vec3 v, float angle )
- {
- float s = sin( angle );
- float c = cos( angle );
- float ic = 1.0 - c;
- return mat4( vec4(v.x*v.x*ic + c, v.y*v.x*ic - s*v.z, v.z*v.x*ic + s*v.y, 0.0),
- vec4(v.x*v.y*ic + s*v.z, v.y*v.y*ic + c, v.z*v.y*ic - s*v.x, 0.0),
- vec4(v.x*v.z*ic - s*v.y, v.y*v.z*ic + s*v.x, v.z*v.z*ic + c, 0.0),
- vec4(0.0, 0.0, 0.0, 1.0) );
- }
- varying mat4 rm;
- void vertex() {
- mat4 mat_world = mat4(normalize(CAMERA_MATRIX[0])*length(WORLD_MATRIX[0]),normalize(CAMERA_MATRIX[1])*length(WORLD_MATRIX[0]),normalize(CAMERA_MATRIX[2])*length(WORLD_MATRIX[2]),WORLD_MATRIX[3]);
- float an = cos(iTime*0.43+float(20)*pi*0.01)*pi;
- float ab=sin(iTime*0.23+float(20)*pi*0.01);
- rm=rotationAxisAngle(normalize(vec3(ab,1.,0.)),an);
- MODELVIEW_MATRIX*=rm;
- //MODELVIEW_MATRIX = INV_CAMERA_MATRIX * mat_world;
- spos=mat_world[3].xyz;
- float tsp_size=b_size;
- sp_size=2.*1./(1.*b_size);
- VERTEX*=tsp_size*0.5;
- roc=CAMERA_MATRIX[3].xyz*sp_size;
- }
- // using https://www.shadertoy.com/view/4s23DR
- // cube() by Simon Green
- bool cube(vec3 org, vec3 dir, out float near, out float far)
- {
- dir=(vec4(dir,0.)*rm).xyz;
- org=(vec4(org,0.)*rm).xyz;
- // compute intersection of ray with all six bbox planes
- vec3 invR = 1.0/dir;
- vec3 tbot = invR * (-0.5 - org);
- vec3 ttop = invR * (0.5 - org);
-
- // re-order intersections to find smallest and largest on each axis
- vec3 tmin = min (ttop, tbot);
- vec3 tmax = max (ttop, tbot);
-
- // find the largest tmin and the smallest tmax
- vec2 t0 = max(tmin.xx, tmin.yz);
- near = max(t0.x, t0.y);
- t0 = min(tmax.xx, tmax.yz);
- far = min(t0.x, t0.y);
- // check for hit
- return near < far && far > 0.0;
- }
- void fragment() {
- vec3 rd=normalize(((CAMERA_MATRIX) * vec4(normalize(-VIEW), 0.0)).xyz);
- vec4 col=vec4(0.);
- float far, near;
- if(cube(roc-spos*sp_size,rd,far,near)){
- float d=clamp(-(far - max(near, 0.0)),0.,1.);
- col=vec4(d);
- }
- ALBEDO=sqrt(col.rgb)*vec3(.85,0.25,0.98);
- ALPHA=col.a;
- }
- "
- [sub_resource type="ShaderMaterial" id=69]
- render_priority = 51
- shader = SubResource( 68 )
- shader_param/iTime = 0.0
- [sub_resource type="Shader" id=70]
- code = "shader_type spatial;
- render_mode blend_add,depth_draw_alpha_prepass,cull_back,unshaded;
- uniform float iTime;
- uniform vec4 col_a:hint_color;
- // how it work: lighting hapens in 2d-UV space, vertex coordinates calculated in fake-view-projection logic
- // rotationfixed to be face-camera, to see bilboard mode uncomment mtx= line in VERTEX function
- vec3 my_normalize3(vec3 v){
- float len = length(v);
- vec3 ret=vec3(0.);
- if(len==0.0)ret= vec3(1.0,0.0,0.0);
- else ret= v/len;
- return ret;
- }
- mat4 lookAt(vec3 from, vec3 to, vec3 tup )
- {
- vec3 forward = my_normalize3(from - to);
- if(length(forward.xz)<=0.001)forward.x=0.001;
- vec3 right = cross(normalize(tup), forward);
- right = my_normalize3(right);
- vec3 up = cross(forward, right);
- mat4 camToWorld=mat4(1.);
-
- camToWorld[0][0] = right.x;
- camToWorld[0][1] = right.y;
- camToWorld[0][2] = right.z;
- camToWorld[1][0] = up.x;
- camToWorld[1][1] = up.y;
- camToWorld[1][2] = up.z;
- camToWorld[2][0] = forward.x;
- camToWorld[2][1] = forward.y;
- camToWorld[2][2] = forward.z;
-
- camToWorld[3][0] = from.x;
- camToWorld[3][1] = from.y;
- camToWorld[3][2] = from.z;
-
- return camToWorld;
- }
- varying mat4 mtx;
- varying vec4 col_v;
- void vertex() {
- // bilboard project
- //mtx = mat4(normalize(CAMERA_MATRIX[0])*length(WORLD_MATRIX[0]),normalize(CAMERA_MATRIX[1])*length(WORLD_MATRIX[0]),normalize(CAMERA_MATRIX[2])*length(WORLD_MATRIX[2]),WORLD_MATRIX[3]);
-
- // lookAt project, comment/uncomment
- vec3 cam_pos = CAMERA_MATRIX[3].xyz;
- mtx=lookAt(cam_pos,WORLD_MATRIX[3].xyz,vec3(0.,1.,0.));
-
- mtx[3].xyz=WORLD_MATRIX[3].xyz;
- if(INSTANCE_CUSTOM.y>0.001)
- MODELVIEW_MATRIX=INV_CAMERA_MATRIX*mtx;
- col_v=COLOR;
- COLOR.rgb=col_a.rgb;
- }
- float line( vec2 a, vec2 b, vec2 p)
- {
- vec2 aTob = b - a;
- vec2 aTop = p - a;
- float t = dot( aTop, aTob ) / dot( aTob, aTob);
- t = clamp( t, 0.0, 1.0);
- float d = length( p - (a + aTob * t) );
- d = (0.025) / max(d,0.001);
- d = pow(d, 7.0);
- return clamp( d, 0., 1.0 );
- }
- mat4 perspectiveMatrix(float fovYInRad, float aspectRatio)
- {
- float yScale = 1.0/tan(fovYInRad / 2.0);
- float xScale = yScale / aspectRatio;
- float zf = 100.0;
- float zn = 0.3;
-
- float z1 = zf/(zf-zn);
- float z2 = -zn*zf/(zf-zn);
-
- mat4 result = mat4(vec4(xScale, 0.0, 0.0, 0.0),
- vec4(0.0, yScale, 0.0, 0.0),
- vec4(0.0, 0.0, z1, z2),
- vec4(0.0, 0.0, -1.0, 0.0));
-
- return result;
- }
- mat4 translationMatrix(vec3 pos)
- {
- mat4 result =
- mat4(vec4(1.0, 0.0, 0.0, 0.0),
- vec4(0.0, 1.0, 0.0, 0.0),
- vec4(0.0, 0.0, 1.0, 0.0),
- vec4(pos.x, pos.y, pos.z, 1.0));
-
- return result;
- }
- mat4 rotXMatrix(float theta)
- {
- float cs = cos(theta);
- float ss = sin(theta);
-
- mat4 result =
- mat4(vec4(1.0, 0.0, 0.0, 0.0),
- vec4(0.0, cs, -ss, 0.0),
- vec4(0.0, ss, cs, 0.0),
- vec4(0.0, 0.0, 0.0, 1.0) );
-
- return result;
- }
-
- mat4 rotYMatrix(float theta)
- {
- float cs = cos(theta);
- float ss = sin(theta);
-
- mat4 result =
- mat4(vec4(cs, 0.0, -ss, 0.0),
- vec4(0.0, 1.0, 0.0, 0.0),
- vec4(ss, 0.0, cs, 0.0),
- vec4(0.0, 0.0, 0.0, 1.0) );
-
- return result;
- }
- const vec3 c1_pos=vec3(-0.365,0.,1.8958);
- const vec3 c2_pos=vec3(-0.365,0.,1.205);
- void process_verts( out vec4 fragColor, in vec2 p,vec3 vtx, vec3 icol)
- {
- float pi=3.1415926;
- vec2 uv = p * 2.0 - 1.0;
- vec2 ouv=uv;
- uv.y=-uv.y;
-
- vec3 ccol=clamp(icol,0.,1.);
- uv *= 4.0;
-
- const float fovYInRad = (45.0/180.0) * 3.14159;
-
- const float vs = 10.0;
- vec4 verts [9];
- verts[0] = vec4( vs-(vs/4.)*8., 0., 0., 1.0 );
- verts[1] = vec4( vs-(vs/4.)*7., 0., 0., 1.0 );
- verts[2] = vec4( vs-(vs/4.)*6., 0., 0., 1.0 );
- verts[3] = vec4( vs-(vs/4.)*5., 0., 0., 1.0 );
- verts[4] = vec4( vs-(vs/4.)*4., 0., 0., 1.0 );
- verts[5] = vec4( vs-(vs/4.)*3., 0., 0., 1.0 );
- verts[6] = vec4( vs-(vs/4.)*2., 0., 0., 1.0 );
- verts[7] = vec4( vs-(vs/4.)*1., 0., 0., 1.0 );
- verts[8] = vec4( vs-(vs/4.)*0., 0., 0., 1.0 );
-
- float moveX=0.;
- float moveY=0.;
- float moveZ=60.;
-
- vec3 pos = vec3( moveX, moveY, moveZ);
- //pos=pos-vtx*5.; //bad perspective fix
-
- mat4 tmtx=mtx;
- tmtx[3].xyz=vec3(0.);
-
- mat4 rotY = rotYMatrix(-(1.-col_v.r)*1.28) * rotXMatrix(0.);
- mat4 worldMat = translationMatrix(pos) *inverse(tmtx)*rotY;
- mat4 perspective = perspectiveMatrix(fovYInRad, 1.);
-
- mat4 mvp = perspective * worldMat;
-
- float t = 0.0;
- for(int i = 0; i < 8; ++i)
- {
- vec4 vertst=verts[i];
- vec4 verten=verts[i + 1];
- vertst.z+=-10.*smoothstep(0.,0.4,length((mtx[3].xz-vertst.xz/60.)-c1_pos.xz));
- verten.z+=-10.*smoothstep(0.,0.4,length((mtx[3].xz-verten.xz/60.)-c1_pos.xz));
- vertst.z+=10.*smoothstep(0.,0.4,length((mtx[3].xz-vertst.xz/60.)-c2_pos.xz));
- verten.z+=10.*smoothstep(0.,0.4,length((mtx[3].xz-verten.xz/60.)-c2_pos.xz));
-
- vertst.z+=-10.*smoothstep(0.,0.54,(abs(float(i)/8.-0.5))*(1.-col_v.r));
- verten.z+=-10.*smoothstep(0.,0.54,(abs(float(i)/8.-0.5))*(1.-col_v.r));
-
- vec4 startWorldVert = mvp * vertst;
- vec4 endWorldVert;
- endWorldVert = mvp * verten;
-
- if((startWorldVert.w<=-1.001)&&(endWorldVert.w<=-1.001)){
- vec2 sp = startWorldVert.xy / startWorldVert.w;
- vec2 ep = endWorldVert.xy / endWorldVert.w;
- t = max(t,line( sp, ep, uv));
- }
- }
-
- vec3 fc = vec3( 0.0 );
-
-
- fc += icol* pow(t, 0.2);
-
- float a=(1.-dot(ouv*0.5,ouv*0.5))*(1.-smoothstep(0.7,1.,length(ouv)));
- fc*=a;
- fragColor = vec4( fc, clamp(pow(t, 0.2),0.,1.)*a );
-
- }
- void fragment() {
- vec4 col=vec4(0.);
- process_verts(col,UV,VERTEX, COLOR.rgb*3.);
- vec3 cam_pos = CAMERA_MATRIX[3].xyz;
- float fade_distance=length(mtx[3].xyz-cam_pos);
- float fade=clamp(smoothstep(0.25,1.,fade_distance),0.0,1.0);
- ALBEDO = col.rgb*fade;
- ALBEDO*=col_v.a;
- //ALBEDO = max(col.rgb,col_a.rgb*3.);
- //ALPHA=col.a;
- }
- "
- [sub_resource type="ShaderMaterial" id=71]
- render_priority = 50
- shader = SubResource( 70 )
- shader_param/iTime = null
- shader_param/col_a = Color( 0.313726, 0.584314, 0.968627, 1 )
- [sub_resource type="Gradient" id=72]
- offsets = PoolRealArray( 0, 0.107865, 0.573034, 0.81573, 0.949438 )
- colors = PoolColorArray( 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0.388235, 0, 0, 1, 0, 0, 0, 0 )
- [sub_resource type="GradientTexture" id=73]
- gradient = SubResource( 72 )
- [sub_resource type="Image" id=172]
- data = {
- "data": PoolByteArray( 176, 228, 8, 62, 189, 57, 82, 190, 88, 227, 198, 62, 181, 108, 133, 62, 11, 55, 0, 191, 87, 227, 198, 62, 18, 233, 146, 62, 185, 198, 56, 62, 105, 102, 199, 62, 148, 73, 110, 62, 248, 184, 52, 62, 87, 227, 198, 62, 76, 170, 115, 62, 190, 27, 227, 190, 105, 102, 199, 62, 49, 198, 241, 61, 254, 124, 11, 191, 106, 102, 199, 62, 120, 174, 210, 61, 46, 168, 156, 62, 104, 102, 199, 62, 216, 157, 252, 61, 9, 34, 157, 62, 105, 102, 199, 62, 188, 249, 81, 62, 88, 205, 189, 189, 88, 227, 198, 62, 158, 15, 60, 62, 180, 250, 232, 189, 104, 102, 199, 62, 8, 113, 130, 61, 201, 178, 57, 190, 104, 102, 199, 62, 191, 16, 136, 61, 197, 23, 171, 62, 105, 102, 199, 62, 202, 157, 68, 62, 23, 46, 214, 62, 105, 102, 199, 62, 14, 185, 147, 62, 120, 70, 148, 190, 87, 227, 198, 62, 253, 194, 165, 61, 184, 132, 196, 190, 106, 102, 199, 62, 47, 252, 190, 61, 56, 63, 234, 190, 105, 102, 199, 62, 228, 245, 153, 62, 240, 181, 102, 190, 105, 102, 199, 62, 60, 119, 24, 189, 161, 211, 15, 191, 105, 102, 199, 62, 82, 111, 232, 60, 208, 123, 154, 62, 87, 227, 198, 62, 254, 122, 135, 62, 4, 198, 227, 190, 87, 227, 198, 62, 64, 69, 76, 62, 224, 1, 184, 61, 87, 227, 198, 62, 155, 176, 137, 62, 84, 65, 147, 190, 106, 102, 199, 62, 64, 155, 239, 59, 82, 123, 74, 190, 88, 227, 198, 62, 138, 233, 152, 189, 12, 158, 89, 61, 105, 102, 199, 62, 56, 145, 153, 189, 13, 28, 4, 190, 105, 102, 199, 62, 224, 62, 136, 62, 241, 30, 182, 190, 105, 102, 199, 62, 70, 53, 209, 189, 214, 137, 184, 190, 105, 102, 199, 62, 123, 108, 11, 62, 230, 202, 183, 189, 88, 227, 198, 62, 93, 152, 45, 62, 39, 207, 35, 190, 86, 227, 198, 62, 136, 110, 77, 62, 146, 186, 245, 190, 87, 227, 198, 62, 62, 243, 30, 62, 72, 20, 82, 62, 86, 227, 198, 62, 143, 95, 200, 189, 238, 241, 204, 62, 105, 102, 199, 62, 68, 47, 195, 189, 220, 46, 115, 190, 105, 102, 199, 62, 0, 66, 124, 185, 141, 144, 82, 190, 105, 102, 199, 62, 0, 3, 74, 188, 54, 37, 174, 61, 88, 227, 198, 62, 94, 219, 109, 61, 28, 116, 143, 62, 105, 102, 199, 62, 136, 160, 68, 189, 85, 81, 8, 62, 106, 102, 199, 62, 156, 243, 149, 189, 220, 88, 29, 62, 106, 102, 199, 62, 32, 231, 77, 62, 134, 152, 13, 191, 88, 227, 198, 62, 116, 10, 192, 61, 14, 119, 195, 190, 106, 102, 199, 62, 122, 61, 69, 62, 188, 192, 192, 61, 87, 227, 198, 62, 208, 68, 198, 188, 237, 100, 16, 191, 105, 102, 199, 62, 96, 33, 31, 62, 184, 2, 196, 62, 87, 227, 198, 62, 148, 128, 205, 61, 220, 107, 141, 62, 87, 227, 198, 62, 143, 122, 7, 189, 200, 172, 155, 189, 104, 102, 199, 62, 191, 70, 15, 190, 7, 202, 213, 62, 87, 227, 198, 62, 216, 9, 161, 189, 55, 85, 11, 62, 105, 102, 199, 62, 225, 153, 174, 189, 185, 30, 236, 190, 87, 227, 198, 62, 182, 70, 1, 190, 43, 77, 215, 62, 105, 102, 199, 62, 25, 187, 255, 61, 180, 123, 65, 190, 105, 102, 199, 62, 224, 217, 91, 61, 218, 33, 182, 190, 87, 227, 198, 62, 36, 97, 134, 188, 118, 103, 235, 190, 88, 227, 198, 62, 72, 240, 16, 189, 114, 50, 146, 61, 106, 102, 199, 62, 252, 96, 39, 62, 0, 54, 199, 60, 87, 227, 198, 62, 101, 196, 38, 61, 231, 188, 16, 62, 86, 227, 198, 62, 8, 124, 36, 190, 164, 246, 8, 190, 105, 102, 199, 62, 88, 242, 165, 189, 38, 205, 95, 190, 86, 227, 198, 62, 88, 47, 67, 62, 0, 217, 71, 188, 105, 102, 199, 62, 53, 143, 170, 62, 228, 221, 1, 191, 88, 227, 198, 62, 32, 41, 193, 188, 118, 54, 229, 190, 87, 227, 198, 62, 200, 255, 139, 189, 49, 226, 43, 62, 105, 102, 199, 62, 77, 16, 70, 62, 226, 143, 198, 61, 87, 227, 198, 62, 7, 69, 93, 62, 204, 221, 230, 190, 105, 102, 199, 62, 128, 205, 104, 61, 170, 112, 145, 62, 86, 227, 198, 62, 114, 240, 117, 62, 150, 137, 254, 190, 106, 102, 199, 62, 211, 33, 45, 62, 82, 192, 205, 61, 88, 227, 198, 62, 2, 90, 137, 62, 220, 147, 15, 191, 104, 102, 199, 62, 176, 68, 226, 189, 97, 234, 4, 62, 87, 227, 198, 62, 136, 53, 98, 62, 201, 11, 163, 62, 86, 227, 198, 62, 192, 83, 6, 58, 82, 186, 129, 62, 88, 227, 198, 62, 14, 39, 152, 62, 200, 168, 65, 190, 86, 227, 198, 62, 223, 218, 87, 61, 252, 184, 216, 62, 104, 102, 199, 62, 64, 133, 111, 188, 131, 177, 66, 62, 105, 102, 199, 62, 128, 162, 228, 61, 195, 100, 216, 62, 105, 102, 199, 62, 6, 192, 171, 189, 73, 224, 215, 190, 105, 102, 199, 62, 70, 247, 111, 62, 58, 226, 179, 62, 105, 102, 199, 62, 226, 154, 27, 62, 26, 16, 145, 62, 87, 227, 198, 62, 19, 248, 227, 188, 48, 80, 174, 62, 105, 102, 199, 62, 200, 58, 215, 61, 0, 181, 225, 61, 105, 102, 199, 62, 137, 128, 151, 62, 153, 162, 11, 190, 105, 102, 199, 62, 32, 226, 230, 60, 126, 124, 146, 61, 87, 227, 198, 62, 211, 26, 171, 62, 183, 245, 234, 190, 87, 227, 198, 62, 225, 34, 226, 189, 59, 114, 59, 62, 87, 227, 198, 62, 76, 230, 17, 190, 108, 96, 109, 62, 105, 102, 199, 62, 72, 69, 87, 62, 236, 61, 222, 190, 105, 102, 199, 62, 194, 108, 190, 60, 208, 40, 156, 62, 87, 227, 198, 62, 6, 78, 53, 62, 2, 128, 189, 61, 105, 102, 199, 62, 65, 19, 198, 61, 17, 239, 182, 190, 86, 227, 198, 62, 210, 240, 168, 62, 198, 247, 249, 189, 105, 102, 199, 62, 203, 208, 84, 62, 104, 113, 156, 188, 106, 102, 199, 62, 105, 123, 4, 62, 100, 68, 135, 62, 106, 102, 199, 62, 10, 213, 102, 62, 192, 111, 36, 189, 86, 227, 198, 62, 224, 191, 162, 61, 26, 239, 71, 190, 87, 227, 198, 62, 96, 115, 161, 62, 28, 28, 149, 189, 87, 227, 198, 62, 195, 146, 137, 189, 176, 246, 247, 190, 87, 227, 198, 62, 160, 173, 218, 189, 95, 252, 33, 62, 105, 102, 199, 62, 152, 239, 70, 61, 119, 176, 147, 190, 87, 227, 198, 62, 184, 4, 210, 189, 228, 194, 94, 62, 105, 102, 199, 62, 97, 39, 75, 62, 206, 80, 141, 190, 87, 227, 198, 62, 238, 159, 59, 62, 40, 186, 159, 188, 105, 102, 199, 62, 160, 253, 124, 188, 142, 163, 22, 190, 86, 227, 198, 62, 116, 145, 18, 190, 230, 12, 202, 189, 106, 102, 199, 62, 96, 36, 39, 62, 116, 230, 213, 190, 106, 102, 199, 62, 17, 234, 159, 189, 118, 175, 18, 190, 87, 227, 198, 62, 144, 18, 110, 61, 210, 239, 223, 190, 87, 227, 198, 62, 234, 27, 135, 62, 160, 149, 59, 61, 87, 227, 198, 62, 60, 82, 80, 61, 128, 43, 78, 189, 105, 102, 199, 62, 197, 193, 165, 62, 30, 179, 249, 190, 87, 227, 198, 62, 58, 121, 23, 190, 44, 243, 41, 190, 87, 227, 198, 62, 140, 212, 102, 62, 172, 1, 173, 62, 87, 227, 198, 62, 188, 164, 21, 190, 20, 5, 137, 62, 87, 227, 198, 62, 76, 114, 162, 62, 134, 78, 87, 60, 105, 102, 199, 62, 46, 176, 73, 62, 241, 42, 93, 190, 87, 227, 198, 62, 89, 242, 172, 61, 112, 139, 1, 189, 105, 102, 199, 62, 61, 179, 251, 61, 148, 66, 91, 62, 87, 227, 198, 62, 187, 2, 31, 190, 182, 175, 171, 62, 88, 227, 198, 62, 198, 119, 168, 189, 166, 142, 190, 190, 106, 102, 199, 62, 237, 156, 109, 62, 128, 169, 132, 190, 104, 102, 199, 62, 39, 217, 170, 62, 182, 63, 215, 190, 87, 227, 198, 62, 174, 170, 154, 62, 240, 140, 211, 62, 87, 227, 198, 62, 122, 34, 163, 62, 96, 89, 160, 62, 86, 227, 198, 62, 48, 150, 31, 189, 52, 157, 53, 190, 87, 227, 198, 62, 194, 104, 137, 62, 74, 185, 107, 62, 86, 227, 198, 62, 114, 212, 138, 61, 248, 142, 216, 61, 88, 227, 198, 62, 178, 173, 19, 62, 225, 189, 202, 62, 105, 102, 199, 62, 245, 162, 93, 62, 88, 219, 215, 62, 105, 102, 199, 62, 180, 219, 29, 190, 140, 147, 110, 62, 105, 102, 199, 62, 60, 45, 128, 189, 128, 159, 47, 188, 104, 102, 199, 62, 96, 239, 126, 188, 188, 19, 169, 190, 106, 102, 199, 62, 139, 41, 142, 62, 213, 73, 32, 190, 87, 227, 198, 62, 40, 111, 116, 62, 96, 112, 193, 62, 105, 102, 199, 62, 138, 84, 132, 62, 88, 154, 140, 190, 87, 227, 198, 62, 60, 239, 37, 62, 173, 81, 188, 62, 87, 227, 198, 62, 243, 172, 145, 189, 82, 53, 5, 191, 88, 227, 198, 62, 142, 115, 149, 189, 248, 237, 151, 189, 104, 102, 199, 62, 140, 137, 176, 188, 248, 130, 231, 190, 86, 227, 198, 62, 194, 227, 47, 62, 222, 237, 207, 190, 105, 102, 199, 62, 58, 63, 24, 190, 232, 109, 217, 190, 87, 227, 198, 62, 41, 216, 106, 62, 169, 115, 234, 61, 106, 102, 199, 62, 192, 245, 1, 188, 10, 230, 173, 61, 87, 227, 198, 62, 26, 222, 69, 62, 16, 233, 184, 189, 105, 102, 199, 62, 44, 84, 183, 60, 178, 138, 144, 62, 87, 227, 198, 62, 29, 135, 103, 62, 14, 66, 181, 62, 86, 227, 198, 62, 119, 127, 184, 61, 174, 205, 11, 191, 88, 227, 198, 62, 70, 170, 240, 61, 240, 133, 148, 189, 87, 227, 198, 62, 0, 145, 151, 62, 108, 223, 67, 61, 87, 227, 198, 62, 66, 101, 157, 62, 188, 207, 196, 190, 105, 102, 199, 62, 88, 132, 164, 62, 162, 126, 196, 190, 106, 102, 199, 62, 116, 50, 20, 190, 71, 145, 140, 62, 104, 102, 199, 62, 27, 59, 35, 190, 186, 173, 156, 62, 105, 102, 199, 62, 160, 138, 39, 189, 64, 76, 135, 189, 87, 227, 198, 62, 104, 101, 1, 62, 75, 54, 214, 62, 105, 102, 199, 62, 44, 233, 156, 188, 160, 149, 78, 189, 105, 102, 199, 62, 54, 110, 119, 62, 241, 73, 137, 190, 105, 102, 199, 62, 144, 69, 201, 187, 151, 102, 49, 190, 86, 227, 198, 62, 153, 174, 62, 62, 20, 40, 40, 189, 104, 102, 199, 62, 195, 235, 157, 62, 124, 5, 79, 190, 87, 227, 198, 62, 193, 32, 189, 61, 102, 91, 13, 191, 86, 227, 198, 62, 137, 169, 230, 61, 202, 119, 142, 61, 87, 227, 198, 62, 179, 127, 122, 62, 134, 150, 130, 190, 105, 102, 199, 62, 75, 94, 143, 62, 184, 135, 188, 190, 87, 227, 198, 62, 87, 52, 19, 62, 220, 152, 48, 61, 88, 227, 198, 62, 125, 238, 219, 61, 82, 251, 230, 190, 104, 102, 199, 62, 198, 84, 157, 62, 152, 119, 144, 61, 87, 227, 198, 62, 188, 141, 132, 189, 130, 85, 220, 190, 87, 227, 198, 62, 164, 143, 58, 61, 248, 224, 246, 188, 105, 102, 199, 62, 80, 153, 236, 187, 220, 15, 224, 190, 88, 227, 198, 62, 212, 170, 163, 62, 46, 95, 156, 62, 87, 227, 198, 62, 52, 119, 153, 188, 165, 237, 43, 190, 104, 102, 199, 62, 4, 127, 79, 62, 104, 13, 225, 190, 87, 227, 198, 62, 44, 38, 238, 60, 0, 60, 212, 190, 87, 227, 198, 62, 117, 73, 9, 61, 146, 67, 143, 62, 105, 102, 199, 62, 29, 246, 170, 62, 64, 239, 2, 60, 87, 227, 198, 62, 220, 32, 155, 62, 109, 186, 100, 190, 87, 227, 198, 62, 110, 50, 13, 61, 5, 219, 15, 191, 87, 227, 198, 62, 10, 35, 166, 62, 37, 122, 110, 190, 104, 102, 199, 62, 176, 85, 148, 189, 161, 197, 74, 62, 106, 102, 199, 62, 110, 39, 101, 62, 200, 67, 8, 190, 105, 102, 199, 62, 184, 78, 3, 190, 253, 155, 108, 190, 87, 227, 198, 62, 64, 241, 83, 60, 248, 244, 129, 62, 86, 227, 198, 62, 233, 147, 49, 62, 63, 61, 13, 191, 104, 102, 199, 62, 116, 47, 164, 189, 116, 108, 35, 62, 105, 102, 199, 62, 34, 90, 148, 62, 142, 120, 214, 190, 106, 102, 199, 62, 82, 184, 80, 62, 110, 75, 164, 190, 87, 227, 198, 62, 6, 244, 248, 61, 54, 20, 145, 62, 87, 227, 198, 62, 152, 211, 20, 61, 240, 6, 252, 61, 86, 227, 198, 62, 119, 122, 244, 61, 181, 40, 16, 62, 106, 102, 199, 62, 86, 39, 9, 61, 129, 236, 163, 62, 105, 102, 199, 62, 227, 209, 165, 62, 60, 108, 58, 190, 88, 227, 198, 62, 100, 104, 127, 62, 234, 174, 254, 190, 105, 102, 199, 62, 243, 233, 5, 190, 39, 8, 15, 191, 87, 227, 198, 62, 161, 82, 11, 62, 234, 250, 239, 190, 104, 102, 199, 62, 53, 168, 144, 62, 238, 81, 161, 190, 106, 102, 199, 62, 185, 132, 167, 62, 200, 194, 224, 190, 87, 227, 198, 62, 124, 127, 130, 62, 94, 86, 42, 190, 86, 227, 198, 62, 152, 44, 134, 61, 114, 180, 196, 62, 105, 102, 199, 62, 22, 152, 111, 62, 62, 156, 115, 61, 105, 102, 199, 62, 160, 39, 150, 62, 12, 192, 152, 62, 88, 227, 198, 62, 46, 79, 43, 61, 180, 121, 7, 191, 88, 227, 198, 62, 112, 194, 213, 189, 170, 172, 181, 62, 87, 227, 198, 62, 184, 205, 169, 189, 54, 100, 159, 62, 105, 102, 199, 62, 123, 81, 121, 62, 181, 207, 197, 62, 106, 102, 199, 62, 191, 160, 218, 189, 184, 7, 173, 62, 88, 227, 198, 62, 160, 79, 72, 60, 155, 198, 5, 191, 87, 227, 198, 62, 126, 211, 67, 62, 40, 110, 228, 61, 86, 227, 198, 62, 128, 191, 233, 187, 96, 20, 197, 190, 105, 102, 199, 62, 152, 203, 172, 62, 92, 89, 245, 190, 189, 79, 199, 62, 81, 166, 171, 62, 69, 201, 118, 62, 106, 102, 199, 62, 90, 225, 33, 61, 192, 155, 255, 189, 105, 102, 199, 62, 32, 20, 89, 59, 136, 10, 241, 189, 106, 102, 199, 62, 170, 252, 121, 62, 113, 119, 59, 62, 106, 102, 199, 62, 186, 94, 128, 62, 161, 134, 63, 62, 87, 227, 198, 62, 108, 151, 146, 189, 201, 93, 14, 191, 87, 227, 198, 62, 64, 105, 80, 62, 101, 117, 235, 190, 87, 227, 198, 62, 174, 65, 234, 189, 33, 199, 98, 189, 88, 227, 198, 62, 64, 19, 155, 188, 7, 240, 50, 190, 86, 227, 198, 62, 121, 249, 10, 190, 104, 249, 208, 62, 86, 227, 198, 62, 160, 235, 172, 187, 68, 114, 89, 190, 104, 102, 199, 62, 80, 180, 164, 189, 19, 121, 2, 191, 105, 102, 199, 62, 215, 174, 197, 189, 30, 245, 16, 191, 87, 227, 198, 62, 224, 162, 246, 61, 73, 162, 199, 62, 106, 102, 199, 62, 20, 11, 160, 62, 29, 69, 175, 62, 105, 102, 199, 62, 8, 159, 84, 60, 224, 68, 212, 190, 106, 102, 199, 62, 134, 162, 153, 189, 151, 168, 19, 190, 104, 102, 199, 62, 68, 60, 10, 61, 132, 52, 119, 189, 105, 102, 199, 62, 19, 181, 161, 62, 177, 119, 114, 62, 106, 102, 199, 62, 184, 26, 29, 61, 4, 96, 41, 190, 87, 227, 198, 62, 0, 202, 237, 60, 166, 222, 10, 191, 86, 227, 198, 62, 77, 221, 157, 62, 16, 87, 151, 189, 105, 102, 199, 62, 10, 240, 142, 189, 186, 141, 156, 62, 87, 227, 198, 62, 224, 65, 90, 62, 251, 180, 12, 191, 106, 102, 199, 62, 240, 216, 193, 58, 52, 153, 137, 62, 104, 102, 199, 62, 202, 86, 221, 189, 68, 141, 40, 189, 106, 102, 199, 62, 146, 146, 193, 61, 136, 13, 100, 62, 105, 102, 199, 62, 226, 122, 230, 61, 56, 1, 163, 62, 87, 227, 198, 62, 119, 58, 217, 189, 104, 146, 199, 62, 87, 227, 198, 62, 0, 11, 226, 60, 10, 178, 2, 191, 87, 227, 198, 62, 244, 249, 56, 62, 136, 48, 252, 61, 86, 227, 198, 62, 140, 123, 178, 189, 86, 12, 7, 190, 86, 227, 198, 62, 182, 254, 127, 189, 66, 116, 150, 190, 105, 102, 199, 62, 78, 115, 12, 190, 245, 167, 128, 190, 86, 227, 198, 62, 180, 233, 69, 189, 22, 51, 98, 62, 87, 227, 198, 62, 225, 197, 69, 62, 174, 246, 192, 62, 87, 227, 198, 62, 84, 170, 113, 62, 51, 102, 12, 191, 88, 227, 198, 62, 228, 254, 72, 62, 150, 2, 138, 190, 87, 227, 198, 62, 196, 255, 195, 61, 64, 236, 174, 62, 87, 227, 198, 62, 0, 96, 43, 184, 203, 113, 141, 190, 87, 227, 198, 62, 156, 255, 67, 62, 186, 238, 209, 62, 86, 227, 198, 62, 0, 147, 27, 59, 16, 2, 74, 61, 87, 227, 198, 62, 188, 123, 178, 61, 129, 245, 134, 190, 104, 102, 199, 62, 170, 40, 71, 189, 72, 82, 227, 189, 104, 102, 199, 62, 40, 15, 84, 188, 43, 96, 10, 190, 106, 102, 199, 62, 168, 35, 87, 189, 80, 179, 167, 62, 105, 102, 199, 62, 67, 205, 156, 61, 124, 250, 212, 189, 87, 227, 198, 62, 69, 79, 135, 61, 162, 117, 40, 190, 105, 102, 199, 62, 122, 232, 195, 189, 115, 48, 248, 190, 105, 102, 199, 62, 174, 150, 52, 62, 96, 124, 48, 189, 87, 227, 198, 62, 27, 111, 166, 62, 156, 229, 80, 62, 87, 227, 198, 62, 100, 9, 6, 190, 142, 161, 131, 62, 87, 227, 198, 62, 248, 203, 115, 62, 176, 81, 199, 190, 86, 227, 198, 62, 108, 94, 155, 189, 130, 123, 226, 190, 87, 227, 198, 62, 86, 167, 114, 62, 186, 174, 138, 190, 105, 102, 199, 62, 164, 199, 152, 189, 2, 130, 79, 62, 105, 102, 199, 62, 42, 241, 114, 62, 192, 192, 81, 62, 87, 227, 198, 62, 32, 39, 191, 189, 118, 109, 148, 62, 87, 227, 198, 62, 206, 125, 123, 61, 215, 69, 142, 62, 87, 227, 198, 62, 110, 92, 228, 189, 202, 42, 211, 190, 105, 102, 199, 62, 0, 150, 228, 188, 236, 252, 115, 190, 87, 227, 198, 62, 38, 179, 172, 62, 209, 10, 192, 62, 87, 227, 198, 62, 56, 252, 249, 61, 192, 64, 131, 188, 105, 102, 199, 62, 81, 41, 147, 189, 195, 222, 217, 190, 104, 102, 199, 62, 33, 42, 145, 62, 61, 17, 227, 190, 87, 227, 198, 62, 206, 169, 8, 190, 54, 237, 207, 190, 87, 227, 198, 62, 42, 14, 46, 62, 139, 90, 233, 189, 106, 102, 199, 62, 46, 169, 145, 62, 64, 104, 108, 188, 87, 227, 198, 62, 232, 63, 63, 61, 238, 35, 111, 62, 87, 227, 198, 62, 80, 163, 128, 62, 135, 252, 48, 62, 105, 102, 199, 62, 102, 215, 154, 189, 132, 20, 85, 190, 105, 102, 199, 62, 55, 251, 241, 61, 148, 84, 83, 62, 87, 227, 198, 62, 32, 120, 21, 188, 56, 65, 154, 190, 87, 227, 198, 62, 54, 249, 103, 62, 128, 134, 67, 60, 106, 102, 199, 62, 194, 80, 73, 62, 218, 53, 220, 190, 105, 102, 199, 62, 171, 207, 16, 190, 72, 114, 23, 190, 87, 227, 198, 62, 211, 148, 30, 62, 60, 195, 10, 191, 88, 227, 198, 62, 236, 100, 157, 61, 118, 236, 136, 190, 105, 102, 199, 62, 208, 215, 157, 189, 88, 28, 248, 190, 88, 227, 198, 62, 0, 85, 252, 186, 188, 91, 217, 190, 87, 227, 198, 62, 71, 195, 254, 189, 215, 106, 18, 191, 105, 102, 199, 62, 110, 63, 251, 61, 8, 220, 129, 61, 87, 227, 198, 62, 244, 227, 199, 61, 56, 80, 43, 62, 105, 102, 199, 62, 120, 17, 248, 189, 30, 47, 245, 189, 86, 227, 198, 62, 27, 82, 64, 62, 156, 29, 211, 62, 87, 227, 198, 62, 35, 79, 133, 62, 132, 61, 176, 62, 87, 227, 198, 62, 255, 145, 191, 189, 244, 67, 18, 190, 87, 227, 198, 62, 178, 47, 203, 189, 158, 178, 155, 62, 87, 227, 198, 62, 29, 159, 150, 62, 255, 116, 224, 190, 104, 102, 199, 62, 8, 42, 178, 61, 106, 255, 116, 190, 87, 227, 198, 62, 121, 231, 151, 62, 0, 71, 10, 191, 104, 102, 199, 62, 52, 234, 157, 62, 92, 31, 123, 189, 86, 227, 198, 62, 252, 122, 161, 60, 32, 20, 236, 61, 88, 227, 198, 62, 29, 172, 225, 189, 233, 80, 52, 62, 87, 227, 198, 62, 114, 216, 104, 62, 13, 127, 180, 62, 87, 227, 198, 62, 168, 138, 185, 61, 170, 32, 5, 191, 87, 227, 198, 62, 106, 160, 27, 62, 208, 117, 182, 190, 105, 102, 199, 62, 163, 117, 61, 62, 58, 26, 143, 62, 87, 227, 198, 62, 78, 78, 17, 190, 118, 82, 142, 62, 105, 102, 199, 62, 155, 133, 29, 62, 202, 136, 134, 61, 104, 102, 199, 62, 0, 10, 91, 60, 179, 37, 42, 62, 88, 227, 198, 62, 183, 8, 203, 61, 112, 15, 93, 189, 105, 102, 199, 62, 83, 131, 135, 189, 84, 195, 167, 190, 105, 102, 199, 62, 242, 142, 26, 62, 79, 52, 203, 190, 87, 227, 198, 62, 207, 239, 70, 61, 172, 159, 193, 62, 106, 102, 199, 62, 252, 67, 138, 62, 92, 58, 163, 190, 87, 227, 198, 62, 216, 1, 253, 61, 211, 77, 16, 191, 88, 227, 198, 62, 64, 84, 11, 188, 152, 66, 230, 61, 87, 227, 198, 62, 232, 81, 34, 61, 80, 171, 200, 189, 87, 227, 198, 62, 216, 8, 46, 189, 52, 16, 200, 62, 87, 227, 198, 62, 47, 69, 35, 190, 230, 53, 134, 190, 87, 227, 198, 62, 8, 135, 208, 189, 200, 148, 74, 62, 105, 102, 199, 62, 32, 84, 197, 187, 86, 22, 233, 61, 105, 102, 199, 62, 140, 57, 121, 62, 88, 49, 1, 191, 87, 227, 198, 62, 22, 74, 134, 189, 148, 7, 145, 190, 105, 102, 199, 62, 52, 139, 127, 61, 112, 167, 25, 61, 88, 227, 198, 62, 116, 152, 236, 189, 166, 167, 169, 190, 105, 102, 199, 62, 221, 175, 148, 62, 208, 100, 181, 61, 105, 102, 199, 62, 136, 188, 107, 62, 126, 247, 14, 191, 106, 102, 199, 62, 10, 70, 19, 190, 44, 88, 97, 61, 105, 102, 199, 62, 23, 113, 46, 62, 185, 112, 33, 62, 87, 227, 198, 62, 80, 171, 249, 61, 44, 204, 187, 190, 105, 102, 199, 62, 179, 204, 131, 62, 204, 126, 80, 190, 87, 227, 198, 62, 129, 233, 5, 62, 131, 144, 141, 62, 86, 227, 198, 62, 40, 135, 211, 61, 108, 255, 2, 191, 104, 102, 199, 62, 132, 253, 38, 62, 197, 211, 202, 190, 87, 227, 198, 62, 156, 27, 9, 61, 65, 250, 212, 190, 105, 102, 199, 62, 13, 247, 140, 62, 8, 255, 114, 60, 105, 102, 199, 62, 224, 32, 62, 62, 213, 243, 79, 62, 105, 102, 199, 62, 191, 103, 40, 62, 64, 121, 240, 60, 105, 102, 199, 62, 218, 236, 159, 62, 26, 8, 186, 190, 105, 102, 199, 62, 106, 126, 165, 62, 228, 136, 83, 61, 87, 227, 198, 62, 20, 126, 100, 62, 128, 182, 177, 60, 86, 227, 198, 62, 188, 175, 46, 189, 52, 148, 115, 61, 104, 102, 199, 62, 71, 172, 144, 62, 67, 52, 10, 191, 104, 102, 199, 62, 209, 66, 160, 62, 32, 123, 246, 190, 104, 102, 199, 62, 75, 1, 72, 62, 229, 19, 76, 62, 87, 227, 198, 62, 206, 165, 244, 189, 252, 200, 2, 189, 106, 102, 199, 62, 172, 109, 149, 62, 154, 195, 134, 62, 87, 227, 198, 62, 88, 189, 162, 60, 153, 29, 176, 190, 104, 102, 199, 62, 78, 103, 12, 189, 21, 58, 225, 190, 105, 102, 199, 62, 30, 205, 91, 62, 210, 91, 209, 190, 105, 102, 199, 62, 28, 125, 17, 62, 60, 240, 199, 190, 88, 227, 198, 62, 64, 82, 199, 187, 180, 108, 225, 189, 88, 227, 198, 62, 164, 110, 65, 62, 13, 88, 162, 62, 87, 227, 198, 62, 231, 220, 236, 61, 222, 9, 14, 190, 106, 102, 199, 62, 198, 156, 135, 62, 248, 195, 133, 62, 87, 227, 198, 62, 110, 56, 53, 62, 12, 68, 7, 190, 87, 227, 198, 62, 110, 115, 151, 189, 16, 175, 48, 189, 105, 102, 199, 62, 98, 122, 112, 62, 72, 26, 130, 62, 87, 227, 198, 62, 204, 187, 90, 62, 32, 34, 42, 62, 105, 102, 199, 62, 126, 157, 27, 190, 155, 131, 90, 190, 106, 102, 199, 62, 20, 39, 236, 61, 182, 75, 180, 190, 105, 102, 199, 62, 222, 31, 66, 189, 130, 98, 186, 189, 87, 227, 198, 62, 176, 91, 128, 62, 63, 94, 118, 62, 105, 102, 199, 62, 137, 183, 2, 190, 152, 236, 82, 190, 105, 102, 199, 62, 0, 240, 230, 188, 48, 26, 18, 188, 87, 227, 198, 62, 145, 224, 155, 189, 234, 133, 136, 190, 87, 227, 198, 62, 64, 142, 115, 60, 168, 38, 218, 188, 86, 227, 198, 62, 174, 94, 152, 189, 64, 224, 162, 61, 104, 102, 199, 62, 158, 237, 112, 61, 144, 203, 163, 190, 87, 227, 198, 62, 128, 177, 237, 189, 72, 176, 212, 61, 88, 227, 198, 62, 227, 117, 21, 190, 121, 171, 16, 190, 105, 102, 199, 62, 76, 138, 151, 189, 186, 113, 123, 62, 87, 227, 198, 62, 244, 110, 217, 189, 252, 69, 14, 190, 87, 227, 198, 62, 88, 87, 58, 62, 191, 213, 199, 62, 106, 102, 199, 62, 3, 32, 136, 62, 148, 104, 167, 189, 106, 102, 199, 62, 80, 165, 207, 188, 89, 231, 29, 190, 87, 227, 198, 62, 193, 123, 168, 62, 164, 119, 196, 190, 87, 227, 198, 62, 213, 224, 229, 61, 240, 62, 167, 62, 106, 102, 199, 62, 129, 1, 112, 62, 207, 224, 10, 191, 87, 227, 198, 62, 128, 155, 49, 58, 201, 236, 174, 190, 104, 102, 199, 62, 64, 56, 225, 189, 74, 206, 131, 61, 105, 102, 199, 62, 250, 251, 163, 62, 142, 17, 202, 62, 87, 227, 198, 62, 228, 25, 191, 189, 167, 116, 56, 62, 106, 102, 199, 62, 192, 158, 19, 189, 91, 19, 188, 190, 106, 102, 199, 62, 148, 42, 167, 62, 192, 86, 188, 62, 106, 102, 199, 62, 98, 240, 85, 62, 216, 194, 222, 190, 105, 102, 199, 62, 222, 209, 21, 190, 188, 149, 129, 190, 87, 227, 198, 62, 144, 247, 171, 61, 37, 173, 192, 62, 105, 102, 199, 62, 180, 233, 9, 62, 147, 79, 208, 62, 105, 102, 199, 62, 116, 180, 182, 189, 244, 229, 47, 190, 88, 227, 198, 62, 102, 224, 238, 189, 116, 244, 78, 62, 86, 227, 198, 62, 227, 66, 138, 62, 17, 78, 156, 190, 87, 227, 198, 62, 96, 22, 41, 62, 130, 147, 131, 190, 86, 227, 198, 62, 128, 47, 140, 62, 40, 88, 13, 190, 88, 227, 198, 62, 132, 4, 35, 190, 188, 34, 106, 62, 87, 227, 198, 62, 213, 210, 159, 62, 120, 229, 0, 191, 105, 102, 199, 62, 93, 82, 98, 62, 70, 213, 222, 190, 87, 227, 198, 62, 28, 18, 71, 60, 4, 31, 143, 62, 105, 102, 199, 62, 38, 228, 98, 189, 36, 33, 163, 60, 87, 227, 198, 62, 42, 67, 108, 189, 158, 3, 138, 190, 87, 227, 198, 62, 50, 15, 171, 61, 168, 132, 218, 62, 87, 227, 198, 62, 210, 47, 164, 62, 119, 211, 196, 62, 86, 227, 198, 62, 20, 241, 142, 60, 224, 247, 130, 189, 104, 102, 199, 62, 21, 109, 14, 190, 245, 162, 81, 62, 88, 227, 198, 62, 160, 156, 145, 61, 153, 157, 23, 62, 105, 102, 199, 62, 154, 139, 15, 190, 242, 168, 53, 61, 87, 227, 198, 62, 160, 188, 144, 60, 0, 2, 239, 59, 106, 102, 199, 62, 180, 73, 132, 62, 83, 126, 215, 62, 105, 102, 199, 62, 52, 214, 188, 61, 18, 134, 196, 62, 105, 102, 199, 62, 8, 136, 0, 62, 98, 1, 158, 190, 88, 227, 198, 62, 164, 118, 178, 61, 192, 240, 60, 60, 87, 227, 198, 62, 224, 7, 199, 60, 70, 255, 218, 190, 87, 227, 198, 62, 123, 189, 162, 62, 1, 240, 248, 190, 87, 227, 198, 62, 224, 107, 74, 62, 84, 203, 80, 62, 104, 102, 199, 62, 180, 142, 136, 189, 52, 228, 5, 61, 104, 102, 199, 62, 182, 162, 29, 62, 124, 10, 130, 62, 86, 227, 198, 62, 99, 8, 176, 189, 215, 165, 4, 190, 87, 227, 198, 62, 230, 33, 203, 61, 42, 107, 148, 189, 87, 227, 198, 62, 192, 210, 117, 60, 146, 111, 14, 191, 105, 102, 199, 62, 200, 106, 21, 59, 208, 179, 129, 62, 105, 102, 199, 62, 240, 102, 53, 188, 118, 138, 162, 190, 105, 102, 199, 62, 160, 234, 15, 62, 105, 112, 7, 191, 86, 227, 198, 62, 36, 105, 251, 189, 60, 175, 50, 62, 87, 227, 198, 62, 90, 166, 85, 62, 124, 41, 121, 190, 87, 227, 198, 62, 240, 22, 86, 189, 56, 16, 14, 62, 105, 102, 199, 62, 230, 83, 82, 62, 238, 92, 172, 190, 106, 102, 199, 62, 54, 243, 67, 62, 48, 68, 153, 190, 105, 102, 199, 62, 160, 134, 9, 190, 181, 94, 72, 62, 88, 227, 198, 62, 182, 238, 67, 62, 128, 222, 7, 191, 87, 227, 198, 62, 80, 121, 62, 61, 44, 226, 215, 190, 88, 227, 198, 62, 23, 169, 136, 61, 26, 36, 4, 191, 87, 227, 198, 62, 114, 241, 167, 62, 64, 146, 152, 60, 104, 102, 199, 62, 232, 68, 205, 189, 26, 20, 97, 62, 87, 227, 198, 62, 48, 219, 181, 61, 198, 196, 104, 62, 105, 102, 199, 62, 148, 74, 210, 60, 112, 103, 221, 189, 87, 227, 198, 62, 229, 154, 232, 61, 118, 92, 252, 190, 105, 102, 199, 62, 131, 253, 72, 62, 206, 65, 220, 190, 106, 102, 199, 62, 159, 253, 128, 61, 169, 164, 218, 190, 87, 227, 198, 62, 250, 103, 34, 61, 104, 215, 207, 61, 88, 227, 198, 62, 241, 209, 151, 62, 172, 162, 136, 190, 87, 227, 198, 62, 241, 237, 51, 189, 24, 151, 51, 62, 105, 102, 199, 62, 162, 168, 64, 61, 106, 7, 204, 190, 106, 102, 199, 62, 252, 194, 153, 62, 130, 141, 181, 62, 87, 227, 198, 62, 88, 139, 64, 189, 51, 36, 6, 191, 87, 227, 198, 62, 234, 98, 38, 62, 128, 193, 168, 188, 106, 102, 199, 62, 237, 223, 213, 61, 202, 32, 14, 191, 106, 102, 199, 62, 134, 176, 24, 62, 240, 148, 130, 61, 88, 227, 198, 62, 130, 78, 24, 190, 70, 18, 163, 190, 105, 102, 199, 62, 212, 185, 68, 62, 33, 67, 32, 62, 87, 227, 198, 62, 112, 91, 213, 187, 129, 223, 6, 191, 106, 102, 199, 62, 220, 6, 39, 62, 118, 120, 228, 189, 87, 227, 198, 62, 94, 178, 37, 61, 214, 111, 211, 190, 105, 102, 199, 62, 246, 169, 70, 62, 243, 127, 0, 191, 106, 102, 199, 62, 208, 103, 141, 62, 234, 24, 190, 190, 87, 227, 198, 62, 185, 117, 133, 62, 104, 105, 185, 190, 105, 102, 199, 62, 241, 5, 196, 189, 32, 23, 180, 60, 87, 227, 198, 62, 224, 36, 90, 189, 58, 90, 210, 61, 86, 227, 198, 62, 113, 134, 82, 62, 221, 52, 14, 62, 88, 227, 198, 62, 216, 139, 161, 61, 132, 40, 33, 62, 105, 102, 199, 62, 226, 238, 152, 62, 142, 105, 173, 62, 106, 102, 199, 62, 165, 75, 129, 62, 32, 19, 89, 189, 88, 227, 198, 62, 42, 149, 68, 62, 235, 185, 233, 190, 87, 227, 198, 62, 44, 93, 35, 62, 241, 145, 72, 62, 105, 102, 199, 62, 24, 14, 122, 62, 61, 1, 1, 191, 87, 227, 198, 62, 167, 175, 205, 61, 166, 74, 233, 189, 88, 227, 198, 62, 119, 115, 149, 62, 80, 13, 228, 61, 87, 227, 198, 62, 27, 105, 142, 61, 25, 105, 179, 190, 106, 102, 199, 62, 229, 206, 181, 189, 235, 235, 230, 190, 105, 102, 199, 62, 158, 33, 205, 189, 164, 89, 200, 62, 87, 227, 198, 62, 109, 17, 21, 62, 12, 23, 227, 189, 105, 102, 199, 62, 128, 38, 26, 62, 14, 45, 197, 190, 88, 227, 198, 62, 4, 89, 151, 62, 238, 10, 81, 190, 87, 227, 198, 62, 219, 94, 41, 62, 168, 244, 17, 190, 87, 227, 198, 62, 57, 245, 37, 62, 136, 132, 166, 190, 105, 102, 199, 62, 24, 183, 48, 62, 156, 12, 181, 190, 87, 227, 198, 62, 76, 128, 135, 61, 136, 186, 214, 60, 87, 227, 198, 62, 3, 221, 107, 62, 100, 104, 162, 189, 105, 102, 199, 62, 171, 106, 63, 62, 22, 106, 80, 190, 87, 227, 198, 62, 71, 243, 120, 62, 4, 139, 1, 191, 104, 102, 199, 62, 12, 6, 7, 62, 198, 47, 207, 190, 105, 102, 199, 62, 230, 155, 9, 190, 8, 181, 142, 61, 104, 102, 199, 62, 86, 74, 152, 61, 54, 207, 11, 191, 104, 102, 199, 62, 148, 213, 29, 190, 112, 156, 236, 61, 87, 227, 198, 62, 0, 54, 222, 189, 74, 24, 212, 190, 87, 227, 198, 62, 191, 2, 216, 61, 215, 201, 77, 190, 88, 227, 198, 62, 100, 60, 150, 61, 86, 159, 228, 190, 87, 227, 198, 62, 60, 186, 37, 62, 132, 171, 145, 62, 87, 227, 198, 62, 60, 116, 176, 60, 96, 253, 210, 190, 87, 227, 198, 62, 181, 214, 24, 190, 51, 24, 163, 190, 104, 102, 199, 62, 137, 165, 190, 61, 48, 54, 3, 61, 105, 102, 199, 62, 92, 182, 35, 62, 220, 155, 194, 62, 105, 102, 199, 62, 43, 215, 234, 61, 224, 65, 56, 190, 105, 102, 199, 62, 150, 206, 167, 62, 173, 21, 103, 62, 105, 102, 199, 62, 100, 200, 5, 190, 187, 175, 182, 62, 105, 102, 199, 62, 12, 148, 145, 61, 82, 154, 149, 62, 104, 102, 199, 62, 43, 152, 122, 62, 136, 103, 43, 190, 105, 102, 199, 62, 198, 11, 4, 190, 252, 240, 126, 188, 87, 227, 198, 62, 224, 95, 43, 188, 91, 236, 115, 62, 87, 227, 198, 62, 246, 39, 107, 61, 208, 214, 28, 189, 87, 227, 198, 62, 16, 176, 165, 189, 121, 78, 12, 62, 86, 227, 198, 62, 47, 25, 171, 62, 202, 216, 155, 62, 87, 227, 198, 62, 64, 179, 3, 62, 252, 66, 84, 190, 105, 102, 199, 62, 96, 45, 83, 59, 84, 207, 52, 190, 86, 227, 198, 62, 2, 91, 38, 62, 214, 131, 241, 190, 88, 227, 198, 62, 188, 107, 17, 62, 23, 117, 157, 190, 88, 227, 198, 62, 176, 208, 138, 61, 93, 72, 233, 190, 87, 227, 198, 62, 248, 92, 110, 62, 100, 60, 25, 190, 105, 102, 199, 62, 0, 217, 139, 59, 228, 118, 174, 189, 106, 102, 199, 62, 0, 53, 170, 58, 116, 102, 52, 61, 88, 227, 198, 62, 135, 20, 132, 62, 210, 22, 62, 62, 88, 227, 198, 62, 252, 212, 2, 62, 173, 75, 141, 190, 105, 102, 199, 62, 104, 41, 167, 62, 232, 137, 223, 190, 88, 227, 198, 62, 162, 96, 120, 62, 224, 175, 26, 62, 87, 227, 198, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ),
- "format": "RGBFloat",
- "height": 1,
- "mipmaps": false,
- "width": 2048
- }
- [sub_resource type="ImageTexture" id=75]
- flags = 4
- flags = 4
- image = SubResource( 172 )
- size = Vector2( 2048, 1 )
- [sub_resource type="Curve" id=76]
- min_value = -4.0
- max_value = 2.0
- _data = [ Vector2( 0, 0.0133927 ), 0.0, 0.0, 0, 0, Vector2( 0.501683, 0.212054 ), 0.0, 0.0, 0, 0, Vector2( 0.713805, -2 ), 0.0, 0.0, 0, 0, Vector2( 1, -3.31696 ), -0.265782, 0.0, 0, 0 ]
- [sub_resource type="CurveTexture" id=77]
- curve = SubResource( 76 )
- [sub_resource type="ParticlesMaterial" id=78]
- emission_shape = 3
- emission_point_texture = SubResource( 75 )
- emission_point_count = 512
- spread = 0.0
- gravity = Vector3( 0, 0, 0 )
- initial_velocity = 1.0
- tangential_accel_curve = SubResource( 77 )
- color_ramp = SubResource( 73 )
- [sub_resource type="QuadMesh" id=79]
- size = Vector2( 0.65, 0.65 )
- [sub_resource type="Shader" id=80]
- code = "shader_type spatial;
- render_mode blend_add,depth_draw_alpha_prepass,cull_back,unshaded;
- uniform float iTime;
- uniform vec4 col_a:hint_color;
- // how it work: lighting hapens in 2d-UV space, vertex coordinates calculated in fake-view-projection logic
- // rotationfixed to be face-camera, to see bilboard mode uncomment mtx= line in VERTEX function
- vec3 my_normalize3(vec3 v){
- float len = length(v);
- vec3 ret=vec3(0.);
- if(len==0.0)ret= vec3(1.0,0.0,0.0);
- else ret= v/len;
- return ret;
- }
- mat4 lookAt(vec3 from, vec3 to, vec3 tup )
- {
- vec3 forward = my_normalize3(from - to);
- if(length(forward.xz)<=0.001)forward.x=0.001;
- vec3 right = cross(normalize(tup), forward);
- right = my_normalize3(right);
- vec3 up = cross(forward, right);
- mat4 camToWorld=mat4(1.);
-
- camToWorld[0][0] = right.x;
- camToWorld[0][1] = right.y;
- camToWorld[0][2] = right.z;
- camToWorld[1][0] = up.x;
- camToWorld[1][1] = up.y;
- camToWorld[1][2] = up.z;
- camToWorld[2][0] = forward.x;
- camToWorld[2][1] = forward.y;
- camToWorld[2][2] = forward.z;
-
- camToWorld[3][0] = from.x;
- camToWorld[3][1] = from.y;
- camToWorld[3][2] = from.z;
-
- return camToWorld;
- }
- varying mat4 mtx;
- varying vec4 col_v;
- void vertex() {
- // bilboard project
- //mtx = mat4(normalize(CAMERA_MATRIX[0])*length(WORLD_MATRIX[0]),normalize(CAMERA_MATRIX[1])*length(WORLD_MATRIX[0]),normalize(CAMERA_MATRIX[2])*length(WORLD_MATRIX[2]),WORLD_MATRIX[3]);
-
- // lookAt project, comment/uncomment
- vec3 cam_pos = CAMERA_MATRIX[3].xyz;
- mtx=lookAt(cam_pos,WORLD_MATRIX[3].xyz,vec3(0.,1.,0.));
-
- mtx[3].xyz=WORLD_MATRIX[3].xyz;
- if(INSTANCE_CUSTOM.y>0.001)
- MODELVIEW_MATRIX=INV_CAMERA_MATRIX*mtx;
- col_v=COLOR;
- COLOR.rgb=col_a.rgb;
- }
- float line( vec2 a, vec2 b, vec2 p)
- {
- vec2 aTob = b - a;
- vec2 aTop = p - a;
- float t = dot( aTop, aTob ) / dot( aTob, aTob);
- t = clamp( t, 0.0, 1.0);
- float d = length( p - (a + aTob * t) );
- d = (0.025) / max(d,0.001);
- d = pow(d, 7.0);
- return clamp( d, 0., 1.0 );
- }
- mat4 perspectiveMatrix(float fovYInRad, float aspectRatio)
- {
- float yScale = 1.0/tan(fovYInRad / 2.0);
- float xScale = yScale / aspectRatio;
- float zf = 100.0;
- float zn = 0.3;
-
- float z1 = zf/(zf-zn);
- float z2 = -zn*zf/(zf-zn);
-
- mat4 result = mat4(vec4(xScale, 0.0, 0.0, 0.0),
- vec4(0.0, yScale, 0.0, 0.0),
- vec4(0.0, 0.0, z1, z2),
- vec4(0.0, 0.0, -1.0, 0.0));
-
- return result;
- }
- mat4 translationMatrix(vec3 pos)
- {
- mat4 result =
- mat4(vec4(1.0, 0.0, 0.0, 0.0),
- vec4(0.0, 1.0, 0.0, 0.0),
- vec4(0.0, 0.0, 1.0, 0.0),
- vec4(pos.x, pos.y, pos.z, 1.0));
-
- return result;
- }
- mat4 rotXMatrix(float theta)
- {
- float cs = cos(theta);
- float ss = sin(theta);
-
- mat4 result =
- mat4(vec4(1.0, 0.0, 0.0, 0.0),
- vec4(0.0, cs, -ss, 0.0),
- vec4(0.0, ss, cs, 0.0),
- vec4(0.0, 0.0, 0.0, 1.0) );
-
- return result;
- }
-
- mat4 rotYMatrix(float theta)
- {
- float cs = cos(theta);
- float ss = sin(theta);
-
- mat4 result =
- mat4(vec4(cs, 0.0, -ss, 0.0),
- vec4(0.0, 1.0, 0.0, 0.0),
- vec4(ss, 0.0, cs, 0.0),
- vec4(0.0, 0.0, 0.0, 1.0) );
-
- return result;
- }
- const vec3 c1_pos=vec3(-0.365,0.,1.8958);
- const vec3 c2_pos=vec3(-0.365,0.,1.205);
- void process_verts( out vec4 fragColor, in vec2 p,vec3 vtx, vec3 icol)
- {
- float pi=3.1415926;
- vec2 uv = p * 2.0 - 1.0;
- vec2 ouv=uv;
- uv.y=-uv.y;
-
- vec3 ccol=clamp(icol,0.,1.);
- uv *= 4.0;
-
- const float fovYInRad = (45.0/180.0) * 3.14159;
-
- const float vs = 10.0;
- vec4 verts [9];
- verts[0] = vec4( vs-(vs/4.)*8., 0., 0., 1.0 );
- verts[1] = vec4( vs-(vs/4.)*7., 0., 0., 1.0 );
- verts[2] = vec4( vs-(vs/4.)*6., 0., 0., 1.0 );
- verts[3] = vec4( vs-(vs/4.)*5., 0., 0., 1.0 );
- verts[4] = vec4( vs-(vs/4.)*4., 0., 0., 1.0 );
- verts[5] = vec4( vs-(vs/4.)*3., 0., 0., 1.0 );
- verts[6] = vec4( vs-(vs/4.)*2., 0., 0., 1.0 );
- verts[7] = vec4( vs-(vs/4.)*1., 0., 0., 1.0 );
- verts[8] = vec4( vs-(vs/4.)*0., 0., 0., 1.0 );
-
- float moveX=0.;
- float moveY=0.;
- float moveZ=60.;
-
- vec3 pos = vec3( moveX, moveY, moveZ);
- //pos=pos-vtx*5.; //bad perspective fix
-
- mat4 tmtx=mtx;
- tmtx[3].xyz=vec3(0.);
-
- mat4 rotY = rotYMatrix((1.-col_v.r)*1.28) * rotXMatrix(0.);
- mat4 worldMat = translationMatrix(pos) *inverse(tmtx)*rotY;
- mat4 perspective = perspectiveMatrix(fovYInRad, 1.);
-
- mat4 mvp = perspective * worldMat;
-
- float t = 0.0;
- for(int i = 0; i < 8; ++i)
- {
- vec4 vertst=verts[i];
- vec4 verten=verts[i + 1];
- vertst.z+=-10.*smoothstep(0.,0.4,length((mtx[3].xz-vertst.xz/60.)-c1_pos.xz));
- verten.z+=-10.*smoothstep(0.,0.4,length((mtx[3].xz-verten.xz/60.)-c1_pos.xz));
- vertst.z+=10.*smoothstep(0.,0.4,length((mtx[3].xz-vertst.xz/60.)-c2_pos.xz));
- verten.z+=10.*smoothstep(0.,0.4,length((mtx[3].xz-verten.xz/60.)-c2_pos.xz));
-
- vertst.z+=10.*smoothstep(0.,0.54,(abs(float(i)/8.-0.5))*(1.-col_v.r));
- verten.z+=10.*smoothstep(0.,0.54,(abs(float(i)/8.-0.5))*(1.-col_v.r));
-
- vec4 startWorldVert = mvp * vertst;
- vec4 endWorldVert;
- endWorldVert = mvp * verten;
-
- if((startWorldVert.w<=-1.001)&&(endWorldVert.w<=-1.001)){
- vec2 sp = startWorldVert.xy / startWorldVert.w;
- vec2 ep = endWorldVert.xy / endWorldVert.w;
- t = max(t,line( sp, ep, uv));
- }
- }
-
- vec3 fc = vec3( 0.0 );
-
-
- fc += icol* pow(t, 0.2);
-
- float a=(1.-dot(ouv*0.5,ouv*0.5))*(1.-smoothstep(0.7,1.,length(ouv)));
- fc*=a;
- fragColor = vec4( fc, clamp(pow(t, 0.2),0.,1.)*a );
-
- }
- void fragment() {
- vec4 col=vec4(0.);
- process_verts(col,UV,VERTEX, COLOR.rgb*3.);
- vec3 cam_pos = CAMERA_MATRIX[3].xyz;
- float fade_distance=length(mtx[3].xyz-cam_pos);
- float fade=clamp(smoothstep(0.25,1.,fade_distance),0.0,1.0);
- ALBEDO = col.rgb*fade;
- ALBEDO*=col_v.a;
- //ALBEDO = max(col.rgb,col_a.rgb*3.);
- //ALPHA=col.a;
- }
- "
- [sub_resource type="ShaderMaterial" id=81]
- render_priority = 50
- shader = SubResource( 80 )
- shader_param/iTime = null
- shader_param/col_a = Color( 0.313726, 0.584314, 0.968627, 1 )
- [sub_resource type="Gradient" id=82]
- offsets = PoolRealArray( 0, 0.107865, 0.573034, 0.81573, 0.91573 )
- colors = PoolColorArray( 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0.388235, 0, 0, 1, 0, 0, 0, 0 )
- [sub_resource type="GradientTexture" id=83]
- gradient = SubResource( 82 )
- [sub_resource type="Curve" id=84]
- min_value = -4.0
- max_value = 4.0
- _data = [ Vector2( 0, 0.0803571 ), 0.0, 0.0, 0, 0, Vector2( 0.5, -0.205357 ), 0.0, 0.0, 0, 0, Vector2( 0.697872, 2.22321 ), 0.0, 0.0, 0, 0, Vector2( 1, 3.4375 ), -0.265782, 0.0, 0, 0 ]
- [sub_resource type="CurveTexture" id=85]
- curve = SubResource( 84 )
- [sub_resource type="ParticlesMaterial" id=86]
- emission_shape = 3
- emission_point_texture = SubResource( 75 )
- emission_point_count = 512
- spread = 0.0
- gravity = Vector3( 0, 0, 0 )
- initial_velocity = 1.0
- tangential_accel_curve = SubResource( 85 )
- color_ramp = SubResource( 83 )
- [sub_resource type="SphereShape" id=87]
- radius = 2.0
- [sub_resource type="BoxShape" id=88]
- extents = Vector3( 0.45, 0.5, 0.5 )
- [sub_resource type="BoxShape" id=89]
- extents = Vector3( 0.2, 1, 1 )
- [sub_resource type="Shader" id=90]
- code = "shader_type spatial;
- render_mode blend_mix,depth_draw_opaque,cull_back,diffuse_toon,specular_schlick_ggx,shadows_disabled; //ambient_light_disabled
- uniform bool use_occ=false;
- uniform bool cell_shading=true;
- uniform bool fix_perspective=false;
- uniform bool use_light_color=true;
- uniform vec4 object_color : hint_color = vec4(0.5,0.5,0.5,1.0);
- uniform vec4 base_light_color : hint_color = vec4(1.0,1.0,1.0,1.0);
- uniform vec4 shade_color : hint_color = vec4(0.05,0.05,0.05,1.0);
- uniform float shade_threshold : hint_range(-1.0, 1.0, 0.001) = 0.2;
- uniform float shade_softness : hint_range(0.0, 1.0, 0.001) = 0.02;
- varying vec3 spos;
- varying vec3 roc;
- varying float sp_size;
- // fix black color
- // t2=max(t2,0.001)
- void vertex() {
- //MODELVIEW_MATRIX = INV_CAMERA_MATRIX * mat4(CAMERA_MATRIX[0],CAMERA_MATRIX[1],CAMERA_MATRIX[2],WORLD_MATRIX[3]);
-
- mat4 mat_world = mat4(normalize(CAMERA_MATRIX[0])*length(WORLD_MATRIX[0]),normalize(CAMERA_MATRIX[1])*length(WORLD_MATRIX[0]),normalize(CAMERA_MATRIX[2])*length(WORLD_MATRIX[2]),WORLD_MATRIX[3]);
- float ts=1.;
-
- MODELVIEW_MATRIX = INV_CAMERA_MATRIX * mat_world;
- spos=mat_world[3].xyz;
- sp_size=2./max(length(WORLD_MATRIX[0].xyz),0.0001);
- roc=CAMERA_MATRIX[3].xyz*sp_size;
- if(fix_perspective)
- //VERTEX*=clamp(length(spos-CAMERA_MATRIX[3].xyz)/2.,0.,1.); //correct proportion fix on zoom
- VERTEX*=clamp(length(spos-CAMERA_MATRIX[3].xyz)/(2./sp_size),0.,1.); //not correct proportion fix on zoom
- }
- float cell_shade(vec3 nor, vec3 light)
- {
- float NdotL = dot(nor, light);
- float is_lit = step(shade_threshold, NdotL);
- float shade_value = smoothstep(shade_threshold - shade_softness ,shade_threshold + shade_softness, NdotL);
- //diffuse = mix(shade, base, shade_value);
- return shade_value;
- }
- // The MIT License
- // Copyright © 2014 Inigo Quilez
- // https://iquilezles.org/www/articles/intersectors/intersectors.htm
- float sphIntersect( in vec3 ro, in vec3 rd, in vec4 sph )
- {
- vec3 oc = ro - sph.xyz;
- float b = dot( oc, rd );
- float c = dot( oc, oc ) - sph.w*sph.w;
- float h = b*b - c;
- if( h<0.0 ) return -1.0;
- return -b - sqrt( h );
- }
- vec3 sphNormal( in vec3 pos, in vec4 sph )
- {
- return normalize(pos-sph.xyz);
- }
- vec4 sph_img( vec3 rd , vec3 lght, vec3 ro, vec3 sp, float sp_sz,vec3 bcol)
- {
- vec4 sph = vec4( sp, sp_sz);
- vec3 lig=lght;
- vec3 col = vec3(0.0);
- float tmin = 1e10;
- vec3 nor=vec3(0.);
- float occ = 1.0;
- float a=0.;
- float t2 = sphIntersect( ro, rd, sph );
- t2=max(t2,0.001); //to fix black color
- if( t2>0.0 && t2<tmin )
- {
- tmin = t2;
- vec3 pos = ro + t2*rd;
- nor = sphNormal( pos, sph );
- occ = 0.5 + 0.5*nor.y;
- }
- if( tmin<1000.0 )
- {
- vec3 pos = ro + tmin*rd;
-
- col = vec3(1.0);
- a=1.;
- float shade_value=0.;
- if(!cell_shading)
- shade_value = clamp( dot(nor,lig), 0.0, 1.0 ); //base shadow
- else
- shade_value=cell_shade(nor,lig); //cell
- if(use_occ)shade_value+=0.05*occ;
- col = mix(shade_color.rgb, bcol, shade_value);
- //col *= exp( -0.05*tmin );
- }
- //col=clamp(col,0.,1.);
- col = sqrt(col);
- return vec4(col, a );
- }
- void light(){
- vec3 rd=normalize(((CAMERA_MATRIX) * vec4(normalize(-VIEW), 0.0)).xyz);
- //DIFFUSE_LIGHT=vec3(0.);
- //SPECULAR_LIGHT=vec3(0.);
-
- vec3 lgt=normalize(((CAMERA_MATRIX) * vec4(normalize(LIGHT), 0.0)).xyz);
- //proportion fix on zoom
- vec4 col=vec4(0.);
- vec3 lc=base_light_color.rgb;
- if(use_light_color){
- lc=LIGHT_COLOR;
- }
- if(fix_perspective)
- //correct
- //col=sph_img(normalize(rd),normalize( lgt ), roc,spos*sp_size, 1.-0.999*(1.-min(length(spos-CAMERA_MATRIX[3].xyz)/2.,1.)),lc);
- //not correct
- col=sph_img(normalize(rd),normalize( lgt ), roc,spos*sp_size, 1.-0.999*(1.-min(length(spos-CAMERA_MATRIX[3].xyz)/(2./sp_size),1.)),lc);
- else
- col=sph_img(normalize(rd),normalize( lgt ), roc,spos*sp_size, 1.,lc); //no fix
- SPECULAR_LIGHT+=col.rgb*ATTENUATION*ALBEDO;
- DIFFUSE_LIGHT+=col.rgb*ATTENUATION*ALBEDO;
- //ALPHA=col.w;
- }
- void fragment() {
- ALBEDO=object_color.rgb;
- METALLIC = 0.;
- ROUGHNESS = 0.9;
- SPECULAR = 0.5;
- }
- "
- [sub_resource type="ShaderMaterial" id=91]
- render_priority = 50
- shader = SubResource( 90 )
- shader_param/use_occ = false
- shader_param/cell_shading = true
- shader_param/fix_perspective = false
- shader_param/use_light_color = true
- shader_param/object_color = Color( 0.756863, 0.756863, 0.756863, 1 )
- shader_param/base_light_color = Color( 1, 1, 1, 1 )
- shader_param/shade_color = Color( 0.0235294, 0.0235294, 0.0235294, 1 )
- shader_param/shade_threshold = 0.1
- shader_param/shade_softness = 0.02
- [sub_resource type="Curve" id=92]
- min_value = -1.0
- _data = [ Vector2( 0, -0.0357143 ), 0.0, 0.0, 0, 0, Vector2( 0.472973, -0.0357143 ), -0.542125, -0.542125, 0, 0, Vector2( 0.763513, -0.25 ), 0.0, 0.0, 0, 0, Vector2( 1, -0.0892857 ), 0.0, 0.0, 0, 0 ]
- [sub_resource type="CurveTexture" id=93]
- curve = SubResource( 92 )
- [sub_resource type="Curve" id=94]
- min_value = -1.0
- _data = [ Vector2( 0, -0.0379465 ), 0.0, 0.0, 0, 0, Vector2( 0.202703, 0.462054 ), 0.0, 0.0, 0, 0, Vector2( 0.351351, -0.341518 ), 0.0, 0.0, 0, 0, Vector2( 0.601351, -0.0915179 ), 0.773519, 0.773519, 0, 0, Vector2( 0.777027, -0.0379465 ), 0.0, 0.0, 0, 0, Vector2( 1, -0.0379465 ), 0.0, 0.0, 0, 0 ]
- [sub_resource type="CurveTexture" id=95]
- curve = SubResource( 94 )
- [sub_resource type="Curve" id=96]
- _data = [ Vector2( 0, 0.133929 ), 0.0, 0.0, 0, 0, Vector2( 0.425676, 1 ), 0.36782, 0.36782, 0, 0, Vector2( 0.736486, 0.571429 ), -1.04113, -1.04113, 0, 0, Vector2( 1, 0 ), 0.0, 0.0, 0, 0 ]
- [sub_resource type="CurveTexture" id=97]
- curve = SubResource( 96 )
- [sub_resource type="ParticlesMaterial" id=98]
- direction = Vector3( 1, 0, 1 )
- spread = 180.0
- flatness = 1.0
- gravity = Vector3( 0, 0, 0 )
- initial_velocity = 0.06
- initial_velocity_random = 0.95
- linear_accel = 0.1
- linear_accel_curve = SubResource( 93 )
- radial_accel_curve = SubResource( 95 )
- scale = 0.03
- scale_random = 0.05
- scale_curve = SubResource( 97 )
- [sub_resource type="ArrayMesh" id=99]
- surfaces/0 = {
- "aabb": AABB( -0.5, -0.5, -4.87479e-08, 1, 1, 1.00487e-05 ),
- "array_data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 126, 0, 0, 127, 0, 127, 0, 56, 0, 56, 190, 20, 251, 190, 197, 197, 199, 189, 31, 177, 0, 179, 0, 0, 126, 0, 0, 127, 0, 127, 112, 54, 235, 32, 0, 0, 0, 191, 45, 189, 187, 178, 47, 189, 187, 178, 0, 0, 126, 0, 0, 126, 0, 127, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 126, 0, 0, 127, 0, 127, 0, 56, 0, 56, 94, 131, 236, 190, 23, 239, 67, 190, 151, 145, 30, 179, 0, 0, 126, 0, 0, 126, 0, 127, 240, 52, 223, 40, 190, 20, 251, 190, 197, 197, 199, 189, 31, 177, 0, 179, 0, 0, 126, 0, 0, 127, 0, 127, 112, 54, 235, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 49, 219, 212, 190, 219, 57, 142, 190, 18, 90, 54, 179, 0, 0, 127, 0, 0, 126, 0, 127, 28, 51, 100, 45, 94, 131, 236, 190, 23, 239, 67, 190, 151, 145, 30, 179, 0, 0, 127, 0, 0, 127, 0, 127, 240, 52, 223, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 126, 0, 0, 127, 0, 127, 0, 56, 0, 56, 242, 4, 181, 190, 244, 4, 181, 190, 148, 32, 71, 179, 0, 0, 126, 0, 0, 127, 0, 127, 175, 48, 175, 48, 49, 219, 212, 190, 219, 57, 142, 190, 18, 90, 54, 179, 0, 0, 126, 0, 0, 126, 0, 127, 28, 51, 100, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 216, 57, 142, 190, 50, 219, 212, 190, 24, 64, 80, 179, 0, 0, 127, 0, 0, 127, 0, 127, 100, 45, 28, 51, 242, 4, 181, 190, 244, 4, 181, 190, 148, 32, 71, 179, 0, 0, 127, 0, 0, 127, 0, 127, 175, 48, 175, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 126, 0, 127, 0, 56, 0, 56, 20, 239, 67, 190, 94, 131, 236, 190, 217, 94, 81, 179, 0, 0, 127, 0, 0, 127, 0, 127, 223, 40, 240, 52, 216, 57, 142, 190, 50, 219, 212, 190, 24, 64, 80, 179, 0, 0, 127, 0, 0, 126, 0, 127, 100, 45, 28, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 126, 0, 127, 0, 56, 0, 56, 193, 197, 199, 189, 190, 20, 251, 190, 213, 113, 74, 179, 0, 0, 127, 0, 0, 127, 0, 127, 235, 32, 112, 54, 20, 239, 67, 190, 94, 131, 236, 190, 217, 94, 81, 179, 0, 0, 127, 0, 0, 127, 0, 127, 223, 40, 240, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 164, 133, 136, 178, 0, 0, 0, 191, 46, 189, 59, 179, 0, 0, 127, 0, 0, 126, 0, 127, 0, 0, 255, 55, 193, 197, 199, 189, 190, 20, 251, 190, 213, 113, 74, 179, 0, 0, 127, 0, 0, 127, 0, 127, 235, 32, 112, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 189, 197, 199, 61, 191, 20, 251, 190, 145, 209, 37, 179, 0, 0, 127, 0, 0, 127, 0, 127, 235, 32, 199, 56, 164, 133, 136, 178, 0, 0, 0, 191, 46, 189, 59, 179, 0, 0, 127, 0, 0, 127, 0, 127, 0, 0, 255, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 17, 239, 67, 62, 95, 131, 236, 190, 163, 134, 9, 179, 0, 0, 127, 0, 0, 127, 0, 127, 223, 40, 135, 57, 189, 197, 199, 61, 191, 20, 251, 190, 145, 209, 37, 179, 0, 0, 127, 0, 0, 126, 0, 127, 235, 32, 199, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 218, 57, 142, 62, 50, 219, 212, 190, 120, 229, 207, 178, 0, 0, 127, 0, 0, 127, 0, 127, 100, 45, 56, 58, 17, 239, 67, 62, 95, 131, 236, 190, 163, 134, 9, 179, 0, 0, 127, 0, 0, 127, 0, 127, 223, 40, 135, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 126, 0, 0, 127, 0, 127, 0, 56, 0, 56, 244, 4, 181, 62, 242, 4, 181, 190, 97, 192, 132, 178, 0, 0, 126, 0, 0, 127, 0, 127, 175, 48, 212, 58, 218, 57, 142, 62, 50, 219, 212, 190, 120, 229, 207, 178, 0, 0, 126, 0, 0, 127, 0, 127, 100, 45, 56, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 50, 219, 212, 62, 216, 57, 142, 190, 48, 5, 210, 177, 0, 0, 127, 0, 0, 127, 0, 127, 28, 51, 83, 59, 244, 4, 181, 62, 242, 4, 181, 190, 97, 192, 132, 178, 0, 0, 127, 0, 0, 127, 0, 127, 175, 48, 212, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 126, 0, 0, 127, 0, 127, 0, 56, 0, 56, 96, 131, 236, 62, 15, 239, 67, 190, 160, 18, 110, 49, 0, 0, 126, 0, 0, 126, 0, 127, 240, 52, 178, 59, 50, 219, 212, 62, 216, 57, 142, 190, 48, 5, 210, 177, 0, 0, 126, 0, 0, 127, 0, 127, 28, 51, 83, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 191, 20, 251, 62, 175, 197, 199, 189, 94, 194, 93, 50, 0, 0, 127, 0, 0, 127, 0, 127, 112, 54, 236, 59, 96, 131, 236, 62, 15, 239, 67, 190, 160, 18, 110, 49, 0, 0, 127, 0, 0, 126, 0, 127, 240, 52, 178, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 126, 0, 0, 127, 0, 127, 0, 56, 0, 56, 0, 0, 0, 63, 242, 102, 70, 52, 55, 189, 187, 50, 0, 0, 126, 0, 0, 126, 0, 127, 0, 56, 0, 60, 191, 20, 251, 62, 175, 197, 199, 189, 94, 194, 93, 50, 0, 0, 126, 0, 0, 127, 0, 127, 112, 54, 236, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 189, 20, 251, 62, 224, 197, 199, 61, 36, 177, 0, 51, 0, 0, 127, 0, 0, 127, 0, 127, 199, 56, 236, 59, 0, 0, 0, 63, 242, 102, 70, 52, 55, 189, 187, 50, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 91, 131, 236, 62, 37, 239, 67, 62, 155, 145, 30, 51, 0, 0, 127, 0, 0, 127, 0, 127, 135, 57, 178, 59, 189, 20, 251, 62, 224, 197, 199, 61, 36, 177, 0, 51, 0, 0, 127, 0, 0, 126, 0, 127, 199, 56, 236, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 44, 219, 212, 62, 227, 57, 142, 62, 22, 90, 54, 51, 0, 0, 127, 0, 0, 127, 0, 127, 56, 58, 83, 59, 91, 131, 236, 62, 37, 239, 67, 62, 155, 145, 30, 51, 0, 0, 127, 0, 0, 127, 0, 127, 135, 57, 178, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 234, 4, 181, 62, 252, 4, 181, 62, 152, 32, 71, 51, 0, 0, 127, 0, 0, 127, 0, 127, 212, 58, 212, 58, 44, 219, 212, 62, 227, 57, 142, 62, 22, 90, 54, 51, 0, 0, 127, 0, 0, 127, 0, 127, 56, 58, 83, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 126, 0, 0, 126, 0, 127, 0, 56, 0, 56, 207, 57, 142, 62, 56, 219, 212, 62, 24, 64, 80, 51, 0, 0, 126, 0, 0, 127, 0, 127, 83, 59, 56, 58, 234, 4, 181, 62, 252, 4, 181, 62, 152, 32, 71, 51, 0, 0, 126, 0, 0, 127, 0, 127, 212, 58, 212, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 126, 0, 0, 127, 0, 127, 0, 56, 0, 56, 251, 238, 67, 62, 100, 131, 236, 62, 217, 94, 81, 51, 0, 0, 126, 0, 0, 126, 0, 127, 178, 59, 135, 57, 207, 57, 142, 62, 56, 219, 212, 62, 24, 64, 80, 51, 0, 0, 126, 0, 0, 127, 0, 127, 83, 59, 56, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 133, 197, 199, 61, 193, 20, 251, 62, 209, 113, 74, 51, 0, 0, 127, 0, 0, 127, 0, 127, 236, 59, 199, 56, 251, 238, 67, 62, 100, 131, 236, 62, 217, 94, 81, 51, 0, 0, 127, 0, 0, 126, 0, 127, 178, 59, 135, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 126, 0, 0, 127, 0, 127, 0, 56, 0, 56, 165, 119, 7, 181, 0, 0, 0, 63, 40, 189, 59, 51, 0, 0, 126, 0, 0, 126, 0, 127, 0, 60, 255, 55, 133, 197, 199, 61, 193, 20, 251, 62, 209, 113, 74, 51, 0, 0, 126, 0, 0, 127, 0, 127, 236, 59, 199, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 10, 198, 199, 189, 187, 20, 251, 62, 135, 209, 37, 51, 0, 0, 127, 0, 0, 126, 0, 127, 236, 59, 112, 54, 165, 119, 7, 181, 0, 0, 0, 63, 40, 189, 59, 51, 0, 0, 127, 0, 0, 127, 0, 127, 0, 60, 255, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 57, 239, 67, 190, 87, 131, 236, 62, 150, 134, 9, 51, 0, 0, 127, 0, 0, 127, 0, 127, 178, 59, 240, 52, 10, 198, 199, 189, 187, 20, 251, 62, 135, 209, 37, 51, 0, 0, 127, 0, 0, 126, 0, 127, 236, 59, 112, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 236, 57, 142, 190, 38, 219, 212, 62, 89, 229, 207, 50, 0, 0, 127, 0, 0, 126, 0, 127, 83, 59, 28, 51, 57, 239, 67, 190, 87, 131, 236, 62, 150, 134, 9, 51, 0, 0, 127, 0, 0, 127, 0, 127, 178, 59, 240, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 3, 5, 181, 190, 227, 4, 181, 62, 64, 192, 132, 50, 0, 0, 127, 0, 0, 127, 0, 127, 212, 58, 175, 48, 236, 57, 142, 190, 38, 219, 212, 62, 89, 229, 207, 50, 0, 0, 127, 0, 0, 127, 0, 127, 83, 59, 28, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 126, 0, 127, 0, 56, 0, 56, 62, 219, 212, 190, 198, 57, 142, 62, 168, 4, 210, 49, 0, 0, 127, 0, 0, 127, 0, 127, 56, 58, 100, 45, 3, 5, 181, 190, 227, 4, 181, 62, 64, 192, 132, 50, 0, 0, 127, 0, 0, 126, 0, 127, 212, 58, 175, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 104, 131, 236, 190, 231, 238, 67, 62, 184, 19, 110, 177, 0, 0, 127, 0, 0, 126, 0, 127, 135, 57, 223, 40, 62, 219, 212, 190, 198, 57, 142, 62, 168, 4, 210, 49, 0, 0, 127, 0, 0, 127, 0, 127, 56, 58, 100, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 126, 0, 127, 0, 56, 0, 56, 195, 20, 251, 190, 91, 197, 199, 61, 162, 194, 93, 178, 0, 0, 127, 0, 0, 127, 0, 127, 199, 56, 235, 32, 104, 131, 236, 190, 231, 238, 67, 62, 184, 19, 110, 177, 0, 0, 127, 0, 0, 126, 0, 127, 135, 57, 223, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 126, 0, 127, 0, 56, 0, 56, 0, 0, 0, 191, 45, 189, 187, 178, 47, 189, 187, 178, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 0, 195, 20, 251, 190, 91, 197, 199, 61, 162, 194, 93, 178, 0, 0, 127, 0, 0, 127, 0, 127, 199, 56, 235, 32 ),
- "array_index_data": PoolByteArray( ),
- "blend_shape_data": [ ],
- "format": 97303,
- "index_count": 0,
- "primitive": 4,
- "skeleton_aabb": [ ],
- "vertex_count": 96
- }
- [sub_resource type="Gradient" id=100]
- offsets = PoolRealArray( 0, 0.101695, 0.202247, 0.331461, 0.519774, 1 )
- colors = PoolColorArray( 0, 0.364706, 0, 1, 0, 0.333333, 0, 1, 0, 0.0705882, 0, 1, 0, 0, 0.662745, 1, 0, 0, 0.25098, 1, 0, 0, 0.168627, 1 )
- [sub_resource type="GradientTexture" id=101]
- gradient = SubResource( 100 )
- [sub_resource type="Curve" id=102]
- min_value = -1.0
- _data = [ Vector2( 0, 0.0111607 ), 0.0, 0.0, 0, 0, Vector2( 0.336585, -0.203125 ), 0.0, 0.0, 0, 0, Vector2( 0.687805, -0.361607 ), 0.0, 0.0, 0, 0, Vector2( 1, -0.111607 ), 0.0, 0.0, 0, 0 ]
- [sub_resource type="CurveTexture" id=103]
- curve = SubResource( 102 )
- [sub_resource type="Curve" id=104]
- _data = [ Vector2( 0, 0.600446 ), 0.0, 0.0, 0, 0, Vector2( 0.168919, 0.850446 ), 0.951028, 0.951028, 0, 0, Vector2( 0.27027, 1 ), 0.0, 0.0, 0, 0, Vector2( 0.5, 0.868304 ), -1.52473, -1.52473, 0, 0, Vector2( 0.668919, 0.636161 ), -1.37225, -1.37225, 0, 0, Vector2( 1, 0.0915179 ), 0.0, 0.0, 0, 0 ]
- [sub_resource type="CurveTexture" id=105]
- curve = SubResource( 104 )
- [sub_resource type="ParticlesMaterial" id=106]
- emission_shape = 2
- emission_box_extents = Vector3( 0.1, 0.001, 0.1 )
- direction = Vector3( 0, 1, 0 )
- spread = 0.0
- gravity = Vector3( 0, -0.05, 0 )
- initial_velocity = 0.15
- linear_accel_curve = SubResource( 103 )
- tangential_accel = 0.2
- tangential_accel_random = 0.19
- scale = 0.06
- scale_curve = SubResource( 105 )
- color_ramp = SubResource( 101 )
- [sub_resource type="Shader" id=107]
- code = "shader_type spatial;
- render_mode blend_add,depth_draw_alpha_prepass,cull_back,diffuse_burley,specular_schlick_ggx,unshaded;
- uniform sampler2D texture_albedo : hint_albedo;
- uniform vec4 color:hint_color;
- void vertex() {
- mat4 mat_world = mat4(normalize(CAMERA_MATRIX[0])*length(WORLD_MATRIX[0]),normalize(CAMERA_MATRIX[1])*length(WORLD_MATRIX[0]),normalize(CAMERA_MATRIX[2])*length(WORLD_MATRIX[2]),WORLD_MATRIX[3]);
- MODELVIEW_MATRIX = INV_CAMERA_MATRIX * mat_world;
-
- VERTEX*=2.;
-
- }
- void fragment() {
- vec4 albedo_tex = texture(texture_albedo,(UV));
- ALBEDO = color.rgb/max(1.-albedo_tex.a,0.0001);
- ALPHA=albedo_tex.a*COLOR.g;
- }
- "
- [sub_resource type="ShaderMaterial" id=108]
- render_priority = 50
- shader = SubResource( 107 )
- shader_param/color = Color( 0.0470588, 0.560784, 0.164706, 1 )
- shader_param/texture_albedo = ExtResource( 27 )
- [sub_resource type="Shader" id=109]
- code = "shader_type spatial;
- render_mode blend_add,depth_draw_alpha_prepass,cull_back,diffuse_burley,specular_schlick_ggx,unshaded;
- uniform sampler2D texture_albedo : hint_albedo;
- uniform vec4 color:hint_color;
- void vertex() {
- mat4 mat_world = mat4(normalize(CAMERA_MATRIX[0])*length(WORLD_MATRIX[0]),normalize(CAMERA_MATRIX[1])*length(WORLD_MATRIX[0]),normalize(CAMERA_MATRIX[2])*length(WORLD_MATRIX[2]),WORLD_MATRIX[3]);
- MODELVIEW_MATRIX = INV_CAMERA_MATRIX * mat_world;
- VERTEX*=2.;
-
- }
- void fragment() {
- vec4 albedo_tex = texture(texture_albedo,(UV));
- ALBEDO = color.rgb/max(1.-albedo_tex.a,0.0001);
- ALPHA=albedo_tex.a*COLOR.b;
- }
- "
- [sub_resource type="ShaderMaterial" id=110]
- render_priority = 50
- next_pass = SubResource( 108 )
- shader = SubResource( 109 )
- shader_param/color = Color( 0.223529, 0.505882, 0.941176, 1 )
- shader_param/texture_albedo = ExtResource( 25 )
- [sub_resource type="Shader" id=111]
- code = "shader_type spatial;
- render_mode blend_mix,depth_draw_opaque,cull_back,diffuse_toon,specular_schlick_ggx,shadows_disabled; //ambient_light_disabled
- uniform bool use_occ=false;
- uniform bool cell_shading=false;
- uniform bool fix_perspective=false;
- uniform bool use_light_color=true;
- uniform vec4 object_color : hint_color = vec4(0.5,0.5,0.5,1.0);
- uniform vec4 base_light_color : hint_color = vec4(1.0,1.0,1.0,1.0);
- uniform vec4 shade_color : hint_color = vec4(0.05,0.05,0.05,1.);
- uniform float shade_threshold : hint_range(-1.0, 1.0, 0.001) = 0.1;
- uniform float shade_softness : hint_range(0.0, 1.0, 0.001) = 0.02;
- varying vec3 spos;
- varying vec3 roc;
- varying float sp_size;
- // fix black color
- // t2=max(t2,0.001)
- void vertex() {
- //MODELVIEW_MATRIX = INV_CAMERA_MATRIX * mat4(CAMERA_MATRIX[0],CAMERA_MATRIX[1],CAMERA_MATRIX[2],WORLD_MATRIX[3]);
-
- mat4 mat_world = mat4(normalize(CAMERA_MATRIX[0])*length(WORLD_MATRIX[0]),normalize(CAMERA_MATRIX[1])*length(WORLD_MATRIX[0]),normalize(CAMERA_MATRIX[2])*length(WORLD_MATRIX[2]),WORLD_MATRIX[3]);
- float ts=1.;
-
- MODELVIEW_MATRIX = INV_CAMERA_MATRIX * mat_world;
- spos=mat_world[3].xyz;
- float ex_scale=max(COLOR.r,0.0001);
- sp_size=2./max(length(WORLD_MATRIX[0].xyz),0.0001);
- roc=CAMERA_MATRIX[3].xyz*sp_size;
- if(fix_perspective)
- //VERTEX*=clamp(length(spos-CAMERA_MATRIX[3].xyz)/2.,0.,1.); //correct proportion fix on zoom
- VERTEX*=clamp(length(spos-CAMERA_MATRIX[3].xyz)/(2./sp_size),0.,1.); //not correct proportion fix on zoom
- }
- float cell_shade(vec3 nor, vec3 light)
- {
- float NdotL = dot(nor, light);
- float is_lit = step(shade_threshold, NdotL);
- float shade_value = smoothstep(shade_threshold - shade_softness ,shade_threshold + shade_softness, NdotL);
- //diffuse = mix(shade, base, shade_value);
- return shade_value;
- }
- // The MIT License
- // Copyright © 2014 Inigo Quilez
- // https://iquilezles.org/www/articles/intersectors/intersectors.htm
- float sphIntersect( in vec3 ro, in vec3 rd, in vec4 sph )
- {
- vec3 oc = ro - sph.xyz;
- float b = dot( oc, rd );
- float c = dot( oc, oc ) - sph.w*sph.w;
- float h = b*b - c;
- if( h<0.0 ) return -1.0;
- return -b - sqrt( h );
- }
- vec3 sphNormal( in vec3 pos, in vec4 sph )
- {
- return normalize(pos-sph.xyz);
- }
- vec4 sph_img( vec3 rd , vec3 lght, vec3 ro, vec3 sp, float sp_sz,vec3 bcol)
- {
- vec4 sph = vec4( sp, sp_sz);
- vec3 lig=lght;
- vec3 col = vec3(0.0);
- float tmin = 1e10;
- vec3 nor=vec3(0.);
- float occ = 1.0;
- float a=0.;
- float t2 = sphIntersect( ro, rd, sph );
- t2=max(t2,0.001); //to fix black color
- if( t2>0.0 && t2<tmin )
- {
- tmin = t2;
- vec3 pos = ro + t2*rd;
- nor = sphNormal( pos, sph );
- occ = 0.5 + 0.5*nor.y;
- }
- if( tmin<1000.0 )
- {
- vec3 pos = ro + tmin*rd;
-
- col = vec3(1.0);
- a=1.;
- float shade_value=0.;
- if(!cell_shading)
- shade_value = clamp( dot(nor,lig), 0.0, 1.0 ); //base shadow
- else
- shade_value=cell_shade(nor,lig); //cell
- if(use_occ)shade_value+=0.05*occ;
- col = mix(shade_color.rgb, bcol, shade_value);
- //col *= exp( -0.05*tmin );
- }
- //col=clamp(col,0.,1.);
- col = sqrt(col);
- return vec4(col, a );
- }
- void light(){
- vec3 rd=normalize(((CAMERA_MATRIX) * vec4(normalize(-VIEW), 0.0)).xyz);
- //DIFFUSE_LIGHT=vec3(0.);
- //SPECULAR_LIGHT=vec3(0.);
-
- vec3 lgt=normalize(((CAMERA_MATRIX) * vec4(normalize(LIGHT), 0.0)).xyz);
- //proportion fix on zoom
- vec4 col=vec4(0.);
- vec3 lc=base_light_color.rgb;
- if(use_light_color){
- lc=LIGHT_COLOR;
- }
- if(fix_perspective)
- //correct
- //col=sph_img(normalize(rd),normalize( lgt ), roc,spos*sp_size, 1.-0.999*(1.-min(length(spos-CAMERA_MATRIX[3].xyz)/2.,1.)),lc);
- //not correct
- col=sph_img(normalize(rd),normalize( lgt ), roc,spos*sp_size, 1.-0.999*(1.-min(length(spos-CAMERA_MATRIX[3].xyz)/(2./sp_size),1.)),lc);
- else
- col=sph_img(normalize(rd),normalize( lgt ), roc,spos*sp_size, 1.,lc); //no fix
- SPECULAR_LIGHT+=col.rgb*ATTENUATION*ALBEDO;
- DIFFUSE_LIGHT+=col.rgb*ATTENUATION*ALBEDO;
- //ALPHA=col.w;
- }
- void fragment() {
- ALBEDO=object_color.rgb;
- METALLIC = 0.;
- ROUGHNESS = 0.9;
- SPECULAR = 0.5;
- }"
- [sub_resource type="ShaderMaterial" id=112]
- render_priority = 50
- next_pass = SubResource( 110 )
- shader = SubResource( 111 )
- shader_param/use_occ = false
- shader_param/cell_shading = true
- shader_param/fix_perspective = false
- shader_param/use_light_color = false
- shader_param/object_color = Color( 0.298039, 1, 0.917647, 1 )
- shader_param/base_light_color = Color( 0.713726, 0.380392, 0.992157, 1 )
- shader_param/shade_color = Color( 0.00392157, 0.0117647, 0.0156863, 1 )
- shader_param/shade_threshold = 0.1
- shader_param/shade_softness = 0.02
- [sub_resource type="ArrayMesh" id=113]
- surfaces/0 = {
- "aabb": AABB( -0.5, -0.5, -4.87479e-08, 1, 1, 1.00487e-05 ),
- "array_data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 126, 0, 0, 127, 0, 127, 0, 56, 0, 56, 190, 20, 251, 190, 197, 197, 199, 189, 31, 177, 0, 179, 0, 0, 126, 0, 0, 127, 0, 127, 112, 54, 235, 32, 0, 0, 0, 191, 45, 189, 187, 178, 47, 189, 187, 178, 0, 0, 126, 0, 0, 126, 0, 127, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 126, 0, 0, 127, 0, 127, 0, 56, 0, 56, 94, 131, 236, 190, 23, 239, 67, 190, 151, 145, 30, 179, 0, 0, 126, 0, 0, 126, 0, 127, 240, 52, 223, 40, 190, 20, 251, 190, 197, 197, 199, 189, 31, 177, 0, 179, 0, 0, 126, 0, 0, 127, 0, 127, 112, 54, 235, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 49, 219, 212, 190, 219, 57, 142, 190, 18, 90, 54, 179, 0, 0, 127, 0, 0, 126, 0, 127, 28, 51, 100, 45, 94, 131, 236, 190, 23, 239, 67, 190, 151, 145, 30, 179, 0, 0, 127, 0, 0, 127, 0, 127, 240, 52, 223, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 126, 0, 0, 127, 0, 127, 0, 56, 0, 56, 242, 4, 181, 190, 244, 4, 181, 190, 148, 32, 71, 179, 0, 0, 126, 0, 0, 127, 0, 127, 175, 48, 175, 48, 49, 219, 212, 190, 219, 57, 142, 190, 18, 90, 54, 179, 0, 0, 126, 0, 0, 126, 0, 127, 28, 51, 100, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 216, 57, 142, 190, 50, 219, 212, 190, 24, 64, 80, 179, 0, 0, 127, 0, 0, 127, 0, 127, 100, 45, 28, 51, 242, 4, 181, 190, 244, 4, 181, 190, 148, 32, 71, 179, 0, 0, 127, 0, 0, 127, 0, 127, 175, 48, 175, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 126, 0, 127, 0, 56, 0, 56, 20, 239, 67, 190, 94, 131, 236, 190, 217, 94, 81, 179, 0, 0, 127, 0, 0, 127, 0, 127, 223, 40, 240, 52, 216, 57, 142, 190, 50, 219, 212, 190, 24, 64, 80, 179, 0, 0, 127, 0, 0, 126, 0, 127, 100, 45, 28, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 126, 0, 127, 0, 56, 0, 56, 193, 197, 199, 189, 190, 20, 251, 190, 213, 113, 74, 179, 0, 0, 127, 0, 0, 127, 0, 127, 235, 32, 112, 54, 20, 239, 67, 190, 94, 131, 236, 190, 217, 94, 81, 179, 0, 0, 127, 0, 0, 127, 0, 127, 223, 40, 240, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 164, 133, 136, 178, 0, 0, 0, 191, 46, 189, 59, 179, 0, 0, 127, 0, 0, 126, 0, 127, 0, 0, 255, 55, 193, 197, 199, 189, 190, 20, 251, 190, 213, 113, 74, 179, 0, 0, 127, 0, 0, 127, 0, 127, 235, 32, 112, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 189, 197, 199, 61, 191, 20, 251, 190, 145, 209, 37, 179, 0, 0, 127, 0, 0, 127, 0, 127, 235, 32, 199, 56, 164, 133, 136, 178, 0, 0, 0, 191, 46, 189, 59, 179, 0, 0, 127, 0, 0, 127, 0, 127, 0, 0, 255, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 17, 239, 67, 62, 95, 131, 236, 190, 163, 134, 9, 179, 0, 0, 127, 0, 0, 127, 0, 127, 223, 40, 135, 57, 189, 197, 199, 61, 191, 20, 251, 190, 145, 209, 37, 179, 0, 0, 127, 0, 0, 126, 0, 127, 235, 32, 199, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 218, 57, 142, 62, 50, 219, 212, 190, 120, 229, 207, 178, 0, 0, 127, 0, 0, 127, 0, 127, 100, 45, 56, 58, 17, 239, 67, 62, 95, 131, 236, 190, 163, 134, 9, 179, 0, 0, 127, 0, 0, 127, 0, 127, 223, 40, 135, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 126, 0, 0, 127, 0, 127, 0, 56, 0, 56, 244, 4, 181, 62, 242, 4, 181, 190, 97, 192, 132, 178, 0, 0, 126, 0, 0, 127, 0, 127, 175, 48, 212, 58, 218, 57, 142, 62, 50, 219, 212, 190, 120, 229, 207, 178, 0, 0, 126, 0, 0, 127, 0, 127, 100, 45, 56, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 50, 219, 212, 62, 216, 57, 142, 190, 48, 5, 210, 177, 0, 0, 127, 0, 0, 127, 0, 127, 28, 51, 83, 59, 244, 4, 181, 62, 242, 4, 181, 190, 97, 192, 132, 178, 0, 0, 127, 0, 0, 127, 0, 127, 175, 48, 212, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 126, 0, 0, 127, 0, 127, 0, 56, 0, 56, 96, 131, 236, 62, 15, 239, 67, 190, 160, 18, 110, 49, 0, 0, 126, 0, 0, 126, 0, 127, 240, 52, 178, 59, 50, 219, 212, 62, 216, 57, 142, 190, 48, 5, 210, 177, 0, 0, 126, 0, 0, 127, 0, 127, 28, 51, 83, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 191, 20, 251, 62, 175, 197, 199, 189, 94, 194, 93, 50, 0, 0, 127, 0, 0, 127, 0, 127, 112, 54, 236, 59, 96, 131, 236, 62, 15, 239, 67, 190, 160, 18, 110, 49, 0, 0, 127, 0, 0, 126, 0, 127, 240, 52, 178, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 126, 0, 0, 127, 0, 127, 0, 56, 0, 56, 0, 0, 0, 63, 242, 102, 70, 52, 55, 189, 187, 50, 0, 0, 126, 0, 0, 126, 0, 127, 0, 56, 0, 60, 191, 20, 251, 62, 175, 197, 199, 189, 94, 194, 93, 50, 0, 0, 126, 0, 0, 127, 0, 127, 112, 54, 236, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 189, 20, 251, 62, 224, 197, 199, 61, 36, 177, 0, 51, 0, 0, 127, 0, 0, 127, 0, 127, 199, 56, 236, 59, 0, 0, 0, 63, 242, 102, 70, 52, 55, 189, 187, 50, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 91, 131, 236, 62, 37, 239, 67, 62, 155, 145, 30, 51, 0, 0, 127, 0, 0, 127, 0, 127, 135, 57, 178, 59, 189, 20, 251, 62, 224, 197, 199, 61, 36, 177, 0, 51, 0, 0, 127, 0, 0, 126, 0, 127, 199, 56, 236, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 44, 219, 212, 62, 227, 57, 142, 62, 22, 90, 54, 51, 0, 0, 127, 0, 0, 127, 0, 127, 56, 58, 83, 59, 91, 131, 236, 62, 37, 239, 67, 62, 155, 145, 30, 51, 0, 0, 127, 0, 0, 127, 0, 127, 135, 57, 178, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 234, 4, 181, 62, 252, 4, 181, 62, 152, 32, 71, 51, 0, 0, 127, 0, 0, 127, 0, 127, 212, 58, 212, 58, 44, 219, 212, 62, 227, 57, 142, 62, 22, 90, 54, 51, 0, 0, 127, 0, 0, 127, 0, 127, 56, 58, 83, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 126, 0, 0, 126, 0, 127, 0, 56, 0, 56, 207, 57, 142, 62, 56, 219, 212, 62, 24, 64, 80, 51, 0, 0, 126, 0, 0, 127, 0, 127, 83, 59, 56, 58, 234, 4, 181, 62, 252, 4, 181, 62, 152, 32, 71, 51, 0, 0, 126, 0, 0, 127, 0, 127, 212, 58, 212, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 126, 0, 0, 127, 0, 127, 0, 56, 0, 56, 251, 238, 67, 62, 100, 131, 236, 62, 217, 94, 81, 51, 0, 0, 126, 0, 0, 126, 0, 127, 178, 59, 135, 57, 207, 57, 142, 62, 56, 219, 212, 62, 24, 64, 80, 51, 0, 0, 126, 0, 0, 127, 0, 127, 83, 59, 56, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 133, 197, 199, 61, 193, 20, 251, 62, 209, 113, 74, 51, 0, 0, 127, 0, 0, 127, 0, 127, 236, 59, 199, 56, 251, 238, 67, 62, 100, 131, 236, 62, 217, 94, 81, 51, 0, 0, 127, 0, 0, 126, 0, 127, 178, 59, 135, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 126, 0, 0, 127, 0, 127, 0, 56, 0, 56, 165, 119, 7, 181, 0, 0, 0, 63, 40, 189, 59, 51, 0, 0, 126, 0, 0, 126, 0, 127, 0, 60, 255, 55, 133, 197, 199, 61, 193, 20, 251, 62, 209, 113, 74, 51, 0, 0, 126, 0, 0, 127, 0, 127, 236, 59, 199, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 10, 198, 199, 189, 187, 20, 251, 62, 135, 209, 37, 51, 0, 0, 127, 0, 0, 126, 0, 127, 236, 59, 112, 54, 165, 119, 7, 181, 0, 0, 0, 63, 40, 189, 59, 51, 0, 0, 127, 0, 0, 127, 0, 127, 0, 60, 255, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 57, 239, 67, 190, 87, 131, 236, 62, 150, 134, 9, 51, 0, 0, 127, 0, 0, 127, 0, 127, 178, 59, 240, 52, 10, 198, 199, 189, 187, 20, 251, 62, 135, 209, 37, 51, 0, 0, 127, 0, 0, 126, 0, 127, 236, 59, 112, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 236, 57, 142, 190, 38, 219, 212, 62, 89, 229, 207, 50, 0, 0, 127, 0, 0, 126, 0, 127, 83, 59, 28, 51, 57, 239, 67, 190, 87, 131, 236, 62, 150, 134, 9, 51, 0, 0, 127, 0, 0, 127, 0, 127, 178, 59, 240, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 3, 5, 181, 190, 227, 4, 181, 62, 64, 192, 132, 50, 0, 0, 127, 0, 0, 127, 0, 127, 212, 58, 175, 48, 236, 57, 142, 190, 38, 219, 212, 62, 89, 229, 207, 50, 0, 0, 127, 0, 0, 127, 0, 127, 83, 59, 28, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 126, 0, 127, 0, 56, 0, 56, 62, 219, 212, 190, 198, 57, 142, 62, 168, 4, 210, 49, 0, 0, 127, 0, 0, 127, 0, 127, 56, 58, 100, 45, 3, 5, 181, 190, 227, 4, 181, 62, 64, 192, 132, 50, 0, 0, 127, 0, 0, 126, 0, 127, 212, 58, 175, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 56, 104, 131, 236, 190, 231, 238, 67, 62, 184, 19, 110, 177, 0, 0, 127, 0, 0, 126, 0, 127, 135, 57, 223, 40, 62, 219, 212, 190, 198, 57, 142, 62, 168, 4, 210, 49, 0, 0, 127, 0, 0, 127, 0, 127, 56, 58, 100, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 126, 0, 127, 0, 56, 0, 56, 195, 20, 251, 190, 91, 197, 199, 61, 162, 194, 93, 178, 0, 0, 127, 0, 0, 127, 0, 127, 199, 56, 235, 32, 104, 131, 236, 190, 231, 238, 67, 62, 184, 19, 110, 177, 0, 0, 127, 0, 0, 126, 0, 127, 135, 57, 223, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 127, 0, 0, 126, 0, 127, 0, 56, 0, 56, 0, 0, 0, 191, 45, 189, 187, 178, 47, 189, 187, 178, 0, 0, 127, 0, 0, 127, 0, 127, 0, 56, 0, 0, 195, 20, 251, 190, 91, 197, 199, 61, 162, 194, 93, 178, 0, 0, 127, 0, 0, 127, 0, 127, 199, 56, 235, 32 ),
- "array_index_data": PoolByteArray( ),
- "blend_shape_data": [ ],
- "format": 97303,
- "index_count": 0,
- "material": SubResource( 112 ),
- "primitive": 4,
- "skeleton_aabb": [ ],
- "vertex_count": 96
- }
- [sub_resource type="ShaderMaterial" id=114]
- render_priority = 52
- shader = ExtResource( 34 )
- shader_param/color = Color( 0.988235, 0.505882, 0.152941, 1 )
- shader_param/texture_gr = ExtResource( 32 )
- [sub_resource type="Curve" id=115]
- min_value = -5.0
- max_value = 0.0
- _data = [ Vector2( 0, -5 ), 0.0, 0.0, 0, 0, Vector2( 0.0810811, 0 ), 0.0, 0.0, 0, 0, Vector2( 0.155405, 1.53125 ), 0.0, 0.0, 0, 0, Vector2( 0.398649, 0 ), 0.0, 0.0, 0, 0, Vector2( 1, 0 ), 0.0, 0.0, 0, 0 ]
- [sub_resource type="CurveTexture" id=116]
- curve = SubResource( 115 )
- [sub_resource type="Curve" id=117]
- min_value = -1.0
- _data = [ Vector2( 0, 0.622768 ), 0.0, 0.0, 0, 0, Vector2( 0.277027, 0.551339 ), 0.0, 0.0, 0, 0, Vector2( 0.702703, 0.283482 ), -0.954365, -0.954365, 0, 0, Vector2( 1, 0 ), 0.0, 0.0, 0, 0 ]
- [sub_resource type="CurveTexture" id=118]
- curve = SubResource( 117 )
- [sub_resource type="Gradient" id=119]
- offsets = PoolRealArray( 0, 0.097561, 0.845528, 1 )
- colors = PoolColorArray( 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0 )
- [sub_resource type="GradientTexture" id=120]
- gradient = SubResource( 119 )
- [sub_resource type="Curve" id=121]
- max_value = 2.0
- _data = [ Vector2( 0, 2 ), 0.0, 0.0, 0, 0, Vector2( 1, 0.962054 ), 0.0, 0.0, 0, 0 ]
- [sub_resource type="CurveTexture" id=122]
- curve = SubResource( 121 )
- [sub_resource type="ParticlesMaterial" id=123]
- flag_rotate_y = true
- direction = Vector3( 1, 0, 1 )
- spread = 5.0
- gravity = Vector3( 0, 0, -0.4 )
- initial_velocity = 0.5
- initial_velocity_random = 0.1
- angular_velocity_curve = SubResource( 118 )
- angle_curve = SubResource( 116 )
- scale_curve = SubResource( 122 )
- color_ramp = SubResource( 120 )
- [sub_resource type="ShaderMaterial" id=124]
- render_priority = 50
- shader = ExtResource( 39 )
- shader_param/iTime = 0.0
- shader_param/colorx = Color( 0.988235, 0.505882, 0.152941, 1 )
- shader_param/tvalx = 0.401
- shader_param/texture_p = ExtResource( 40 )
- [sub_resource type="Shader" id=125]
- code = "shader_type particles;
- render_mode keep_data,disable_velocity,disable_force;
- void vertex() {
- TRANSFORM = EMISSION_TRANSFORM;
- vec3 pos=vec3(0.);
- TRANSFORM[3].xyz=vec3(pos);
- TRANSFORM[0].xyz *= 1.;
- TRANSFORM[1].xyz *= 1.;
- TRANSFORM[2].xyz *= 1.;
- }"
- [sub_resource type="ShaderMaterial" id=126]
- shader = SubResource( 125 )
- [sub_resource type="Shader" id=127]
- code = "shader_type spatial;
- render_mode blend_mix,depth_draw_alpha_prepass,cull_disabled,unshaded;
- vec3 my_normalize3(vec3 v){
- float len = length(v);
- vec3 ret=vec3(0.);
- if(len==0.0)ret= vec3(1.0,0.0,0.0);
- else ret= v/len;
- return ret;
- }
- mat4 lookAt(vec3 from, vec3 to, vec3 tup) {
- vec3 forward = my_normalize3(from - to);
- if (length(forward.xz) <= 0.001) forward.x = 0.001;
- vec3 right = cross(normalize(tup), forward);
- right = my_normalize3(right);
- vec3 up = cross(forward, right);
- mat4 camToWorld = mat4(1.);
- camToWorld[0].xyz = right.xyz;
- camToWorld[1].xyz = up.xyz;
- camToWorld[2].xyz = forward.xyz;
- camToWorld[3].xyz = from.xyz;
- return camToWorld;
- }
- const vec3 spos=vec3(0.316,0.585,2.902);
- void vertex() {
- MODELVIEW_MATRIX=INV_CAMERA_MATRIX*lookAt(WORLD_MATRIX[3].xyz,spos,vec3(0.,1.,0.));
- VERTEX.z*=0.001+0.3*COLOR.a;
- VERTEX*=0.25;
- COLOR.a*=smoothstep(0.2,0.22,length(((WORLD_MATRIX[3].xyz-spos)*vec3(1.,1./1.5,1.)).xy));
- }
- // https://iquilezles.org/www/articles/filterableprocedurals/filterableprocedurals.htm
- float filteredGrid( in vec2 p, in vec2 dpdx, in vec2 dpdy )
- {
- const float N = 10.0;
- vec2 w = max(abs(dpdx), abs(dpdy));
- vec2 a = p + 0.5*w;
- vec2 b = p - 0.5*w;
- vec2 i = (floor(a)+min(fract(a)*N,1.0)-
- floor(b)-min(fract(b)*N,1.0))/(N*w);
- return (i.x);
- }
- void fragment() {
- vec2 tuv=UV;
- tuv+=-0.5;
- float scale=.25;
- tuv.x*=scale;
- tuv.x+=(0.5/10.);
- float d=0.;
- d=filteredGrid(tuv,dFdx(tuv),dFdy(tuv)); //procedural filtered
- //d=1.-step(0.05,abs(tuv.x)); //procedural, not filtered
-
- tuv=UV;
- tuv.x=(tuv.x-0.5)*scale+0.5;
- //d=texture(test_texture,tuv).a; //texture
-
- ALBEDO=d*COLOR.rgb;
- ALPHA=d*COLOR.a;
- }
- "
- [sub_resource type="ShaderMaterial" id=128]
- render_priority = 51
- shader = SubResource( 127 )
- [sub_resource type="Gradient" id=129]
- offsets = PoolRealArray( 0, 0.105691, 0.349593, 1 )
- colors = PoolColorArray( 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 )
- [sub_resource type="GradientTexture" id=130]
- gradient = SubResource( 129 )
- [sub_resource type="Image" id=173]
- data = {
- "data": PoolByteArray( 108, 16, 19, 63, 101, 15, 56, 62, 186, 95, 125, 190, 140, 180, 12, 61, 72, 152, 46, 62, 228, 107, 102, 191, 11, 144, 20, 63, 184, 22, 221, 61, 0, 147, 31, 63, 214, 224, 222, 190, 21, 255, 65, 62, 34, 90, 62, 191, 72, 72, 38, 62, 161, 146, 58, 189, 129, 77, 138, 191, 84, 202, 135, 62, 246, 226, 58, 62, 27, 190, 77, 191, 92, 23, 46, 190, 172, 44, 170, 61, 17, 96, 135, 63, 204, 214, 27, 191, 226, 91, 78, 61, 177, 87, 30, 190, 191, 15, 239, 190, 20, 45, 101, 189, 60, 244, 28, 63, 44, 162, 242, 190, 191, 4, 178, 189, 240, 18, 24, 191, 242, 247, 27, 191, 90, 153, 84, 189, 44, 150, 69, 62, 150, 171, 42, 62, 170, 157, 32, 190, 6, 28, 129, 63, 99, 140, 44, 60, 5, 63, 54, 190, 254, 170, 129, 63, 217, 193, 42, 191, 173, 195, 30, 190, 239, 53, 122, 190, 104, 62, 27, 191, 133, 120, 116, 189, 45, 229, 32, 191, 158, 145, 22, 63, 206, 146, 15, 190, 174, 87, 134, 190, 90, 56, 240, 190, 11, 63, 40, 62, 60, 57, 64, 191, 145, 208, 48, 191, 224, 233, 14, 190, 3, 134, 38, 62, 139, 41, 184, 57, 64, 167, 51, 61, 61, 32, 142, 63, 100, 246, 27, 63, 170, 216, 131, 61, 2, 225, 3, 62, 188, 64, 24, 63, 108, 172, 77, 62, 30, 45, 196, 190, 84, 150, 14, 63, 54, 0, 208, 189, 87, 29, 204, 62, 182, 20, 37, 63, 94, 195, 72, 62, 235, 74, 139, 61, 183, 226, 27, 191, 121, 102, 190, 60, 122, 19, 57, 62, 25, 222, 73, 62, 162, 39, 80, 62, 140, 73, 86, 63, 92, 161, 20, 191, 51, 102, 206, 189, 67, 113, 161, 62, 42, 255, 182, 62, 5, 234, 57, 62, 244, 140, 89, 191, 107, 146, 160, 189, 89, 112, 32, 190, 20, 9, 132, 63, 90, 211, 254, 62, 154, 87, 71, 190, 64, 232, 6, 191, 235, 185, 45, 191, 90, 166, 233, 61, 90, 199, 160, 62, 193, 143, 162, 188, 154, 187, 59, 190, 184, 152, 122, 191, 246, 36, 251, 190, 83, 185, 77, 189, 181, 52, 84, 63, 206, 76, 4, 191, 112, 133, 241, 60, 237, 120, 3, 63, 82, 5, 197, 62, 243, 57, 103, 62, 31, 234, 41, 63, 45, 106, 44, 191, 54, 20, 248, 61, 214, 49, 171, 190, 95, 181, 254, 190, 160, 89, 55, 62, 36, 178, 0, 63, 52, 147, 226, 62, 0, 226, 63, 190, 164, 20, 61, 63, 170, 200, 28, 191, 153, 163, 225, 189, 224, 108, 11, 191, 113, 223, 1, 191, 73, 66, 66, 62, 184, 194, 239, 62, 0, 156, 73, 62, 94, 186, 72, 190, 160, 160, 92, 191, 78, 88, 134, 62, 106, 3, 168, 61, 109, 40, 130, 63, 32, 104, 234, 62, 143, 73, 97, 62, 242, 164, 30, 63, 218, 236, 52, 191, 96, 202, 209, 61, 234, 143, 88, 62, 68, 208, 255, 61, 113, 118, 194, 189, 84, 4, 138, 63, 33, 232, 239, 190, 172, 230, 73, 190, 55, 31, 20, 191, 67, 250, 229, 62, 3, 185, 27, 62, 230, 1, 75, 191, 46, 250, 19, 63, 176, 247, 121, 62, 114, 192, 25, 62, 216, 241, 169, 190, 114, 175, 7, 62, 63, 9, 111, 191, 81, 148, 0, 63, 174, 97, 102, 190, 16, 64, 0, 191, 59, 84, 192, 62, 61, 182, 88, 190, 16, 67, 70, 63, 67, 39, 109, 62, 130, 95, 15, 61, 196, 168, 134, 63, 16, 130, 146, 62, 228, 222, 35, 190, 122, 155, 113, 63, 240, 249, 221, 62, 156, 51, 114, 190, 53, 147, 36, 63, 226, 45, 28, 63, 244, 101, 149, 189, 190, 230, 51, 190, 70, 238, 212, 190, 228, 193, 145, 189, 252, 75, 104, 191, 201, 121, 9, 191, 252, 23, 167, 60, 82, 5, 71, 191, 245, 211, 28, 191, 221, 245, 231, 189, 41, 223, 186, 189, 152, 58, 30, 63, 130, 134, 86, 189, 9, 222, 162, 61, 82, 101, 26, 191, 60, 50, 30, 62, 2, 40, 69, 61, 107, 145, 20, 63, 60, 95, 184, 60, 170, 20, 49, 63, 29, 78, 3, 63, 202, 56, 152, 188, 182, 25, 80, 63, 37, 177, 205, 190, 248, 226, 53, 190, 137, 145, 72, 191, 3, 28, 93, 62, 72, 153, 57, 62, 222, 62, 109, 63, 230, 201, 228, 62, 32, 53, 90, 62, 135, 8, 20, 191, 126, 91, 21, 63, 118, 8, 65, 62, 250, 228, 221, 62, 150, 230, 235, 190, 122, 194, 105, 62, 36, 72, 11, 191, 84, 51, 41, 63, 179, 76, 60, 190, 168, 160, 140, 60, 33, 235, 145, 190, 146, 227, 16, 190, 96, 135, 80, 63, 235, 109, 14, 59, 69, 91, 241, 61, 76, 145, 107, 63, 246, 187, 29, 190, 65, 180, 46, 190, 252, 46, 99, 63, 22, 184, 24, 191, 64, 28, 28, 190, 125, 33, 2, 191, 62, 93, 174, 189, 250, 19, 69, 189, 30, 100, 108, 63, 17, 229, 233, 62, 152, 103, 105, 190, 232, 127, 33, 63, 215, 115, 155, 190, 245, 129, 13, 190, 22, 121, 115, 63, 44, 128, 183, 189, 240, 218, 0, 190, 142, 103, 133, 191, 250, 137, 218, 190, 249, 173, 91, 190, 214, 92, 52, 63, 74, 165, 239, 190, 134, 27, 112, 61, 245, 86, 89, 63, 161, 119, 31, 63, 168, 234, 95, 62, 93, 146, 150, 189, 196, 86, 27, 191, 21, 119, 74, 190, 1, 60, 85, 61, 247, 247, 37, 63, 41, 234, 38, 190, 36, 239, 163, 62, 56, 159, 221, 190, 133, 113, 129, 62, 232, 61, 21, 191, 92, 241, 24, 191, 18, 91, 229, 60, 111, 133, 40, 63, 59, 68, 206, 190, 215, 92, 202, 61, 198, 186, 100, 63, 124, 145, 26, 63, 251, 22, 56, 62, 104, 43, 218, 190, 37, 179, 129, 190, 71, 93, 7, 190, 156, 47, 122, 191, 149, 92, 17, 63, 184, 144, 235, 60, 31, 226, 189, 62, 235, 148, 14, 63, 45, 119, 13, 62, 98, 57, 32, 63, 221, 20, 9, 191, 174, 123, 143, 189, 173, 19, 66, 63, 152, 23, 54, 191, 204, 31, 217, 188, 161, 173, 159, 190, 194, 253, 56, 191, 207, 241, 172, 61, 120, 233, 6, 62, 108, 169, 138, 190, 67, 219, 225, 189, 208, 97, 128, 63, 164, 90, 229, 60, 193, 198, 47, 190, 135, 235, 106, 191, 72, 104, 14, 61, 176, 218, 180, 189, 0, 116, 138, 191, 33, 137, 199, 60, 130, 173, 129, 62, 6, 116, 96, 191, 34, 150, 199, 62, 170, 49, 107, 190, 40, 110, 47, 191, 136, 246, 146, 190, 56, 201, 6, 62, 197, 186, 116, 63, 254, 13, 38, 63, 7, 101, 66, 62, 173, 94, 205, 61, 248, 142, 214, 61, 11, 237, 53, 62, 248, 144, 121, 63, 55, 178, 199, 190, 210, 141, 27, 62, 84, 163, 88, 63, 147, 200, 142, 62, 172, 231, 135, 58, 178, 208, 84, 191, 139, 39, 58, 191, 176, 253, 82, 189, 227, 208, 74, 190, 136, 182, 13, 191, 20, 154, 99, 62, 16, 59, 207, 62, 215, 251, 23, 191, 197, 209, 34, 62, 169, 34, 47, 62, 192, 158, 82, 190, 176, 14, 12, 62, 23, 105, 91, 63, 67, 64, 130, 187, 41, 90, 233, 61, 25, 160, 107, 63, 146, 208, 232, 62, 248, 73, 22, 62, 122, 195, 74, 191, 23, 254, 251, 62, 147, 141, 236, 61, 98, 109, 11, 191, 34, 87, 3, 63, 19, 173, 168, 189, 24, 15, 74, 63, 190, 57, 218, 189, 24, 196, 126, 62, 254, 254, 95, 191, 122, 221, 86, 190, 244, 34, 180, 188, 241, 98, 136, 191, 185, 63, 9, 191, 104, 235, 178, 189, 216, 192, 235, 190, 96, 147, 233, 190, 61, 159, 55, 62, 90, 228, 54, 63, 180, 225, 225, 59, 30, 194, 71, 190, 29, 255, 105, 191, 23, 92, 182, 190, 165, 88, 166, 188, 152, 244, 122, 63, 192, 87, 233, 190, 191, 254, 17, 62, 238, 35, 26, 191, 242, 244, 6, 191, 255, 61, 129, 189, 8, 197, 70, 63, 198, 77, 29, 191, 144, 127, 152, 189, 82, 224, 220, 189, 226, 158, 38, 191, 165, 145, 18, 190, 45, 254, 186, 190, 174, 251, 160, 190, 40, 80, 66, 62, 154, 203, 88, 63, 204, 115, 25, 63, 100, 200, 150, 189, 96, 159, 35, 63, 198, 90, 29, 191, 151, 206, 109, 61, 98, 167, 94, 61, 1, 4, 193, 62, 106, 79, 23, 61, 59, 9, 116, 63, 77, 161, 21, 63, 201, 33, 5, 190, 201, 155, 145, 190, 57, 40, 61, 63, 65, 71, 65, 188, 7, 0, 15, 62, 214, 160, 134, 190, 252, 59, 65, 62, 88, 142, 77, 191, 88, 48, 9, 191, 45, 3, 38, 62, 42, 97, 209, 62, 133, 153, 32, 191, 199, 137, 252, 188, 36, 122, 25, 63, 251, 228, 143, 62, 117, 100, 94, 188, 247, 140, 132, 191, 191, 11, 30, 191, 40, 26, 85, 189, 70, 37, 186, 61, 247, 125, 85, 190, 72, 99, 28, 190, 212, 108, 93, 63, 66, 244, 38, 191, 187, 4, 190, 189, 32, 180, 245, 62, 110, 250, 43, 191, 89, 24, 23, 62, 14, 210, 134, 190, 79, 124, 55, 63, 225, 146, 174, 189, 8, 47, 85, 190, 35, 149, 146, 62, 39, 239, 90, 190, 153, 67, 84, 191, 137, 73, 205, 62, 161, 35, 216, 189, 111, 194, 51, 191, 128, 175, 200, 61, 135, 98, 43, 190, 234, 178, 125, 191, 252, 163, 220, 62, 109, 106, 12, 190, 173, 50, 41, 191, 70, 186, 234, 62, 240, 27, 64, 62, 66, 47, 50, 63, 158, 129, 20, 190, 6, 121, 218, 189, 210, 48, 134, 191, 34, 234, 139, 61, 9, 56, 240, 189, 25, 156, 136, 63, 240, 69, 238, 190, 0, 90, 144, 189, 54, 198, 28, 191, 204, 65, 25, 191, 96, 202, 104, 190, 187, 180, 140, 189, 56, 31, 18, 63, 215, 84, 10, 190, 150, 220, 26, 191, 122, 95, 25, 191, 200, 102, 89, 61, 188, 66, 96, 190, 40, 67, 28, 63, 153, 233, 0, 62, 19, 54, 37, 61, 66, 12, 251, 190, 151, 30, 54, 62, 132, 175, 41, 63, 70, 212, 223, 61, 31, 17, 129, 62, 124, 228, 93, 191, 95, 68, 150, 62, 142, 200, 157, 189, 22, 243, 80, 191, 238, 244, 12, 62, 227, 195, 139, 61, 147, 165, 102, 191, 169, 3, 27, 63, 226, 138, 109, 62, 66, 96, 37, 61, 49, 49, 29, 63, 107, 85, 153, 61, 241, 56, 26, 63, 48, 107, 14, 63, 56, 194, 141, 186, 218, 212, 62, 63, 119, 207, 247, 190, 252, 212, 11, 190, 21, 93, 68, 63, 184, 83, 161, 62, 230, 224, 11, 190, 162, 209, 109, 191, 92, 53, 129, 62, 203, 185, 55, 189, 249, 95, 90, 191, 148, 159, 171, 189, 188, 161, 170, 189, 88, 17, 138, 191, 236, 244, 47, 63, 28, 211, 198, 189, 104, 80, 172, 62, 253, 70, 155, 190, 216, 175, 109, 62, 58, 85, 64, 63, 3, 11, 71, 62, 67, 127, 78, 189, 208, 227, 136, 63, 16, 71, 36, 63, 192, 202, 72, 62, 198, 48, 224, 61, 79, 6, 227, 190, 242, 54, 5, 190, 114, 107, 36, 191, 202, 179, 21, 63, 63, 216, 83, 190, 131, 207, 200, 62, 112, 196, 27, 62, 146, 33, 85, 62, 239, 8, 106, 63, 102, 180, 20, 191, 47, 172, 112, 62, 191, 39, 199, 189, 130, 54, 216, 190, 115, 136, 131, 62, 243, 112, 22, 191, 53, 42, 5, 63, 149, 164, 41, 61, 194, 185, 0, 191, 31, 8, 157, 62, 104, 255, 248, 189, 188, 199, 76, 63, 173, 136, 135, 62, 242, 125, 12, 62, 240, 192, 119, 63, 174, 146, 22, 191, 236, 66, 68, 190, 124, 172, 113, 190, 4, 210, 164, 190, 132, 231, 79, 189, 34, 61, 126, 191, 152, 227, 27, 191, 236, 74, 100, 190, 50, 130, 47, 190, 62, 87, 123, 62, 203, 177, 86, 190, 84, 85, 100, 63, 235, 82, 55, 63, 146, 230, 203, 61, 87, 51, 210, 61, 199, 188, 21, 63, 164, 161, 105, 190, 136, 238, 146, 62, 187, 173, 228, 189, 4, 56, 219, 189, 178, 236, 136, 63, 193, 201, 41, 189, 106, 151, 254, 189, 98, 87, 136, 63, 251, 66, 235, 62, 180, 56, 150, 60, 78, 153, 95, 63, 152, 128, 228, 189, 121, 4, 89, 62, 68, 101, 108, 63, 156, 18, 68, 190, 167, 242, 43, 190, 218, 194, 123, 63, 90, 28, 51, 63, 212, 249, 91, 189, 90, 241, 175, 190, 7, 207, 181, 189, 1, 239, 74, 187, 253, 30, 108, 191, 182, 31, 3, 63, 171, 148, 137, 61, 225, 69, 4, 63, 112, 211, 23, 63, 39, 5, 82, 62, 205, 0, 178, 62, 59, 136, 28, 191, 174, 11, 232, 189, 116, 91, 222, 189, 230, 246, 181, 188, 114, 198, 99, 61, 165, 195, 108, 191, 190, 79, 7, 191, 92, 251, 58, 62, 175, 31, 212, 62, 36, 118, 33, 191, 121, 85, 82, 62, 152, 132, 47, 190, 33, 161, 199, 190, 162, 81, 106, 190, 234, 248, 56, 63, 67, 161, 192, 190, 74, 93, 58, 62, 64, 89, 78, 63, 251, 1, 204, 189, 139, 24, 128, 62, 163, 121, 92, 191, 252, 29, 145, 62, 100, 169, 34, 59, 132, 82, 83, 63, 243, 207, 43, 191, 102, 231, 207, 61, 255, 120, 197, 62, 23, 209, 14, 63, 4, 128, 129, 61, 70, 34, 55, 63, 231, 159, 152, 189, 252, 71, 169, 61, 185, 237, 139, 191, 186, 78, 97, 62, 200, 51, 78, 190, 189, 185, 106, 63, 203, 191, 26, 63, 16, 122, 97, 190, 156, 199, 133, 59, 190, 63, 196, 190, 226, 92, 57, 62, 92, 162, 76, 63, 245, 99, 211, 61, 48, 224, 150, 189, 160, 188, 138, 191, 50, 61, 210, 190, 27, 75, 48, 62, 142, 118, 72, 63, 156, 77, 15, 191, 140, 251, 48, 189, 16, 171, 207, 62, 101, 26, 246, 190, 161, 118, 73, 190, 57, 0, 35, 191, 208, 72, 227, 190, 121, 119, 85, 62, 105, 244, 49, 191, 68, 8, 52, 191, 201, 85, 253, 61, 126, 53, 213, 189, 74, 79, 144, 62, 120, 116, 163, 61, 99, 98, 81, 191, 122, 150, 33, 62, 79, 123, 38, 190, 220, 71, 99, 191, 111, 24, 41, 63, 1, 207, 46, 62, 111, 228, 73, 62, 90, 225, 26, 191, 138, 177, 51, 190, 141, 145, 223, 62, 72, 228, 13, 190, 112, 222, 102, 62, 90, 92, 98, 63, 116, 89, 182, 62, 197, 167, 86, 62, 1, 194, 52, 63, 98, 85, 122, 190, 152, 77, 172, 189, 182, 245, 130, 191, 30, 97, 227, 190, 254, 13, 98, 62, 53, 54, 20, 191, 172, 76, 17, 63, 212, 235, 94, 190, 134, 249, 157, 62, 148, 59, 211, 62, 203, 36, 243, 61, 242, 69, 45, 191, 186, 14, 197, 62, 194, 206, 61, 62, 160, 132, 46, 63, 17, 226, 68, 62, 147, 48, 9, 190, 241, 19, 96, 191, 179, 124, 39, 63, 167, 64, 67, 190, 181, 194, 109, 188, 222, 186, 245, 190, 120, 229, 124, 62, 238, 10, 255, 190, 56, 156, 28, 63, 138, 30, 179, 189, 138, 199, 8, 190, 25, 131, 158, 62, 233, 35, 210, 61, 40, 222, 74, 191, 214, 248, 17, 191, 145, 81, 22, 62, 94, 85, 26, 191, 86, 5, 180, 61, 231, 214, 205, 61, 62, 38, 136, 63, 125, 2, 27, 63, 202, 178, 108, 190, 241, 113, 169, 61, 250, 197, 123, 189, 220, 97, 96, 190, 233, 110, 106, 191, 86, 184, 21, 191, 106, 18, 174, 61, 16, 127, 141, 62, 248, 133, 58, 190, 187, 215, 157, 61, 218, 149, 136, 191, 68, 40, 18, 63, 139, 210, 42, 190, 251, 61, 172, 62, 16, 186, 44, 191, 66, 12, 41, 190, 168, 47, 170, 189, 228, 223, 81, 62, 157, 215, 34, 190, 174, 228, 93, 191, 49, 116, 45, 190, 112, 87, 46, 62, 121, 229, 118, 63, 31, 7, 156, 62, 150, 233, 3, 190, 19, 11, 77, 191, 207, 230, 171, 62, 247, 84, 106, 190, 188, 161, 64, 191, 167, 250, 57, 190, 245, 175, 86, 62, 29, 129, 87, 63, 210, 247, 28, 191, 6, 167, 144, 61, 62, 26, 128, 189, 254, 200, 248, 190, 82, 225, 103, 190, 186, 42, 12, 191, 168, 31, 227, 62, 28, 115, 118, 189, 106, 102, 39, 191, 208, 229, 89, 189, 51, 34, 254, 189, 132, 66, 107, 191, 164, 19, 224, 62, 64, 23, 80, 61, 74, 28, 40, 191, 194, 138, 191, 189, 94, 239, 78, 61, 248, 35, 140, 63, 125, 74, 30, 63, 122, 203, 198, 61, 210, 45, 13, 63, 56, 235, 27, 191, 48, 203, 194, 189, 230, 123, 41, 190, 110, 125, 236, 190, 200, 252, 77, 62, 213, 255, 40, 63, 120, 238, 163, 190, 63, 70, 9, 62, 94, 20, 113, 191, 135, 75, 29, 191, 28, 235, 93, 190, 22, 231, 81, 62, 44, 32, 15, 63, 169, 73, 235, 189, 100, 192, 42, 63, 47, 155, 24, 63, 235, 251, 78, 190, 32, 138, 61, 62, 33, 175, 23, 190, 236, 125, 6, 60, 199, 238, 102, 63, 6, 30, 3, 61, 56, 196, 30, 62, 12, 103, 130, 63, 237, 243, 57, 63, 235, 212, 177, 189, 48, 170, 140, 61, 207, 104, 26, 191, 141, 49, 97, 190, 110, 173, 231, 188, 60, 231, 30, 63, 4, 113, 45, 190, 193, 140, 210, 62, 153, 197, 26, 191, 228, 227, 221, 189, 111, 105, 70, 190, 141, 161, 60, 191, 143, 56, 115, 189, 11, 82, 10, 61, 158, 139, 110, 62, 254, 157, 229, 61, 225, 19, 90, 191, 222, 196, 25, 62, 164, 230, 4, 62, 233, 53, 133, 191, 128, 109, 47, 191, 40, 244, 199, 189, 219, 216, 176, 62, 90, 159, 44, 191, 189, 134, 202, 61, 194, 124, 193, 62, 186, 187, 204, 62, 3, 83, 67, 62, 224, 17, 73, 191, 18, 33, 183, 61, 54, 172, 250, 61, 30, 22, 104, 191, 127, 246, 246, 62, 121, 136, 82, 62, 8, 31, 35, 191, 205, 33, 179, 190, 190, 178, 77, 190, 131, 232, 76, 191, 99, 40, 45, 191, 201, 119, 231, 189, 179, 42, 176, 62, 140, 26, 223, 190, 178, 184, 136, 62, 178, 41, 6, 191, 110, 28, 42, 61, 135, 142, 218, 60, 233, 245, 108, 191, 156, 107, 25, 63, 30, 70, 235, 189, 100, 149, 18, 191, 235, 206, 7, 63, 4, 187, 84, 62, 17, 192, 10, 191, 1, 191, 1, 191, 131, 120, 3, 62, 92, 172, 58, 63, 11, 14, 96, 62, 179, 190, 250, 189, 204, 57, 93, 63, 236, 237, 61, 191, 216, 74, 137, 60, 40, 160, 159, 189, 8, 136, 25, 63, 192, 219, 200, 189, 141, 181, 98, 62, 25, 221, 132, 190, 172, 224, 248, 188, 173, 91, 89, 191, 191, 76, 92, 190, 186, 111, 215, 61, 158, 78, 130, 63, 172, 99, 95, 62, 29, 222, 95, 190, 114, 20, 88, 191, 245, 118, 83, 188, 56, 92, 107, 190, 237, 34, 103, 63, 160, 128, 178, 190, 80, 89, 15, 62, 125, 44, 102, 63, 66, 224, 14, 191, 54, 125, 63, 62, 250, 249, 163, 190, 177, 37, 23, 63, 210, 123, 51, 190, 182, 110, 115, 190, 218, 185, 176, 62, 204, 228, 20, 60, 24, 29, 126, 191, 131, 226, 11, 63, 164, 202, 42, 61, 248, 0, 219, 62, 12, 154, 247, 62, 228, 143, 156, 61, 207, 183, 81, 63, 54, 56, 220, 190, 7, 196, 144, 60, 172, 212, 43, 191, 129, 200, 252, 62, 72, 73, 36, 61, 198, 24, 14, 63, 68, 136, 54, 63, 251, 25, 196, 61, 186, 199, 82, 190, 248, 99, 36, 63, 107, 74, 205, 61, 42, 79, 253, 190, 157, 201, 11, 62, 152, 41, 209, 61, 81, 168, 101, 191, 43, 147, 1, 191, 41, 15, 75, 62, 238, 64, 28, 191, 156, 87, 62, 191, 212, 30, 150, 188, 94, 52, 69, 61, 245, 128, 10, 63, 194, 117, 174, 188, 178, 72, 234, 62, 144, 24, 216, 190, 164, 190, 101, 62, 204, 122, 41, 63, 242, 161, 30, 191, 178, 200, 10, 61, 96, 198, 225, 59, 219, 85, 177, 190, 229, 214, 39, 61, 249, 245, 68, 63, 114, 84, 109, 190, 245, 169, 40, 62, 200, 78, 120, 191, 139, 112, 11, 63, 228, 27, 0, 190, 72, 246, 218, 190, 84, 195, 190, 62, 233, 141, 44, 62, 0, 1, 86, 63, 70, 246, 58, 191, 198, 251, 143, 189, 190, 9, 213, 61, 243, 154, 211, 190, 47, 188, 59, 188, 92, 237, 111, 63, 150, 201, 178, 190, 136, 57, 91, 61, 55, 159, 67, 63, 24, 248, 23, 63, 204, 17, 104, 190, 152, 179, 20, 190, 40, 223, 61, 63, 188, 56, 206, 188, 27, 30, 106, 61, 68, 192, 20, 63, 78, 37, 15, 189, 74, 2, 173, 190, 18, 255, 26, 191, 69, 53, 106, 62, 219, 236, 32, 190, 27, 184, 149, 61, 14, 141, 167, 189, 253, 109, 138, 191, 132, 60, 60, 63, 204, 31, 76, 188, 7, 159, 60, 190, 239, 13, 139, 190, 65, 187, 7, 190, 34, 166, 119, 191, 63, 61, 51, 62, 42, 148, 81, 190, 109, 178, 110, 63, 67, 37, 181, 62, 180, 236, 236, 61, 160, 240, 63, 191, 182, 115, 74, 189, 129, 202, 204, 60, 236, 81, 108, 63, 114, 210, 27, 191, 39, 247, 18, 62, 72, 138, 242, 186, 84, 48, 26, 191, 145, 218, 69, 190, 102, 241, 14, 62, 84, 25, 25, 191, 185, 224, 40, 190, 187, 150, 238, 190, 48, 191, 20, 191, 112, 114, 62, 190, 21, 106, 241, 62, 246, 201, 160, 190, 34, 141, 147, 61, 104, 165, 125, 63, 114, 27, 24, 63, 44, 92, 2, 62, 192, 109, 90, 190, 104, 243, 24, 63, 207, 24, 111, 190, 177, 60, 45, 62, 249, 160, 162, 186, 92, 30, 181, 60, 92, 218, 142, 63, 170, 60, 43, 63, 134, 151, 2, 190, 190, 54, 165, 190, 92, 148, 7, 63, 16, 205, 81, 61, 202, 151, 242, 190, 209, 88, 28, 191, 22, 214, 19, 62, 33, 106, 250, 62, 52, 188, 62, 191, 128, 100, 69, 188, 138, 108, 37, 189, 208, 8, 205, 190, 86, 180, 68, 62, 179, 50, 72, 191, 222, 1, 4, 63, 28, 29, 114, 62, 138, 205, 244, 190, 218, 149, 28, 63, 42, 33, 92, 189, 177, 20, 50, 190, 230, 80, 9, 63, 217, 126, 20, 189, 150, 18, 68, 191, 108, 68, 4, 62, 103, 147, 160, 61, 28, 40, 103, 63, 180, 163, 234, 61, 73, 191, 63, 190, 172, 212, 102, 63, 62, 162, 23, 62, 204, 183, 229, 61, 20, 103, 133, 63, 214, 233, 75, 62, 64, 194, 235, 188, 85, 112, 137, 63, 188, 106, 228, 190, 64, 22, 254, 189, 23, 95, 35, 63, 240, 17, 37, 190, 209, 205, 93, 62, 157, 22, 101, 63, 251, 212, 203, 60, 170, 131, 118, 62, 162, 12, 104, 191, 205, 87, 196, 62, 2, 8, 213, 61, 0, 9, 55, 63, 232, 236, 31, 191, 180, 145, 111, 188, 42, 52, 28, 191, 34, 49, 182, 190, 10, 233, 74, 190, 122, 132, 82, 63, 189, 254, 6, 191, 27, 20, 58, 190, 7, 101, 28, 63, 116, 151, 90, 190, 182, 124, 214, 189, 244, 111, 94, 191, 22, 158, 59, 191, 18, 19, 129, 61, 129, 63, 174, 189, 52, 83, 15, 191, 80, 29, 82, 62, 204, 134, 146, 62, 155, 252, 47, 63, 13, 118, 202, 61, 251, 67, 169, 190, 239, 150, 48, 191, 88, 209, 28, 62, 50, 20, 41, 61, 35, 177, 199, 190, 102, 212, 57, 62, 12, 85, 74, 63, 12, 82, 61, 63, 219, 202, 179, 60, 190, 68, 195, 61, 84, 229, 11, 191, 219, 202, 115, 190, 139, 20, 194, 62, 219, 131, 86, 61, 117, 146, 62, 60, 4, 246, 142, 191, 104, 152, 27, 191, 46, 159, 23, 190, 198, 207, 252, 61, 124, 62, 187, 190, 143, 105, 69, 190, 24, 98, 76, 191, 241, 218, 173, 190, 148, 196, 126, 62, 234, 165, 57, 191, 30, 231, 12, 191, 226, 81, 62, 190, 231, 16, 8, 191, 94, 157, 17, 63, 130, 250, 24, 59, 66, 38, 57, 191, 86, 202, 54, 191, 153, 39, 199, 61, 118, 76, 51, 190, 209, 52, 26, 191, 132, 251, 99, 190, 192, 89, 232, 60, 99, 46, 105, 62, 34, 117, 8, 190, 7, 65, 128, 63, 80, 215, 22, 63, 148, 165, 242, 60, 226, 43, 44, 63, 154, 0, 8, 191, 237, 38, 138, 189, 63, 30, 245, 190, 121, 83, 187, 190, 33, 114, 208, 189, 34, 249, 62, 63, 123, 3, 24, 191, 16, 34, 46, 62, 112, 11, 12, 190, 55, 177, 28, 63, 0, 188, 101, 62, 27, 96, 215, 61, 2, 146, 46, 191, 242, 125, 220, 61, 125, 252, 161, 62, 105, 92, 208, 190, 37, 226, 58, 62, 245, 151, 68, 63, 150, 21, 185, 62, 79, 216, 128, 62, 90, 145, 46, 191, 160, 108, 31, 62, 139, 15, 207, 61, 219, 109, 99, 63, 41, 144, 40, 191, 36, 132, 51, 190, 13, 153, 77, 62, 22, 54, 31, 62, 207, 161, 102, 190, 232, 190, 94, 191, 226, 224, 30, 63, 114, 21, 40, 190, 235, 121, 219, 62, 186, 130, 56, 63, 48, 43, 206, 189, 172, 247, 0, 61, 9, 77, 17, 63, 205, 166, 125, 60, 18, 208, 191, 62, 172, 56, 29, 63, 170, 62, 223, 189, 206, 22, 149, 189, 221, 118, 82, 190, 136, 53, 54, 61, 103, 132, 95, 191, 116, 213, 154, 62, 144, 73, 16, 62, 47, 159, 73, 63, 232, 127, 210, 190, 199, 102, 225, 61, 134, 30, 46, 63, 212, 125, 252, 190, 107, 132, 13, 190, 72, 164, 12, 63, 100, 235, 31, 62, 210, 229, 128, 62, 122, 221, 86, 191, 102, 55, 136, 190, 60, 250, 86, 189, 48, 85, 87, 191, 109, 64, 234, 190, 11, 183, 26, 189, 64, 225, 33, 191, 60, 85, 2, 191, 42, 160, 22, 189, 102, 97, 78, 191, 6, 92, 48, 191, 109, 114, 5, 189, 74, 250, 212, 190, 118, 252, 63, 190, 107, 26, 60, 190, 32, 202, 117, 63, 4, 75, 205, 190, 232, 5, 186, 189, 178, 87, 52, 63, 30, 221, 22, 63, 72, 107, 185, 189, 220, 239, 36, 63, 81, 126, 46, 63, 0, 33, 40, 62, 26, 203, 248, 185, 170, 218, 2, 63, 54, 47, 37, 62, 240, 197, 48, 191, 238, 97, 255, 62, 75, 84, 50, 190, 171, 187, 46, 63, 104, 219, 228, 62, 194, 145, 215, 61, 220, 47, 85, 63, 204, 73, 163, 190, 32, 14, 209, 189, 28, 95, 121, 63, 92, 36, 255, 61, 211, 188, 252, 61, 30, 88, 102, 191, 245, 64, 55, 188, 93, 216, 102, 62, 60, 168, 104, 63, 118, 230, 10, 191, 211, 227, 250, 61, 150, 233, 47, 191, 69, 164, 242, 190, 86, 250, 56, 61, 240, 238, 89, 191, 204, 130, 4, 63, 16, 100, 200, 61, 57, 242, 63, 63, 2, 125, 60, 63, 43, 135, 6, 189, 71, 10, 233, 189, 196, 131, 31, 191, 167, 188, 182, 189, 158, 195, 17, 63, 85, 200, 30, 63, 184, 59, 54, 189, 9, 198, 99, 61, 179, 241, 208, 190, 130, 26, 72, 190, 196, 16, 45, 191, 112, 189, 165, 190, 239, 186, 121, 61, 194, 70, 126, 191, 238, 13, 10, 191, 243, 255, 70, 62, 212, 219, 14, 191, 208, 117, 57, 191, 227, 63, 76, 61, 173, 8, 103, 62, 57, 74, 197, 62, 157, 170, 83, 190, 134, 234, 50, 191, 220, 29, 233, 190, 232, 205, 47, 62, 58, 221, 58, 63, 164, 182, 27, 63, 196, 47, 51, 190, 178, 148, 219, 62, 233, 129, 240, 62, 204, 139, 81, 60, 198, 126, 26, 63, 180, 226, 45, 63, 107, 249, 37, 62, 18, 151, 128, 61, 51, 63, 8, 191, 168, 111, 34, 62, 218, 207, 33, 63, 245, 253, 191, 190, 65, 247, 200, 188, 158, 187, 118, 63, 92, 173, 216, 190, 189, 10, 18, 62, 53, 76, 82, 63, 108, 166, 9, 63, 203, 31, 18, 62, 10, 33, 214, 62, 52, 195, 126, 190, 84, 102, 41, 62, 2, 172, 111, 63, 159, 41, 205, 62, 177, 222, 46, 62, 25, 223, 43, 191, 194, 19, 169, 190, 105, 92, 2, 190, 161, 252, 108, 191, 16, 230, 39, 191, 192, 146, 55, 190, 23, 197, 20, 190, 180, 104, 12, 63, 177, 240, 104, 190, 173, 199, 201, 190, 239, 254, 171, 62, 174, 216, 116, 62, 105, 42, 56, 191, 35, 113, 24, 191, 142, 21, 69, 62, 90, 47, 232, 60, 132, 213, 134, 189, 229, 0, 137, 189, 27, 85, 108, 191, 194, 157, 47, 191, 166, 83, 38, 189, 148, 111, 216, 190, 160, 250, 213, 62, 71, 136, 66, 190, 7, 154, 42, 191, 182, 185, 24, 191, 224, 90, 113, 190, 67, 45, 164, 189, 104, 5, 7, 191, 134, 67, 85, 189, 90, 233, 71, 63, 28, 164, 199, 190, 14, 176, 179, 61, 138, 172, 53, 191, 134, 29, 182, 62, 92, 39, 7, 62, 160, 174, 62, 191, 0, 150, 239, 190, 130, 70, 73, 62, 213, 157, 47, 191, 51, 36, 33, 63, 66, 148, 66, 190, 220, 253, 127, 190, 130, 213, 167, 62, 109, 93, 234, 189, 140, 194, 72, 191, 210, 245, 223, 190, 122, 101, 145, 62, 12, 42, 234, 190, 46, 132, 233, 62, 70, 224, 109, 62, 84, 227, 12, 191, 129, 223, 36, 63, 93, 59, 40, 62, 253, 191, 171, 190, 211, 179, 25, 63, 139, 244, 53, 62, 69, 107, 238, 59, 17, 126, 55, 62, 14, 112, 154, 189, 107, 103, 99, 63, 248, 208, 17, 63, 172, 188, 180, 61, 106, 20, 47, 191, 12, 211, 14, 191, 240, 66, 1, 190, 202, 223, 199, 190, 165, 75, 11, 191, 94, 70, 75, 62, 92, 135, 9, 191, 25, 49, 26, 63, 238, 140, 38, 62, 236, 251, 0, 61, 150, 3, 227, 62, 16, 35, 28, 62, 146, 130, 30, 191, 36, 133, 45, 191, 95, 196, 156, 189, 197, 11, 220, 62, 215, 167, 204, 60, 50, 247, 123, 61, 210, 120, 108, 191, 202, 159, 5, 191, 232, 37, 46, 190, 122, 44, 38, 63, 249, 162, 30, 60, 201, 115, 16, 188, 42, 77, 111, 191, 174, 73, 94, 62, 136, 58, 99, 190, 146, 139, 91, 191, 152, 11, 31, 191, 66, 239, 65, 190, 199, 87, 149, 190, 42, 203, 35, 62, 172, 29, 80, 62, 46, 16, 113, 191, 142, 68, 18, 63, 170, 184, 44, 62, 137, 179, 141, 190, 42, 157, 132, 190, 77, 81, 239, 186, 149, 63, 134, 191, 234, 3, 236, 62, 70, 138, 18, 62, 124, 210, 73, 191, 131, 96, 6, 63, 56, 180, 90, 190, 47, 15, 4, 191, 68, 80, 24, 191, 232, 215, 94, 190, 248, 49, 154, 62, 127, 175, 240, 190, 156, 149, 205, 59, 32, 30, 27, 191, 184, 6, 28, 191, 121, 163, 0, 190, 234, 171, 254, 61, 24, 2, 57, 63, 85, 81, 69, 61, 228, 236, 116, 190, 182, 246, 52, 63, 202, 164, 227, 61, 228, 14, 15, 62, 238, 152, 17, 63, 212, 119, 17, 187, 165, 69, 192, 62, 12, 53, 3, 63, 194, 122, 77, 62, 88, 28, 18, 63, 162, 17, 36, 191, 41, 198, 9, 188, 87, 140, 17, 191, 62, 136, 198, 190, 181, 145, 95, 62, 45, 216, 41, 63, 184, 68, 30, 63, 98, 63, 51, 190, 30, 178, 192, 190, 223, 217, 5, 191, 207, 32, 254, 187, 190, 162, 76, 191, 12, 214, 242, 62, 48, 41, 230, 61, 70, 98, 78, 191, 58, 248, 8, 61, 178, 116, 242, 61, 194, 87, 106, 63, 29, 127, 15, 190, 10, 171, 231, 188, 124, 33, 105, 191, 160, 104, 29, 191, 26, 153, 137, 189, 96, 134, 27, 191, 255, 217, 30, 191, 189, 185, 70, 188, 148, 26, 64, 61, 187, 224, 17, 191, 162, 79, 116, 190, 178, 91, 142, 62, 152, 18, 187, 189, 68, 35, 163, 61, 81, 184, 139, 191, 214, 196, 251, 189, 76, 208, 101, 190, 213, 192, 100, 191, 72, 196, 139, 190, 114, 151, 252, 61, 210, 166, 81, 191, 56, 252, 194, 62, 232, 99, 124, 189, 143, 86, 113, 191, 251, 141, 230, 190, 109, 241, 136, 62, 83, 121, 10, 191, 14, 241, 25, 63, 169, 23, 7, 190, 125, 138, 13, 63, 24, 227, 230, 190, 85, 162, 124, 62, 81, 221, 9, 63, 54, 224, 17, 191, 193, 255, 122, 62, 128, 92, 72, 62, 112, 136, 32, 191, 119, 33, 2, 62, 170, 233, 242, 62, 32, 175, 19, 191, 18, 27, 142, 61, 86, 53, 165, 190, 222, 225, 42, 190, 15, 126, 133, 189, 254, 249, 100, 191, 20, 176, 159, 189, 188, 63, 247, 61, 116, 146, 104, 191, 242, 84, 196, 190, 89, 240, 246, 60, 144, 60, 115, 63, 254, 79, 6, 191, 4, 241, 230, 189, 216, 206, 59, 63, 222, 236, 30, 191, 110, 228, 100, 62, 53, 148, 93, 188, 84, 122, 16, 191, 66, 22, 65, 190, 56, 102, 248, 190, 178, 139, 3, 62, 176, 212, 226, 61, 199, 48, 136, 191, 240, 245, 149, 62, 89, 125, 5, 61, 16, 203, 130, 63, 208, 242, 206, 62, 41, 136, 182, 61, 194, 28, 49, 191, 54, 181, 43, 61, 132, 133, 96, 187, 116, 185, 142, 191, 97, 32, 35, 191, 196, 223, 70, 190, 64, 127, 69, 190, 190, 147, 222, 190, 87, 200, 139, 62, 115, 235, 0, 191, 66, 168, 7, 191, 162, 229, 90, 62, 9, 108, 0, 63, 104, 181, 5, 62, 42, 105, 89, 62, 19, 179, 93, 191, 52, 247, 199, 62, 203, 193, 2, 60, 49, 180, 56, 191, 176, 141, 246, 190, 138, 225, 114, 62, 168, 252, 255, 62, 0, 26, 24, 191, 85, 167, 243, 189, 58, 212, 118, 190, 250, 89, 57, 63, 44, 1, 81, 189, 189, 65, 107, 62, 8, 138, 19, 191, 106, 92, 58, 62, 206, 1, 113, 190, 251, 123, 38, 63, 110, 141, 24, 190, 248, 208, 179, 190, 78, 166, 24, 60, 7, 247, 43, 190, 127, 169, 131, 63, 228, 80, 199, 62, 54, 110, 29, 189, 8, 38, 58, 63, 144, 83, 222, 62, 102, 68, 97, 190, 122, 250, 40, 191, 146, 186, 38, 191, 113, 25, 124, 61, 230, 86, 2, 63, 109, 175, 176, 62, 187, 35, 217, 189, 147, 28, 111, 191, 163, 239, 9, 63, 245, 229, 111, 190, 0, 152, 215, 62, 92, 243, 79, 190, 230, 177, 12, 62, 10, 57, 129, 191, 152, 15, 227, 189, 247, 148, 179, 189, 204, 38, 106, 63, 8, 46, 25, 63, 77, 12, 112, 190, 98, 179, 253, 61, 24, 88, 25, 63, 38, 153, 42, 62, 10, 17, 136, 61, 78, 50, 13, 63, 132, 45, 0, 190, 136, 21, 39, 191, 10, 112, 33, 191, 233, 71, 29, 61, 222, 243, 21, 191, 239, 11, 175, 188, 48, 24, 161, 61, 92, 21, 141, 191, 129, 112, 134, 62, 17, 117, 121, 189, 245, 200, 87, 191, 240, 230, 18, 63, 101, 27, 61, 60, 67, 77, 53, 63, 18, 14, 27, 191, 50, 100, 47, 190, 173, 195, 3, 190, 175, 191, 223, 62, 21, 157, 94, 62, 236, 10, 42, 63, 64, 56, 32, 63, 183, 199, 66, 62, 36, 35, 148, 190, 67, 230, 40, 63, 112, 221, 122, 188, 102, 109, 4, 63, 46, 85, 50, 190, 82, 249, 11, 190, 191, 0, 131, 63, 187, 91, 226, 62, 232, 143, 4, 62, 187, 101, 33, 63, 201, 27, 138, 186, 170, 153, 224, 189, 118, 158, 109, 191, 34, 180, 48, 63, 162, 210, 20, 189, 48, 52, 211, 62, 64, 202, 7, 191, 98, 125, 49, 190, 166, 26, 32, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ),
- "format": "RGBFloat",
- "height": 1,
- "mipmaps": false,
- "width": 2048
- }
- [sub_resource type="ImageTexture" id=132]
- flags = 4
- flags = 4
- image = SubResource( 173 )
- size = Vector2( 2048, 1 )
- [sub_resource type="ParticlesMaterial" id=133]
- emission_shape = 3
- emission_point_texture = SubResource( 132 )
- emission_point_count = 512
- gravity = Vector3( 0, 0, 0 )
- radial_accel = -0.2
- scale = 10.0
- color_ramp = SubResource( 130 )
- [sub_resource type="Shader" id=134]
- code = "shader_type spatial;
- render_mode blend_mix,depth_draw_alpha_prepass,cull_disabled,unshaded;
- uniform sampler2D texture_albedo : hint_albedo;
- const vec3 spos=vec3(0.316,0.585,2.902);
- void vertex() {
- mat4 mat_world = mat4(normalize(CAMERA_MATRIX[0])*length(WORLD_MATRIX[0]),normalize(CAMERA_MATRIX[1])*length(WORLD_MATRIX[0]),normalize(CAMERA_MATRIX[2])*length(WORLD_MATRIX[2]),WORLD_MATRIX[3]);
- MODELVIEW_MATRIX = INV_CAMERA_MATRIX * mat_world;
- //COLOR.a*=smoothstep(0.2,0.22,length(((WORLD_MATRIX[3].xyz-spos)*vec3(1.,1./1.5,1.)).xy));
- }
- void fragment() {
- vec4 col=texture(texture_albedo,UV);
- ALBEDO=clamp((COLOR.rgb/max(1.-col.a,0.001)),0.,10.);//+1.-max(col.a,1.-COLOR.a);
- ALPHA=col.a*COLOR.a;
- }
- "
- [sub_resource type="ShaderMaterial" id=135]
- render_priority = 51
- shader = SubResource( 134 )
- shader_param/texture_albedo = ExtResource( 27 )
- [sub_resource type="Gradient" id=136]
- offsets = PoolRealArray( 0, 0.211382, 0.398374, 0.577236, 0.747967, 1 )
- colors = PoolColorArray( 1, 0.27451, 0.101961, 0, 1, 0.27451, 0.101961, 1, 0.961914, 0.156515, 0.078907, 1, 0.166008, 0.101961, 0.988235, 1, 0.129412, 0.101961, 0.988235, 1, 0.129412, 0.101961, 0.988235, 0 )
- [sub_resource type="GradientTexture" id=137]
- gradient = SubResource( 136 )
- [sub_resource type="Image" id=174]
- data = {
- "data": PoolByteArray( 159, 213, 191, 190, 176, 53, 26, 191, 122, 63, 33, 61, 243, 154, 143, 62, 148, 77, 237, 62, 184, 92, 146, 61, 246, 34, 241, 190, 96, 255, 244, 189, 143, 68, 116, 61, 54, 62, 151, 190, 168, 96, 14, 191, 12, 92, 118, 189, 52, 206, 34, 190, 178, 28, 133, 62, 90, 8, 188, 189, 98, 137, 207, 189, 52, 10, 63, 63, 104, 254, 87, 61, 144, 58, 129, 190, 74, 48, 6, 63, 183, 121, 141, 189, 251, 147, 76, 62, 233, 229, 164, 61, 252, 118, 191, 61, 9, 191, 252, 189, 91, 90, 24, 63, 189, 185, 146, 189, 106, 227, 56, 190, 44, 244, 208, 62, 140, 126, 171, 61, 249, 52, 159, 190, 114, 30, 171, 62, 79, 56, 156, 189, 172, 183, 29, 189, 160, 144, 180, 62, 227, 127, 187, 61, 227, 165, 184, 61, 235, 182, 238, 62, 129, 194, 171, 189, 146, 67, 206, 62, 103, 127, 26, 63, 177, 152, 245, 60, 111, 215, 126, 189, 104, 108, 135, 62, 166, 249, 136, 189, 170, 32, 158, 188, 37, 146, 14, 191, 100, 32, 159, 189, 230, 67, 146, 190, 43, 158, 10, 190, 164, 42, 176, 61, 42, 132, 247, 61, 65, 254, 233, 190, 126, 52, 171, 61, 77, 75, 241, 62, 60, 219, 239, 190, 200, 100, 3, 61, 34, 133, 40, 62, 36, 171, 154, 190, 234, 103, 183, 61, 207, 202, 237, 61, 87, 248, 50, 63, 169, 153, 113, 61, 58, 188, 25, 190, 54, 37, 219, 190, 82, 250, 171, 61, 37, 176, 98, 189, 79, 15, 70, 63, 160, 2, 71, 189, 191, 112, 151, 62, 206, 223, 75, 190, 252, 202, 171, 61, 163, 201, 162, 190, 229, 233, 181, 190, 139, 49, 152, 61, 188, 70, 94, 62, 176, 225, 83, 191, 36, 143, 41, 188, 221, 52, 71, 62, 86, 195, 23, 191, 154, 75, 137, 189, 255, 3, 50, 60, 210, 9, 151, 190, 6, 116, 188, 60, 6, 156, 166, 60, 192, 77, 162, 62, 197, 226, 190, 61, 63, 218, 123, 190, 102, 180, 240, 62, 92, 142, 151, 189, 126, 82, 85, 62, 63, 18, 208, 190, 82, 128, 167, 61, 142, 220, 148, 190, 22, 215, 64, 191, 170, 123, 185, 60, 10, 86, 20, 62, 53, 144, 2, 63, 58, 9, 160, 189, 164, 73, 75, 190, 224, 251, 232, 190, 36, 2, 162, 189, 53, 23, 189, 61, 141, 64, 30, 191, 177, 32, 145, 61, 125, 219, 163, 190, 252, 70, 14, 63, 58, 117, 105, 61, 47, 62, 198, 62, 226, 227, 203, 62, 119, 157, 123, 61, 103, 97, 12, 191, 231, 214, 139, 189, 212, 154, 30, 189, 67, 226, 235, 189, 96, 143, 19, 63, 78, 193, 150, 189, 164, 250, 78, 190, 74, 118, 92, 190, 176, 191, 185, 61, 90, 71, 12, 63, 47, 220, 155, 190, 83, 107, 170, 188, 98, 85, 4, 62, 154, 255, 4, 63, 92, 207, 159, 189, 1, 83, 31, 190, 68, 148, 70, 191, 197, 165, 43, 61, 102, 128, 23, 191, 219, 26, 150, 60, 111, 237, 65, 188, 170, 181, 132, 62, 22, 52, 15, 63, 152, 21, 132, 189, 91, 214, 15, 63, 192, 145, 138, 190, 212, 219, 68, 60, 60, 30, 127, 190, 45, 183, 49, 62, 109, 206, 180, 61, 214, 177, 150, 188, 136, 195, 151, 190, 147, 234, 192, 187, 152, 11, 194, 190, 97, 246, 12, 191, 85, 219, 61, 189, 172, 204, 231, 62, 144, 134, 236, 190, 30, 209, 36, 61, 213, 90, 18, 61, 184, 91, 51, 191, 130, 27, 123, 61, 110, 66, 62, 62, 131, 123, 3, 191, 63, 4, 154, 61, 82, 109, 23, 62, 22, 181, 42, 63, 7, 28, 123, 61, 192, 118, 244, 61, 48, 10, 229, 190, 108, 106, 172, 61, 11, 170, 239, 61, 52, 227, 125, 190, 234, 245, 191, 61, 30, 173, 228, 190, 181, 55, 187, 62, 12, 188, 83, 189, 166, 119, 146, 190, 39, 198, 242, 62, 80, 82, 143, 61, 90, 21, 146, 189, 172, 213, 25, 191, 24, 124, 149, 61, 128, 4, 207, 62, 198, 107, 4, 63, 165, 211, 54, 189, 104, 7, 151, 62, 134, 220, 36, 63, 89, 163, 70, 61, 1, 242, 192, 62, 81, 237, 211, 190, 115, 192, 124, 61, 47, 77, 162, 190, 169, 197, 157, 190, 146, 182, 157, 61, 86, 12, 167, 190, 120, 216, 18, 189, 204, 33, 171, 189, 151, 49, 4, 190, 127, 129, 84, 62, 252, 65, 118, 189, 182, 4, 177, 190, 249, 101, 200, 62, 145, 105, 140, 61, 54, 130, 172, 59, 91, 224, 95, 191, 66, 248, 181, 60, 10, 159, 2, 63, 43, 85, 230, 190, 227, 243, 31, 188, 86, 230, 83, 61, 203, 187, 69, 191, 199, 140, 72, 61, 210, 6, 239, 189, 69, 152, 42, 191, 20, 116, 129, 189, 18, 83, 1, 191, 149, 164, 235, 190, 136, 137, 65, 60, 224, 155, 14, 191, 58, 55, 130, 188, 221, 48, 20, 61, 182, 28, 137, 62, 252, 54, 53, 191, 55, 144, 40, 61, 218, 117, 23, 63, 71, 216, 252, 188, 135, 134, 47, 60, 54, 239, 234, 188, 206, 243, 53, 191, 34, 17, 118, 189, 196, 59, 50, 62, 174, 213, 209, 61, 141, 205, 139, 189, 155, 200, 0, 62, 191, 211, 79, 63, 75, 121, 22, 189, 59, 38, 137, 62, 130, 12, 81, 190, 204, 3, 176, 61, 27, 85, 7, 62, 73, 246, 43, 191, 146, 78, 124, 189, 142, 43, 200, 190, 180, 173, 30, 191, 195, 1, 242, 60, 202, 120, 147, 62, 58, 65, 34, 191, 74, 9, 83, 189, 172, 62, 145, 62, 177, 50, 26, 62, 10, 250, 175, 189, 203, 171, 237, 190, 208, 221, 172, 189, 165, 210, 123, 61, 104, 230, 238, 62, 129, 20, 48, 190, 50, 137, 113, 189, 70, 204, 59, 190, 108, 137, 192, 61, 153, 94, 52, 61, 210, 28, 220, 62, 130, 178, 211, 190, 178, 97, 83, 189, 30, 204, 244, 190, 213, 92, 135, 62, 201, 226, 83, 189, 64, 117, 250, 62, 206, 2, 12, 189, 132, 200, 105, 61, 21, 34, 172, 62, 119, 22, 148, 190, 143, 159, 154, 61, 51, 227, 120, 62, 133, 59, 138, 190, 161, 181, 175, 189, 8, 180, 197, 190, 219, 245, 237, 190, 75, 195, 100, 189, 186, 215, 142, 190, 160, 85, 214, 190, 90, 32, 153, 61, 103, 181, 176, 62, 236, 98, 211, 62, 10, 208, 136, 189, 203, 220, 159, 190, 50, 114, 178, 188, 74, 220, 173, 189, 7, 124, 213, 62, 83, 238, 243, 189, 71, 159, 144, 189, 251, 11, 58, 190, 111, 253, 28, 191, 73, 207, 134, 61, 217, 223, 57, 190, 40, 231, 216, 62, 15, 116, 169, 61, 9, 195, 209, 190, 83, 125, 99, 190, 197, 120, 139, 189, 176, 240, 136, 189, 107, 44, 4, 63, 180, 99, 165, 61, 132, 109, 156, 189, 206, 186, 34, 191, 181, 231, 141, 61, 65, 205, 42, 62, 240, 115, 39, 191, 134, 76, 125, 61, 176, 115, 50, 62, 12, 67, 136, 190, 160, 172, 185, 61, 58, 12, 187, 62, 61, 37, 13, 63, 74, 163, 74, 61, 153, 3, 211, 187, 245, 152, 61, 191, 215, 81, 103, 61, 226, 19, 246, 61, 74, 133, 129, 190, 134, 123, 191, 189, 172, 186, 137, 62, 137, 248, 247, 190, 222, 99, 145, 189, 24, 120, 136, 62, 158, 44, 252, 62, 76, 139, 144, 189, 81, 178, 186, 189, 215, 254, 128, 190, 161, 25, 193, 189, 203, 129, 239, 190, 142, 212, 2, 191, 222, 113, 195, 60, 82, 88, 181, 62, 143, 35, 229, 62, 118, 130, 127, 61, 251, 154, 83, 189, 165, 239, 87, 63, 92, 125, 254, 188, 196, 190, 234, 190, 84, 207, 215, 190, 134, 198, 47, 189, 124, 135, 71, 190, 93, 168, 46, 63, 148, 127, 102, 189, 68, 129, 38, 60, 197, 212, 2, 191, 106, 238, 167, 61, 4, 56, 133, 60, 53, 159, 73, 191, 186, 19, 64, 189, 24, 208, 153, 190, 46, 144, 125, 190, 168, 43, 167, 189, 172, 153, 238, 190, 203, 13, 13, 191, 61, 63, 214, 187, 17, 139, 251, 190, 194, 252, 9, 190, 118, 247, 97, 61, 62, 61, 58, 190, 222, 149, 48, 189, 122, 3, 157, 61, 80, 106, 214, 190, 115, 25, 230, 62, 72, 86, 77, 61, 135, 34, 5, 63, 114, 140, 131, 61, 44, 30, 67, 189, 184, 237, 11, 190, 87, 215, 97, 62, 113, 34, 192, 61, 16, 138, 63, 187, 64, 253, 89, 63, 153, 9, 252, 60, 210, 132, 229, 190, 70, 54, 29, 190, 5, 151, 129, 189, 172, 118, 6, 191, 35, 52, 117, 190, 145, 43, 32, 61, 86, 251, 238, 62, 88, 174, 10, 191, 21, 62, 72, 60, 125, 235, 72, 62, 237, 255, 192, 59, 2, 160, 13, 189, 104, 150, 49, 189, 226, 233, 141, 62, 202, 70, 193, 61, 6, 220, 96, 62, 140, 66, 49, 191, 228, 105, 81, 61, 156, 130, 242, 189, 238, 182, 79, 190, 50, 9, 173, 61, 32, 2, 127, 190, 112, 228, 147, 61, 103, 201, 184, 61, 5, 202, 216, 62, 76, 63, 42, 59, 223, 5, 145, 189, 130, 175, 183, 190, 166, 224, 16, 63, 232, 86, 70, 61, 230, 90, 62, 62, 16, 223, 21, 63, 234, 208, 140, 61, 177, 65, 49, 190, 12, 4, 42, 191, 140, 109, 118, 61, 217, 93, 219, 190, 129, 76, 200, 62, 221, 3, 94, 189, 144, 25, 154, 62, 142, 36, 251, 62, 111, 216, 135, 61, 123, 19, 50, 62, 28, 47, 180, 61, 232, 123, 158, 61, 171, 160, 172, 189, 98, 138, 0, 191, 115, 153, 166, 61, 246, 93, 23, 190, 246, 80, 43, 191, 152, 218, 121, 61, 125, 205, 182, 189, 211, 182, 197, 190, 74, 44, 181, 189, 73, 212, 240, 190, 236, 72, 163, 62, 127, 184, 75, 61, 120, 75, 180, 62, 156, 229, 130, 62, 24, 163, 153, 189, 224, 167, 108, 190, 18, 222, 45, 63, 160, 113, 84, 189, 98, 69, 53, 61, 211, 203, 23, 191, 120, 183, 151, 61, 174, 23, 215, 190, 162, 125, 184, 190, 103, 57, 110, 189, 156, 229, 64, 187, 156, 144, 173, 62, 55, 138, 189, 189, 212, 222, 108, 190, 219, 40, 203, 62, 47, 202, 164, 61, 218, 62, 197, 62, 203, 137, 232, 190, 7, 22, 105, 189, 240, 246, 19, 62, 90, 17, 57, 63, 170, 4, 91, 189, 30, 40, 104, 62, 224, 118, 163, 62, 247, 51, 174, 61, 206, 81, 120, 190, 232, 131, 15, 63, 104, 194, 135, 189, 208, 241, 37, 62, 173, 165, 85, 63, 148, 177, 187, 188, 189, 36, 129, 190, 253, 79, 34, 188, 114, 242, 184, 189, 153, 109, 33, 61, 85, 108, 205, 190, 244, 147, 181, 61, 5, 220, 118, 62, 14, 98, 244, 61, 109, 143, 184, 61, 8, 31, 60, 190, 205, 147, 68, 185, 154, 203, 160, 61, 218, 154, 71, 190, 178, 136, 1, 63, 119, 16, 154, 189, 160, 66, 198, 190, 187, 4, 156, 189, 28, 204, 153, 189, 234, 150, 247, 62, 201, 199, 99, 62, 43, 156, 87, 61, 203, 183, 68, 190, 96, 67, 141, 189, 155, 166, 154, 60, 194, 250, 202, 62, 68, 214, 253, 62, 255, 83, 74, 61, 22, 212, 25, 62, 241, 125, 63, 190, 132, 181, 31, 61, 58, 98, 118, 190, 184, 25, 212, 62, 132, 154, 160, 61, 137, 46, 134, 62, 211, 160, 19, 63, 42, 50, 127, 61, 37, 101, 107, 62, 129, 213, 146, 190, 11, 70, 176, 61, 38, 52, 200, 62, 123, 208, 182, 190, 247, 67, 130, 61, 72, 87, 62, 62, 62, 10, 157, 60, 248, 205, 140, 189, 153, 204, 131, 189, 38, 160, 92, 63, 132, 226, 193, 60, 107, 131, 153, 190, 86, 218, 68, 191, 185, 58, 204, 59, 248, 200, 252, 62, 70, 39, 24, 190, 125, 127, 93, 189, 136, 162, 141, 190, 9, 126, 59, 191, 159, 143, 7, 61, 77, 155, 15, 63, 112, 72, 157, 62, 240, 139, 189, 58, 168, 183, 146, 190, 235, 216, 235, 190, 183, 176, 145, 189, 156, 255, 17, 191, 135, 189, 117, 190, 238, 231, 8, 188, 229, 93, 182, 62, 166, 134, 63, 62, 115, 136, 157, 61, 114, 56, 240, 61, 252, 100, 17, 191, 102, 25, 152, 61, 174, 116, 139, 189, 63, 116, 85, 63, 200, 38, 10, 189, 132, 34, 9, 189, 214, 118, 22, 191, 26, 252, 152, 189, 37, 115, 252, 187, 200, 202, 151, 62, 79, 215, 132, 188, 105, 216, 92, 62, 56, 22, 163, 190, 77, 211, 175, 61, 228, 87, 20, 62, 251, 6, 27, 191, 1, 66, 142, 61, 224, 135, 93, 189, 32, 209, 142, 190, 178, 248, 52, 61, 220, 90, 82, 62, 244, 172, 234, 190, 114, 125, 160, 61, 251, 110, 177, 190, 180, 146, 227, 62, 190, 195, 130, 189, 179, 10, 130, 188, 220, 91, 56, 191, 37, 230, 113, 61, 58, 215, 181, 188, 36, 219, 175, 62, 63, 233, 188, 61, 10, 199, 230, 61, 118, 12, 96, 190, 224, 94, 154, 189, 177, 30, 240, 62, 119, 243, 205, 62, 123, 168, 43, 61, 114, 221, 250, 62, 102, 74, 121, 190, 166, 133, 74, 61, 139, 229, 17, 61, 110, 138, 147, 62, 31, 18, 39, 61, 14, 113, 22, 62, 158, 19, 0, 191, 130, 94, 161, 189, 91, 182, 1, 191, 233, 253, 14, 62, 12, 226, 77, 61, 139, 44, 94, 190, 86, 69, 85, 63, 124, 189, 147, 59, 164, 76, 47, 190, 58, 14, 25, 191, 47, 168, 140, 189, 242, 241, 115, 190, 238, 169, 232, 190, 94, 53, 155, 189, 246, 143, 77, 62, 68, 15, 67, 63, 134, 20, 38, 61, 24, 94, 223, 61, 35, 28, 1, 191, 224, 45, 164, 61, 158, 255, 216, 190, 103, 33, 8, 191, 120, 195, 26, 189, 204, 38, 190, 190, 9, 88, 2, 63, 202, 238, 91, 189, 216, 29, 157, 189, 134, 81, 193, 62, 33, 216, 182, 189, 159, 14, 235, 189, 154, 70, 13, 63, 220, 48, 155, 189, 140, 150, 222, 62, 149, 6, 12, 191, 84, 68, 242, 188, 115, 13, 177, 62, 135, 181, 40, 63, 114, 28, 12, 189, 64, 122, 162, 190, 210, 211, 169, 190, 178, 33, 155, 61, 41, 12, 238, 189, 170, 211, 82, 191, 164, 210, 11, 61, 11, 90, 220, 190, 119, 32, 227, 189, 190, 67, 139, 61, 223, 238, 222, 190, 210, 40, 148, 62, 130, 148, 117, 61, 225, 34, 156, 62, 249, 175, 170, 190, 126, 159, 157, 189, 40, 164, 7, 63, 46, 188, 191, 189, 18, 36, 52, 61, 198, 170, 56, 62, 196, 71, 161, 61, 227, 27, 130, 189, 147, 60, 91, 62, 114, 168, 7, 191, 240, 145, 147, 189, 170, 217, 171, 62, 146, 205, 104, 60, 119, 93, 169, 61, 213, 130, 186, 61, 80, 128, 82, 191, 71, 94, 22, 189, 130, 182, 127, 190, 159, 133, 75, 191, 178, 1, 162, 60, 54, 26, 149, 61, 119, 113, 178, 62, 40, 115, 186, 189, 207, 198, 83, 62, 27, 145, 201, 190, 75, 156, 169, 61, 127, 181, 227, 190, 98, 144, 239, 62, 121, 134, 41, 61, 248, 214, 144, 190, 34, 158, 244, 62, 118, 99, 143, 189, 211, 172, 180, 61, 36, 242, 151, 62, 12, 126, 190, 61, 68, 84, 32, 62, 0, 168, 215, 190, 241, 39, 172, 189, 168, 226, 225, 62, 73, 4, 199, 187, 188, 160, 137, 189, 218, 193, 24, 62, 44, 163, 83, 191, 52, 66, 227, 60, 47, 225, 32, 190, 102, 111, 24, 191, 60, 121, 143, 61, 25, 27, 7, 190, 147, 52, 3, 63, 128, 216, 160, 61, 187, 200, 11, 63, 55, 164, 21, 61, 118, 62, 36, 61, 54, 87, 19, 60, 222, 162, 139, 62, 180, 17, 194, 61, 133, 131, 229, 62, 112, 122, 178, 190, 181, 197, 88, 61, 17, 24, 57, 190, 180, 61, 190, 189, 40, 168, 89, 61, 208, 248, 220, 60, 23, 101, 228, 190, 74, 88, 176, 61, 12, 167, 57, 190, 113, 14, 156, 61, 230, 104, 126, 189, 190, 200, 8, 191, 169, 238, 132, 189, 228, 215, 48, 61, 179, 116, 138, 190, 192, 155, 71, 63, 46, 248, 155, 60, 249, 123, 0, 62, 38, 214, 25, 63, 150, 132, 145, 189, 94, 245, 61, 62, 147, 143, 16, 63, 174, 156, 145, 189, 162, 31, 234, 189, 35, 102, 88, 62, 8, 58, 166, 61, 119, 179, 197, 190, 127, 120, 131, 62, 247, 27, 145, 189, 175, 71, 70, 62, 22, 123, 4, 63, 91, 85, 152, 189, 76, 131, 249, 190, 127, 108, 22, 190, 64, 1, 101, 189, 45, 251, 5, 190, 134, 77, 253, 190, 23, 32, 164, 61, 40, 26, 199, 62, 160, 32, 74, 61, 118, 212, 153, 61, 125, 233, 6, 189, 94, 95, 65, 191, 253, 109, 89, 189, 115, 168, 158, 61, 94, 109, 81, 63, 146, 101, 30, 189, 36, 82, 202, 62, 65, 41, 214, 190, 12, 95, 111, 61, 135, 49, 81, 62, 90, 92, 68, 63, 48, 152, 32, 61, 170, 96, 207, 61, 221, 203, 64, 63, 255, 102, 82, 61, 28, 166, 251, 62, 28, 255, 207, 62, 200, 74, 7, 189, 253, 64, 27, 190, 143, 14, 58, 62, 231, 165, 47, 189, 225, 93, 208, 61, 236, 126, 129, 190, 210, 7, 198, 60, 212, 186, 120, 61, 23, 161, 57, 63, 80, 120, 107, 189, 109, 95, 14, 62, 99, 38, 163, 62, 92, 185, 184, 189, 250, 57, 159, 62, 180, 142, 66, 191, 141, 188, 204, 59, 122, 102, 143, 190, 64, 131, 192, 60, 243, 180, 179, 61, 248, 230, 32, 62, 180, 221, 111, 62, 225, 6, 190, 61, 8, 163, 143, 190, 162, 154, 55, 62, 213, 101, 175, 61, 87, 197, 11, 191, 42, 207, 229, 188, 99, 5, 37, 61, 214, 202, 177, 62, 22, 129, 8, 191, 22, 189, 100, 189, 250, 128, 167, 60, 234, 208, 230, 62, 50, 227, 175, 61, 174, 107, 89, 190, 248, 135, 156, 190, 204, 74, 177, 61, 46, 238, 14, 62, 239, 183, 41, 190, 226, 119, 194, 61, 87, 99, 13, 62, 126, 136, 193, 62, 60, 105, 178, 61, 6, 219, 217, 61, 144, 84, 45, 191, 154, 182, 127, 189, 162, 76, 248, 62, 246, 248, 207, 62, 217, 94, 20, 61, 124, 2, 116, 190, 3, 50, 143, 61, 11, 198, 186, 61, 14, 89, 207, 59, 38, 191, 67, 191, 166, 224, 84, 61, 230, 94, 69, 62, 75, 69, 137, 61, 242, 66, 135, 188, 73, 239, 42, 62, 17, 169, 244, 189, 45, 195, 193, 61, 81, 101, 228, 62, 158, 92, 177, 61, 18, 100, 133, 189, 213, 78, 18, 191, 40, 118, 53, 61, 192, 246, 222, 60, 225, 163, 140, 190, 143, 83, 122, 189, 18, 61, 180, 189, 213, 34, 98, 190, 229, 236, 114, 61, 150, 179, 189, 189, 48, 173, 177, 189, 192, 181, 226, 62, 235, 174, 174, 61, 172, 126, 217, 190, 14, 161, 26, 190, 216, 48, 139, 61, 244, 145, 246, 190, 21, 212, 8, 62, 56, 172, 106, 61, 225, 66, 109, 62, 88, 151, 10, 191, 194, 157, 142, 61, 19, 131, 148, 190, 112, 180, 239, 62, 207, 141, 143, 189, 185, 14, 221, 190, 142, 92, 154, 190, 232, 24, 117, 189, 81, 179, 181, 189, 113, 248, 205, 62, 213, 80, 179, 189, 235, 117, 3, 191, 230, 108, 200, 61, 148, 168, 72, 189, 34, 171, 175, 62, 48, 2, 50, 63, 164, 81, 203, 188, 55, 189, 39, 190, 80, 248, 15, 63, 180, 222, 148, 61, 18, 77, 216, 62, 98, 202, 188, 190, 218, 70, 106, 61, 185, 194, 155, 62, 191, 147, 179, 62, 251, 183, 155, 189, 36, 55, 134, 190, 248, 61, 1, 191, 108, 14, 143, 189, 66, 199, 85, 190, 222, 53, 78, 191, 176, 51, 210, 188, 204, 73, 82, 190, 234, 220, 67, 191, 187, 201, 33, 61, 131, 31, 188, 61, 134, 65, 183, 190, 26, 86, 184, 61, 170, 213, 150, 189, 186, 210, 94, 63, 112, 254, 163, 188, 6, 226, 109, 61, 21, 25, 125, 190, 78, 190, 192, 61, 7, 73, 224, 190, 52, 87, 198, 62, 222, 173, 84, 189, 42, 94, 217, 62, 110, 10, 254, 190, 119, 55, 46, 189, 52, 97, 155, 60, 90, 88, 185, 190, 254, 182, 186, 61, 63, 228, 142, 190, 221, 106, 14, 63, 184, 241, 126, 189, 147, 26, 166, 190, 126, 107, 55, 63, 165, 166, 207, 60, 238, 152, 191, 62, 52, 233, 178, 189, 148, 59, 157, 61, 222, 132, 144, 188, 98, 66, 12, 191, 38, 219, 160, 61, 223, 29, 164, 190, 190, 199, 234, 59, 18, 133, 172, 189, 127, 179, 5, 190, 180, 181, 127, 190, 200, 247, 190, 189, 32, 153, 66, 190, 207, 59, 184, 62, 89, 253, 174, 61, 224, 200, 173, 61, 122, 140, 122, 190, 29, 224, 156, 189, 197, 52, 132, 62, 126, 186, 138, 62, 92, 124, 173, 189, 35, 219, 132, 190, 118, 137, 26, 191, 34, 168, 115, 61, 192, 16, 215, 187, 172, 227, 142, 190, 160, 190, 143, 61, 255, 221, 215, 61, 253, 59, 63, 191, 185, 218, 85, 61, 234, 40, 29, 61, 146, 118, 34, 191, 226, 192, 143, 61, 196, 15, 153, 61, 132, 250, 201, 190, 201, 248, 180, 189, 8, 59, 199, 62, 234, 233, 135, 62, 102, 0, 143, 189, 210, 71, 33, 189, 238, 52, 27, 63, 240, 93, 149, 61, 6, 195, 50, 60, 122, 199, 133, 62, 88, 51, 193, 189, 59, 27, 93, 190, 197, 36, 95, 190, 64, 151, 183, 61, 243, 244, 58, 190, 141, 235, 220, 189, 24, 231, 15, 189, 53, 152, 226, 190, 240, 140, 220, 62, 127, 16, 62, 189, 72, 43, 26, 60, 132, 46, 171, 62, 226, 203, 189, 61, 90, 87, 38, 190, 210, 55, 189, 62, 190, 54, 177, 189, 214, 30, 214, 190, 153, 88, 33, 63, 123, 36, 67, 188, 231, 146, 79, 62, 81, 9, 45, 63, 186, 131, 102, 189, 76, 188, 6, 63, 182, 111, 138, 190, 199, 247, 18, 189, 6, 176, 100, 61, 198, 204, 29, 63, 22, 6, 147, 61, 165, 140, 9, 190, 122, 131, 228, 62, 58, 95, 171, 189, 250, 226, 101, 62, 6, 82, 31, 191, 180, 67, 120, 189, 254, 167, 226, 190, 106, 68, 124, 190, 248, 159, 120, 189, 65, 132, 138, 190, 188, 50, 148, 62, 38, 78, 170, 189, 220, 145, 17, 191, 214, 198, 42, 62, 246, 189, 199, 60, 191, 42, 17, 63, 109, 200, 129, 62, 194, 244, 22, 60, 213, 24, 55, 62, 42, 185, 89, 190, 122, 59, 189, 189, 231, 89, 8, 62, 18, 175, 16, 191, 175, 77, 151, 61, 157, 237, 208, 189, 2, 245, 5, 63, 220, 91, 161, 61, 30, 25, 13, 62, 185, 129, 91, 190, 74, 100, 192, 189, 8, 153, 95, 62, 242, 164, 153, 189, 80, 184, 189, 189, 113, 221, 40, 61, 162, 10, 78, 191, 204, 57, 46, 61, 154, 210, 146, 61, 182, 212, 46, 63, 116, 252, 128, 189, 70, 229, 198, 61, 26, 56, 215, 190, 189, 193, 176, 189, 192, 28, 151, 62, 187, 2, 249, 62, 90, 74, 138, 61, 8, 163, 136, 62, 2, 216, 53, 63, 74, 69, 39, 189, 146, 222, 39, 190, 33, 179, 2, 63, 128, 107, 157, 61, 146, 105, 30, 62, 205, 135, 162, 190, 146, 26, 183, 189, 102, 149, 231, 62, 175, 94, 135, 60, 78, 182, 132, 189, 124, 72, 214, 62, 205, 198, 201, 62, 136, 132, 102, 61, 95, 15, 144, 62, 13, 1, 35, 191, 132, 13, 86, 61, 70, 178, 115, 190, 118, 132, 245, 190, 82, 157, 151, 61, 194, 226, 242, 188, 224, 249, 34, 63, 85, 142, 143, 61, 25, 41, 123, 62, 193, 32, 27, 63, 236, 31, 120, 189, 166, 99, 0, 189, 58, 97, 23, 63, 80, 96, 152, 189, 204, 202, 7, 63, 210, 236, 204, 61, 243, 216, 50, 189, 155, 107, 203, 190, 12, 137, 73, 188, 84, 38, 152, 189, 34, 122, 6, 191, 253, 251, 55, 190, 188, 245, 46, 61, 61, 23, 218, 189, 8, 31, 95, 190, 194, 80, 172, 189, 10, 125, 253, 61, 146, 128, 203, 62, 110, 140, 177, 61, 158, 140, 246, 190, 146, 245, 73, 189, 72, 79, 111, 61, 99, 46, 6, 63, 222, 240, 52, 189, 217, 147, 63, 189, 109, 93, 167, 62, 250, 147, 212, 190, 189, 76, 142, 61, 27, 32, 20, 191, 12, 226, 62, 62, 247, 63, 76, 188, 210, 38, 147, 62, 29, 109, 212, 62, 155, 190, 151, 189, 29, 23, 237, 62, 131, 182, 139, 190, 135, 6, 100, 61, 188, 223, 0, 63, 147, 100, 171, 62, 226, 233, 31, 189, 153, 59, 244, 61, 184, 141, 62, 191, 205, 222, 82, 61, 142, 219, 127, 59, 36, 163, 172, 62, 228, 167, 189, 61, 32, 28, 49, 190, 19, 99, 17, 63, 0, 190, 146, 61, 158, 78, 247, 190, 236, 245, 137, 190, 112, 153, 76, 189, 188, 34, 33, 62, 183, 106, 49, 191, 56, 211, 106, 61, 108, 176, 85, 190, 183, 149, 19, 191, 214, 132, 138, 61, 94, 48, 202, 187, 185, 72, 73, 191, 114, 120, 66, 61, 98, 249, 29, 62, 17, 155, 34, 63, 54, 56, 133, 189, 226, 73, 40, 62, 120, 47, 251, 62, 198, 169, 160, 61, 16, 80, 199, 60, 33, 213, 144, 190, 229, 188, 101, 61, 104, 21, 27, 62, 22, 157, 50, 191, 7, 196, 105, 189, 27, 126, 2, 63, 224, 122, 158, 190, 180, 209, 33, 61, 74, 249, 0, 62, 144, 33, 88, 62, 54, 139, 120, 189, 200, 21, 55, 61, 126, 129, 93, 191, 32, 71, 192, 188, 165, 208, 162, 189, 82, 136, 86, 63, 226, 76, 1, 189, 164, 220, 255, 190, 22, 57, 112, 190, 62, 187, 64, 189, 248, 21, 4, 190, 109, 46, 52, 63, 44, 243, 107, 61, 136, 215, 218, 190, 22, 156, 196, 190, 145, 21, 98, 189, 216, 224, 93, 190, 43, 183, 3, 191, 249, 197, 149, 189, 137, 100, 234, 189, 51, 181, 233, 190, 140, 156, 171, 189, 65, 14, 193, 190, 45, 25, 21, 191, 192, 132, 44, 61, 177, 26, 106, 190, 48, 47, 87, 62, 63, 4, 182, 189, 28, 81, 197, 190, 108, 189, 26, 63, 232, 236, 18, 189, 62, 121, 192, 61, 131, 149, 31, 63, 214, 174, 143, 61, 190, 161, 169, 190, 6, 113, 52, 190, 6, 208, 164, 61, 97, 4, 244, 61, 100, 26, 37, 191, 235, 224, 134, 189, 114, 49, 145, 60, 245, 3, 88, 191, 174, 78, 6, 189, 242, 164, 169, 190, 136, 13, 59, 191, 1, 85, 144, 60, 46, 77, 177, 62, 103, 207, 16, 63, 168, 171, 80, 189, 93, 180, 206, 62, 216, 64, 102, 60, 190, 82, 150, 61, 145, 91, 190, 188, 69, 107, 11, 191, 90, 80, 161, 61, 28, 112, 137, 190, 172, 90, 156, 190, 50, 227, 168, 189, 195, 15, 68, 190, 6, 86, 88, 189, 160, 61, 48, 189, 190, 167, 220, 190, 58, 194, 219, 62, 89, 211, 75, 189, 216, 83, 198, 61, 78, 166, 27, 63, 97, 149, 146, 61, 92, 56, 208, 61, 222, 243, 116, 190, 206, 245, 121, 189, 226, 199, 72, 190, 58, 223, 23, 191, 57, 227, 136, 61, 143, 138, 25, 190, 59, 51, 91, 63, 142, 17, 76, 60, 82, 172, 107, 62, 62, 30, 37, 62, 228, 149, 184, 61, 191, 161, 255, 190, 144, 58, 185, 62, 140, 98, 23, 61, 56, 118, 89, 62, 188, 21, 249, 187, 98, 239, 190, 61, 193, 81, 42, 62, 189, 13, 48, 63, 16, 125, 107, 189, 230, 114, 103, 62, 41, 77, 49, 63, 91, 101, 77, 189, 149, 95, 225, 61, 106, 76, 122, 62, 15, 24, 8, 61, 7, 235, 44, 62, 58, 161, 90, 63, 227, 156, 181, 187, 179, 204, 38, 62, 236, 173, 214, 189, 114, 157, 194, 189, 34, 12, 73, 190, 210, 104, 205, 190, 143, 89, 170, 61, 227, 84, 100, 57, 176, 169, 234, 190, 112, 86, 175, 189, 96, 220, 21, 63, 58, 98, 2, 62, 118, 57, 45, 60, 34, 52, 223, 60, 233, 163, 58, 191, 7, 6, 108, 189, 194, 139, 202, 190, 242, 253, 29, 63, 10, 242, 234, 60, 177, 99, 97, 190, 220, 180, 85, 62, 186, 121, 183, 61, 0, 150, 4, 63, 5, 38, 210, 190, 60, 63, 158, 60, 64, 5, 194, 190, 112, 89, 141, 62, 239, 47, 145, 61, 2, 227, 128, 190, 224, 98, 234, 62, 118, 80, 152, 61, 54, 244, 121, 62, 253, 171, 40, 191, 170, 231, 91, 189, 242, 196, 71, 190, 96, 158, 30, 189, 30, 27, 197, 188, 111, 125, 7, 191, 226, 80, 208, 61, 17, 56, 52, 189, 48, 18, 226, 190, 229, 249, 57, 188, 66, 85, 137, 189, 173, 230, 207, 62, 120, 172, 79, 189, 76, 255, 148, 189, 111, 86, 124, 61, 39, 141, 169, 62, 174, 19, 189, 61, 59, 252, 181, 190, 75, 1, 177, 62, 9, 221, 144, 61, 128, 100, 8, 62, 38, 34, 134, 62, 76, 34, 190, 61, 137, 189, 152, 188, 159, 176, 49, 191, 254, 15, 128, 61, 66, 12, 152, 190, 173, 143, 188, 190, 89, 53, 155, 61, 214, 121, 136, 190, 146, 186, 121, 190, 130, 240, 173, 189, 102, 128, 178, 190, 205, 172, 44, 63, 150, 255, 235, 188, 148, 93, 154, 190, 125, 178, 38, 63, 93, 149, 60, 61, 71, 65, 168, 61, 11, 246, 230, 62, 231, 244, 173, 189, 230, 13, 186, 190, 52, 127, 47, 191, 175, 253, 167, 60, 234, 203, 165, 190, 32, 236, 91, 190, 232, 68, 164, 189, 198, 245, 196, 62, 69, 97, 185, 189, 165, 62, 154, 61, 249, 233, 241, 61, 208, 106, 117, 190, 59, 207, 198, 59, 253, 190, 17, 191, 66, 34, 244, 61, 51, 176, 210, 188, 222, 124, 21, 63, 159, 139, 98, 61, 110, 212, 163, 188, 116, 67, 72, 190, 83, 205, 212, 62, 3, 112, 168, 61, 49, 102, 137, 188, 165, 40, 96, 191, 162, 142, 173, 188, 24, 171, 245, 60, 198, 249, 143, 62, 90, 68, 193, 61, 58, 28, 133, 190, 55, 154, 13, 63, 132, 57, 133, 189, 136, 66, 171, 62, 181, 212, 39, 63, 119, 197, 30, 189, 134, 34, 161, 190, 54, 74, 241, 190, 34, 81, 136, 189, 56, 122, 26, 62, 202, 106, 58, 62, 88, 150, 53, 189, 72, 154, 120, 62, 110, 246, 174, 189, 228, 118, 185, 61, 140, 221, 142, 189, 46, 20, 10, 191, 226, 1, 161, 189, 5, 49, 17, 191, 22, 163, 199, 189, 126, 231, 226, 188, 8, 151, 250, 190, 41, 105, 239, 61, 66, 13, 101, 61, 34, 146, 24, 62, 252, 138, 231, 190, 160, 9, 169, 61, 162, 154, 191, 190, 8, 37, 207, 190, 234, 223, 128, 189, 84, 76, 165, 61, 127, 183, 7, 191, 65, 221, 161, 189, 144, 109, 49, 190, 215, 47, 202, 190, 96, 140, 173, 189, 50, 111, 58, 60, 203, 94, 48, 191, 99, 202, 129, 61, 37, 124, 87, 190, 130, 183, 59, 191, 94, 30, 56, 189, 225, 119, 234, 62, 197, 195, 35, 62, 120, 104, 122, 61, 71, 24, 138, 190, 175, 2, 3, 190, 190, 58, 179, 61, 142, 75, 191, 190, 199, 100, 123, 61, 13, 224, 157, 61, 120, 25, 59, 62, 98, 76, 23, 63, 152, 18, 140, 61, 249, 169, 231, 61, 96, 33, 249, 190, 96, 8, 167, 61, 182, 51, 48, 62, 81, 78, 91, 63, 96, 235, 143, 58, 53, 140, 83, 188, 246, 138, 60, 191, 133, 19, 105, 189, 178, 9, 163, 190, 19, 243, 157, 62, 128, 83, 157, 61, 192, 167, 246, 62, 132, 161, 225, 190, 226, 66, 2, 61, 27, 116, 48, 188, 86, 244, 194, 62, 107, 148, 184, 189, 124, 230, 22, 191, 174, 45, 10, 62, 84, 88, 59, 187, 254, 171, 136, 190, 196, 92, 102, 62, 136, 247, 174, 61, 170, 0, 140, 62, 129, 132, 74, 190, 54, 123, 175, 189, 173, 227, 242, 62, 178, 17, 123, 62, 198, 59, 93, 189, 118, 21, 10, 63, 121, 206, 47, 189, 77, 50, 44, 61, 37, 57, 159, 190, 131, 181, 40, 190, 39, 175, 170, 189, 122, 122, 232, 61, 72, 73, 242, 190, 212, 101, 169, 61, 130, 112, 15, 62, 111, 48, 251, 62, 166, 224, 163, 189, 57, 2, 211, 62, 239, 27, 2, 63, 14, 254, 51, 61, 23, 235, 149, 189, 156, 12, 25, 191, 90, 1, 150, 61, 168, 5, 5, 62, 123, 204, 69, 63, 148, 183, 55, 189, 98, 241, 8, 191, 190, 191, 177, 62, 106, 82, 181, 188, 144, 46, 242, 61, 112, 172, 129, 190, 170, 151, 191, 189, 63, 21, 48, 190, 112, 181, 232, 189, 239, 50, 133, 61, 230, 145, 88, 190, 225, 112, 20, 61, 120, 212, 190, 61, 237, 79, 193, 59, 189, 128, 243, 62, 171, 34, 173, 189, 249, 176, 0, 191, 44, 125, 136, 62, 167, 34, 53, 61, 130, 178, 105, 190, 128, 13, 65, 63, 48, 157, 29, 61, 214, 82, 236, 61, 15, 126, 213, 62, 118, 43, 176, 189, 54, 186, 177, 62, 103, 223, 224, 62, 22, 131, 131, 61, 142, 192, 200, 190, 46, 216, 26, 191, 70, 211, 8, 61, 163, 68, 234, 59, 191, 241, 142, 190, 189, 225, 142, 61, 8, 73, 227, 62, 128, 203, 168, 62, 52, 184, 100, 61, 252, 225, 255, 190, 193, 231, 137, 62, 48, 13, 56, 189, 109, 65, 153, 190, 157, 5, 203, 61, 231, 14, 175, 61, 101, 144, 167, 190, 172, 203, 8, 63, 86, 216, 110, 61, 162, 170, 112, 189, 42, 54, 200, 62, 193, 57, 182, 61, 48, 167, 134, 189, 208, 127, 81, 191, 231, 161, 31, 61, 67, 224, 214, 62, 2, 17, 31, 191, 113, 243, 137, 60, 32, 120, 163, 62, 174, 20, 47, 63, 175, 41, 21, 189, 165, 138, 81, 190, 102, 112, 65, 191, 72, 209, 41, 189, 236, 200, 1, 63, 127, 100, 199, 190, 116, 197, 232, 188, 158, 24, 90, 62, 49, 239, 150, 190, 222, 11, 178, 61, 57, 114, 222, 62, 84, 158, 159, 60, 116, 14, 140, 61, 84, 251, 202, 62, 121, 79, 124, 62, 216, 205, 142, 189, 86, 116, 182, 62, 2, 243, 35, 189, 201, 24, 163, 61, 104, 80, 204, 190, 95, 143, 4, 63, 101, 197, 59, 189, 173, 233, 235, 59, 163, 137, 45, 191, 52, 8, 133, 189, 204, 79, 57, 62, 148, 98, 182, 190, 177, 98, 176, 189, 26, 7, 82, 62, 165, 238, 93, 62, 50, 55, 185, 61, 199, 178, 208, 186, 241, 201, 231, 62, 205, 254, 175, 189, 218, 219, 59, 62, 116, 9, 11, 63, 86, 115, 149, 61, 147, 249, 27, 190, 4, 73, 34, 191, 166, 202, 133, 189, 218, 170, 254, 62, 93, 82, 240, 190, 62, 77, 152, 188, 108, 40, 165, 62, 0, 57, 201, 62, 46, 180, 146, 189, 171, 52, 148, 60, 50, 167, 201, 190, 81, 219, 182, 61, 92, 234, 248, 189, 190, 122, 104, 190, 45, 219, 46, 189, 172, 111, 12, 188, 218, 161, 101, 63, 181, 234, 255, 186, 0, 221, 68, 190, 10, 72, 15, 189, 14, 136, 53, 61, 134, 223, 47, 190, 19, 152, 75, 191, 175, 36, 16, 61, 232, 85, 239, 190, 28, 116, 230, 62, 232, 18, 24, 61, 230, 238, 6, 63, 46, 232, 155, 189, 241, 36, 57, 189, 53, 109, 42, 62, 253, 17, 221, 190, 115, 27, 170, 61, 205, 109, 111, 190, 131, 43, 51, 63, 144, 42, 67, 189, 30, 63, 8, 191, 49, 58, 71, 62, 224, 196, 34, 189, 136, 190, 233, 62, 84, 37, 14, 63, 24, 131, 130, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ),
- "format": "RGBFloat",
- "height": 1,
- "mipmaps": false,
- "width": 2048
- }
- [sub_resource type="ImageTexture" id=139]
- flags = 4
- flags = 4
- image = SubResource( 174 )
- size = Vector2( 2048, 1 )
- [sub_resource type="Curve" id=140]
- min_value = -1.0
- _data = [ Vector2( 0, 0 ), 0.0, 0.0, 0, 0, Vector2( 0.236486, 0.0424107 ), 0.0, 0.0, 0, 0, Vector2( 0.743243, 0.0736607 ), 1.81696, 1.81696, 0, 0, Vector2( 1, 0.377232 ), 0.0, 0.0, 0, 0 ]
- [sub_resource type="CurveTexture" id=141]
- curve = SubResource( 140 )
- [sub_resource type="Curve" id=142]
- _data = [ Vector2( 0, 0.0703125 ), 0.0, 0.0, 0, 0, Vector2( 0.222973, 0.159598 ), 0.932773, 0.932773, 0, 0, Vector2( 0.412162, 0.765625 ), 0.0, 0.0, 0, 0, Vector2( 0.743243, 0.381696 ), -0.0614618, -0.0614618, 0, 0, Vector2( 1, 0.302455 ), -0.264286, 0.0, 0, 0 ]
- [sub_resource type="CurveTexture" id=143]
- curve = SubResource( 142 )
- [sub_resource type="ParticlesMaterial" id=144]
- emission_shape = 3
- emission_point_texture = SubResource( 139 )
- emission_point_count = 512
- gravity = Vector3( 0, 0, 0 )
- linear_accel = -0.2
- radial_accel = -0.3
- radial_accel_curve = SubResource( 141 )
- tangential_accel = 0.3
- scale = 0.85
- scale_curve = SubResource( 143 )
- color_ramp = SubResource( 137 )
- [sub_resource type="QuadMesh" id=145]
- size = Vector2( 0.025, 0.025 )
- [sub_resource type="SpatialMaterial" id=146]
- render_priority = 50
- flags_unshaded = true
- flags_do_not_receive_shadows = true
- params_blend_mode = 1
- albedo_color = Color( 1, 1.2, 1.8, 1 )
- [sub_resource type="Shader" id=147]
- code = "shader_type spatial;
- render_mode blend_mix,depth_draw_alpha_prepass,cull_disabled,unshaded;
- uniform float iTime;
- vec3 hash3(vec3 p) {
- p = vec3(dot(p, vec3(127.1, 311.7, 74.7)),
- dot(p, vec3(269.5, 183.3, 246.1)),
- dot(p, vec3(113.5, 271.9, 124.6)));
- return -1.0 + 2.0 * fract(sin(p) * 43758.5453123);
- }
- float noise(vec3 p) {
- vec3 i = floor(p);
- vec3 f = fract(p);
- vec3 u = f * f * (3.0 - 2.0 * f);
- float n0 = dot(hash3(i + vec3(0.0, 0.0, 0.0)), f - vec3(0.0, 0.0, 0.0));
- float n1 = dot(hash3(i + vec3(1.0, 0.0, 0.0)), f - vec3(1.0, 0.0, 0.0));
- float n2 = dot(hash3(i + vec3(0.0, 1.0, 0.0)), f - vec3(0.0, 1.0, 0.0));
- float n3 = dot(hash3(i + vec3(1.0, 1.0, 0.0)), f - vec3(1.0, 1.0, 0.0));
- float n4 = dot(hash3(i + vec3(0.0, 0.0, 1.0)), f - vec3(0.0, 0.0, 1.0));
- float n5 = dot(hash3(i + vec3(1.0, 0.0, 1.0)), f - vec3(1.0, 0.0, 1.0));
- float n6 = dot(hash3(i + vec3(0.0, 1.0, 1.0)), f - vec3(0.0, 1.0, 1.0));
- float n7 = dot(hash3(i + vec3(1.0, 1.0, 1.0)), f - vec3(1.0, 1.0, 1.0));
- float ix0 = mix(n0, n1, u.x);
- float ix1 = mix(n2, n3, u.x);
- float ix2 = mix(n4, n5, u.x);
- float ix3 = mix(n6, n7, u.x);
- float ret = mix(mix(ix0, ix1, u.y), mix(ix2, ix3, u.y), u.z) * 0.5 + 0.5;
- return ret * 2.0 - 1.0;
- }
- float snoise(vec3 uv) {
- const vec3 s = vec3(1e0, 1e2, 1e3);
- float res = 16.;
- uv *= res;
- vec3 uv0 = floor(mod(uv, res)) * s;
- vec3 uv1 = floor(mod(uv + vec3(1.), res)) * s;
- vec3 f = fract(uv);
- f = f * f * (3.0 - 2.0 * f);
- vec4 v = vec4(uv0.x + uv0.y + uv0.z, uv1.x + uv0.y + uv0.z,
- uv0.x + uv1.y + uv0.z, uv1.x + uv1.y + uv0.z);
- vec4 r = fract(sin(v * 1e-1) * 1e3);
- float r0 = mix(mix(r.x, r.y, f.x), mix(r.z, r.w, f.x), f.y);
- r = fract(sin((v + uv1.z - uv0.z) * 1e-1) * 1e3);
- float r1 = mix(mix(r.x, r.y, f.x), mix(r.z, r.w, f.x), f.y);
- return mix(r0, r1, f.z) * 2. - 1.;
- }
- float circle( in vec2 uv, float r1, float r2, vec2 ab) {
- float t = r1 - r2;
- float r = r1;
- return smoothstep(ab.x, ab.y, (-length(uv) + r ) - t / 10.0);
- }
- float circle2( in vec2 uv, float r1, float r2, vec2 ab) {
- float t = r1 - r2;
- float r = r1;
- return smoothstep(ab.x, ab.y, (length(uv) - r) - t / 10.0);
- }
- vec3 color(vec2 p) {
- vec3 colx = vec3(.120, 0.125, 01.38);
- vec3 coord = vec3(p * 5., iTime * 0.25);
- coord = vec3(atan(p.x, p.y) / 6.2832 + .5, length(p) * .4, .5) + vec3(0., iTime * .05, iTime * .01);
- float nx = abs(snoise(coord));
- float nx2 = 0.5 * abs(snoise(coord * 2.0));
- float nx3 = 0.25 * abs(snoise(coord * 4.0));
- float nx4 = 0.125 * abs(snoise(coord * 6.0));
- nx += nx2 + nx3 + nx4;
- float c1=circle(p * 3., 1.2, 0.19, vec2(-0.25, 0.8));
- float c2=circle2(p * 3., .3, 0.19, vec2(-0.24645, 01.28));
- float vx = min(1.5*c1,c2);
- float n = nx * vx;
- n *= (100.001);
- n *= vx;
- colx = 0.25 * colx + colx * (0.5 + 0.5 * cos(iTime + p.xyx + vec3(0, 2, 4)));
- colx *= .2 / vec3(nx - nx2, -nx3 + nx, -nx4 + nx);
- vec3 col = colx / max(n,0.001);
- //return col;
- col = clamp(abs(col), vec3(0.), vec3(2.));
- col = 2. * pow(col, vec3(0.645));
- col = col+col * col;
- return min(vec3(1.), pow(col, vec3(2.0))) * (1. - 1.2 * vx);
- }
- vec4 mi(vec2 uv) {
- uv*=0.9;
- vec3 col = vec3(0.);
- col = color(uv);
- return vec4(col, 1.0);
- }
- void fragment() {
- vec3 col=mi(UV-0.5).rgb;
- float a=min(dot(col,vec3(1.)),1.);
- ALBEDO=col.rgb;
- ALPHA=a*0.25+0.72;
-
- }"
- [sub_resource type="ShaderMaterial" id=148]
- render_priority = 49
- shader = SubResource( 147 )
- shader_param/iTime = 0.0
- [sub_resource type="Shader" id=149]
- code = "shader_type spatial;
- render_mode blend_add,depth_draw_opaque,cull_front,unshaded;
- uniform vec4 colorx:hint_color;
- void fragment() {
- ALBEDO = colorx.rgb;
-
- float intensity = pow(0.022 + max(dot(NORMAL, normalize(VIEW)),0.), 04.85);
- ALBEDO=ALBEDO/max(1.-intensity,0.001);
- ALPHA=0.0+clamp(intensity,0.,1.);
- }"
- [sub_resource type="ShaderMaterial" id=150]
- render_priority = 50
- shader = SubResource( 149 )
- shader_param/colorx = Color( 0.203922, 0.352941, 0.945098, 1 )
- [sub_resource type="Curve" id=151]
- min_value = -1.0
- _data = [ Vector2( 0, 0 ), 0.0, 0.0, 0, 0, Vector2( 0.25, -0.348214 ), 0.592365, 0.592365, 0, 0, Vector2( 0.743243, -0.149554 ), 0.330357, 0.330357, 0, 0, Vector2( 1, -0.0959822 ), 0.0, 0.0, 0, 0 ]
- [sub_resource type="CurveTexture" id=152]
- curve = SubResource( 151 )
- [sub_resource type="Curve" id=153]
- _data = [ Vector2( 0, 0.032366 ), 0.0, 0.0, 0, 0, Vector2( 0.0675676, 0.782366 ), 0.0, 0.0, 0, 0, Vector2( 0.641892, 0.532366 ), 0.0, 0.0, 0, 0, Vector2( 1, 0.19308 ), 0.0, 0.0, 0, 0 ]
- [sub_resource type="CurveTexture" id=154]
- curve = SubResource( 153 )
- [sub_resource type="ParticlesMaterial" id=155]
- direction = Vector3( 0, 0, -1 )
- spread = 15.0
- gravity = Vector3( 0, 0, 0 )
- initial_velocity = 0.5
- linear_accel_curve = SubResource( 152 )
- scale = 0.08
- scale_curve = SubResource( 154 )
- [sub_resource type="Animation" id=156]
- resource_name = "rotation"
- length = 10.0
- loop = true
- tracks/0/type = "value"
- tracks/0/path = NodePath(".:rotation_degrees")
- tracks/0/interp = 1
- tracks/0/loop_wrap = true
- tracks/0/imported = false
- tracks/0/enabled = true
- tracks/0/keys = {
- "times": PoolRealArray( 0, 2.6, 5, 7.5, 10 ),
- "transitions": PoolRealArray( 1, 1, 1, 1, 1 ),
- "update": 0,
- "values": [ Vector3( 0, 0, 0 ), Vector3( 0, 90, 0 ), Vector3( 0, 180, 0 ), Vector3( 0, 270, 0 ), Vector3( 0, 360, 0 ) ]
- }
- [sub_resource type="SpatialMaterial" id=157]
- render_priority = 60
- flags_transparent = true
- flags_unshaded = true
- flags_vertex_lighting = true
- flags_no_depth_test = true
- params_depth_draw_mode = 2
- albedo_color = Color( 0.14902, 0.984314, 0.2, 0.592157 )
- [sub_resource type="CubeMesh" id=158]
- size = Vector3( 0.015, 0.015, 0.35 )
- [sub_resource type="ViewportTexture" id=159]
- viewport_path = NodePath("material_id")
- [sub_resource type="ShaderMaterial" id=160]
- resource_local_to_scene = true
- shader = ExtResource( 4 )
- shader_param/emulate_lighting = true
- shader_param/brightness = 0.0
- shader_param/iFrame = 90
- shader_param/iTime = 2.0
- shader_param/ttlive = 30.0
- shader_param/material_id = -1
- shader_param/depth_step = 0.001
- shader_param/expl = ExtResource( 27 )
- shader_param/sprites = ExtResource( 6 )
- shader_param/material_id_viewport = SubResource( 159 )
- [sub_resource type="ShaderMaterial" id=161]
- shader = SubResource( 60 )
- shader_param/colorx = Color( 0.921569, 0.47451, 0.0823529, 1 )
- shader_param/iTime = 0.0
- [sub_resource type="SpatialMaterial" id=162]
- flags_unshaded = true
- flags_do_not_receive_shadows = true
- vertex_color_use_as_albedo = true
- params_blend_mode = 1
- params_depth_draw_mode = 3
- params_billboard_mode = 3
- particles_anim_h_frames = 1
- particles_anim_v_frames = 1
- particles_anim_loop = false
- albedo_color = Color( 0.619608, 0.298039, 0.0588235, 1 )
- [sub_resource type="Gradient" id=163]
- offsets = PoolRealArray( 0, 0.154472, 0.349593, 0.601626, 1 )
- colors = PoolColorArray( 1, 1, 1, 1, 0.831373, 0.831373, 0.831373, 1, 0.207843, 0.207843, 0.207843, 1, 0, 0, 0, 1, 0, 0, 0, 1 )
- [sub_resource type="GradientTexture" id=164]
- gradient = SubResource( 163 )
- [sub_resource type="Curve" id=165]
- max_value = 10.0
- _data = [ Vector2( 0, 0 ), 0.0, 0.0, 0, 0, Vector2( 0.202703, 0 ), 2.07653, 2.07653, 0, 0, Vector2( 0.304054, 7.61161 ), 1.94737, 1.94737, 0, 0, Vector2( 0.554054, 4.55357 ), 1.2013, 1.2013, 0, 0, Vector2( 1, 4 ), 0.0, 0.0, 0, 0 ]
- [sub_resource type="CurveTexture" id=166]
- curve = SubResource( 165 )
- [sub_resource type="Curve" id=167]
- min_value = -1.0
- max_value = 3.0
- _data = [ Vector2( 0, 0 ), 0.0, 0.0, 0, 0, Vector2( 0.108108, 0.0424107 ), 0.0, 0.0, 0, 0, Vector2( 0.263514, 1.78571 ), 0.0, 0.0, 0, 0, Vector2( 1, -0.654018 ), 0.0, 0.0, 0, 0 ]
- [sub_resource type="CurveTexture" id=168]
- curve = SubResource( 167 )
- [sub_resource type="Curve" id=169]
- max_value = 4.0
- _data = [ Vector2( 0, 1 ), 0.0, 0.0, 0, 0, Vector2( 0.236486, 1 ), 0.0, 0.0, 0, 0, Vector2( 0.405405, 2.04018 ), 9.73685, 9.73685, 0, 0, Vector2( 0.560811, 3.64732 ), 6.37931, 6.37931, 0, 0, Vector2( 0.72973, 0.732143 ), -6.19705, -6.19705, 0, 0, Vector2( 1, 0.303572 ), 0.0, 0.0, 0, 0 ]
- [sub_resource type="CurveTexture" id=170]
- curve = SubResource( 169 )
- [sub_resource type="ParticlesMaterial" id=171]
- trail_divisor = 10
- direction = Vector3( 0, 1, 0 )
- spread = 180.0
- flatness = 0.99
- gravity = Vector3( 0, -1, 0 )
- initial_velocity = 1.35
- initial_velocity_random = 0.25
- linear_accel_curve = SubResource( 168 )
- damping = 0.15
- damping_curve = SubResource( 166 )
- scale = 0.1
- scale_curve = SubResource( 170 )
- color_ramp = SubResource( 164 )
- [node name="scene" type="Spatial"]
- script = ExtResource( 29 )
- [node name="material_id" type="Viewport" parent="."]
- size = Vector2( 640, 360 )
- own_world = true
- world = SubResource( 2 )
- transparent_bg = true
- keep_3d_linear = true
- render_target_update_mode = 3
- script = ExtResource( 13 )
- [node name="floor_scene" parent="material_id" instance=ExtResource( 3 )]
- [node name="Camera" type="Camera" parent="."]
- transform = Transform( 0.775385, 0.134538, -0.616991, -8.70596e-08, 0.977042, 0.213048, 0.631489, -0.165195, 0.757584, 3.01425, 0.694167, -1.96602 )
- environment = ExtResource( 20 )
- script = ExtResource( 2 )
- max_speed = Vector3( 0.8, 0.2, 0.8 )
- [node name="KinematicBody" type="KinematicBody" parent="Camera" groups=["player"]]
- collision_layer = 2
- input_ray_pickable = false
- [node name="CollisionShape" type="CollisionShape" parent="Camera/KinematicBody"]
- shape = SubResource( 3 )
- [node name="depth_debug" type="MeshInstance" parent="Camera"]
- visible = false
- material_override = SubResource( 5 )
- mesh = SubResource( 6 )
- [node name="mid_debug" type="MeshInstance" parent="Camera"]
- visible = false
- material_override = SubResource( 9 )
- mesh = SubResource( 6 )
- [node name="floor_scene" parent="." instance=ExtResource( 1 )]
- [node name="debug" type="Control" parent="."]
- anchor_right = 1.0
- anchor_bottom = 1.0
- script = ExtResource( 9 )
- __meta__ = {
- "_edit_use_anchors_": false
- }
- [node name="scr" type="Panel" parent="debug"]
- visible = false
- anchor_right = 1.0
- anchor_bottom = 1.0
- margin_right = -723.0
- margin_bottom = -392.0
- custom_styles/panel = SubResource( 10 )
- __meta__ = {
- "_edit_use_anchors_": false
- }
- [node name="scr" type="TextureRect" parent="debug/scr"]
- material = SubResource( 12 )
- anchor_right = 1.0
- anchor_bottom = 1.0
- texture = SubResource( 13 )
- expand = true
- flip_v = true
- __meta__ = {
- "_edit_use_anchors_": false
- }
- [node name="audio" type="Panel" parent="debug"]
- visible = false
- anchor_right = 1.0
- anchor_bottom = 1.0
- margin_left = 723.41
- margin_right = 0.409668
- margin_bottom = -392.0
- custom_styles/panel = SubResource( 10 )
- __meta__ = {
- "_edit_use_anchors_": false
- }
- [node name="audio" type="TextureRect" parent="debug/audio"]
- material = SubResource( 14 )
- anchor_right = 1.0
- anchor_bottom = 1.0
- texture = SubResource( 15 )
- expand = true
- flip_v = true
- __meta__ = {
- "_edit_use_anchors_": false
- }
- [node name="btns" type="Control" parent="debug"]
- margin_right = 40.0
- margin_bottom = 40.0
- __meta__ = {
- "_edit_use_anchors_": false
- }
- [node name="debug_mid" type="Button" parent="debug/btns"]
- margin_right = 128.0
- margin_bottom = 20.0
- text = "debug_material_id"
- __meta__ = {
- "_edit_use_anchors_": false
- }
- [node name="debug_mid2" type="Button" parent="debug/btns"]
- margin_top = 20.0
- margin_right = 128.0
- margin_bottom = 40.0
- text = "debug_scr_texture"
- __meta__ = {
- "_edit_use_anchors_": false
- }
- [node name="debug_mid3" type="Button" parent="debug/btns"]
- margin_top = 40.0
- margin_right = 139.0
- margin_bottom = 60.0
- text = "debug_audio_texure"
- __meta__ = {
- "_edit_use_anchors_": false
- }
- [node name="debug_mid4" type="Button" parent="debug/btns"]
- margin_left = 2.0
- margin_top = 63.0
- margin_right = 96.0
- margin_bottom = 83.0
- text = "debug_depth"
- __meta__ = {
- "_edit_use_anchors_": false
- }
- [node name="mid_select" type="OptionButton" parent="debug/btns"]
- margin_left = 138.543
- margin_top = 2.97302
- margin_right = 195.543
- margin_bottom = 22.973
- text = "1.0"
- items = [ "0.25", null, false, 0, null, "0.5", null, false, 1, null, "0.75", null, false, 2, null, "1.0", null, false, 3, null ]
- selected = 3
- __meta__ = {
- "_edit_use_anchors_": false
- }
- [node name="mid_c" type="Label" parent="debug/btns"]
- margin_left = 196.814
- margin_top = 6.54063
- margin_right = 406.814
- margin_bottom = 20.5406
- text = "materialID viewport render scale"
- __meta__ = {
- "_edit_use_anchors_": false
- }
- [node name="glow_b" type="CheckButton" parent="debug/btns"]
- visible = false
- margin_left = 158.759
- margin_top = 17.2435
- margin_right = 371.759
- margin_bottom = 57.2435
- text = "Glow postprocessing"
- [node name="light" type="Spatial" parent="."]
- [node name="portal" type="Spatial" parent="light"]
- transform = Transform( 0.25, 0, 0, 0, 0, -0.35, 0, 1, 0, 0.161386, 0.428029, 3.05676 )
- [node name="OmniLight" type="OmniLight" parent="light/portal"]
- transform = Transform( 4, 0, 0, 0, 0, 1, 0, -2.85714, 0, 0, 0, 0 )
- light_color = Color( 0.247059, 0.572549, 0.94902, 1 )
- omni_range = 1.5
- omni_attenuation = 2.2974
- [node name="l1" type="Spatial" parent="light"]
- transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 4.25443, 0.943628, 0.877396 )
- [node name="OmniLight" type="OmniLight" parent="light/l1"]
- light_color = Color( 0.815686, 0.996078, 0.92549, 1 )
- omni_range = 2.0
- omni_attenuation = 2.2974
- [node name="l2" type="Spatial" parent="light"]
- transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 4.25443, 0.943628, -3.84924 )
- [node name="OmniLight" type="OmniLight" parent="light/l2"]
- light_color = Color( 0.815686, 0.996078, 0.92549, 1 )
- omni_range = 2.0
- omni_attenuation = 2.2974
- [node name="light_red" type="Spatial" parent="light"]
- transform = Transform( 0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.0441094, 0.67947, -0.490301 )
- [node name="OmniLight" type="OmniLight" parent="light/light_red"]
- transform = Transform( 10, 0, 0, 0, 10, 0, 0, 0, 10, 2.18821, 0, 0 )
- light_color = Color( 0.94902, 0.313726, 0.247059, 1 )
- omni_range = 1.5
- omni_attenuation = 2.2974
- [node name="light_green" type="Spatial" parent="light"]
- transform = Transform( 0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.0122819, 0.697779, -3.51115 )
- [node name="OmniLight" type="OmniLight" parent="light/light_green"]
- transform = Transform( 10, 0, 0, 0, 10, 0, 0, 0, 10, 2.18821, 0, 0 )
- light_color = Color( 0.247059, 0.866667, 0.94902, 1 )
- omni_range = 1.5
- omni_attenuation = 2.2974
- [node name="DirectionalLight" type="DirectionalLight" parent="light"]
- transform = Transform( 0.640338, 0.46425, -0.611915, 0, 0.796667, 0.604419, 0.768094, -0.387032, 0.510136, 0, 6.79872, 0 )
- light_color = Color( 0.92549, 0.811765, 0.619608, 1 )
- light_energy = 0.2
- shadow_enabled = true
- directional_shadow_normal_bias = 0.05
- [node name="bg_particles" type="Spatial" parent="."]
- script = ExtResource( 12 )
- [node name="cubes" type="Particles" parent="bg_particles"]
- transform = Transform( -1.62921e-07, 0, 1, 0, 1, 0, -1, 0, -1.62921e-07, 3.09396, 1.27158, -1.52397 )
- visible = false
- material_override = SubResource( 17 )
- cast_shadow = 0
- amount = 150
- explosiveness = 1.0
- visibility_aabb = AABB( -11.2998, -9.04119, -13.3325, 22.5996, 17.6927, 26.665 )
- process_material = SubResource( 19 )
- draw_pass_1 = SubResource( 20 )
- [node name="cubes_o" type="Particles" parent="bg_particles"]
- transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 4.23958, 0.562506, -7.08001 )
- material_override = SubResource( 22 )
- amount = 30
- lifetime = 12.0
- fixed_fps = 60
- visibility_aabb = AABB( -2.54261, -2.35397, -2.64591, 5.08522, 4.70794, 5.29182 )
- process_material = SubResource( 25 )
- draw_pass_1 = SubResource( 26 )
- [node name="basic_p" type="Particles" parent="bg_particles"]
- transform = Transform( -1, 0, -3.25841e-07, 0, 1, 0, 3.25841e-07, 0, -1, -14.5722, 0, 0.119 )
- visible = false
- material_override = SubResource( 27 )
- amount = 360
- explosiveness = 1.0
- fixed_fps = 60
- visibility_aabb = AABB( -10.8045, -8.03291, -12.3129, 21.609, 16.0658, 24.6257 )
- process_material = SubResource( 28 )
- draw_pass_1 = ExtResource( 15 )
- [node name="demo_p" type="Spatial" parent="bg_particles"]
- transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 4.1774, 0.593333, -1.57102 )
- [node name="line_glow" type="MeshInstance" parent="bg_particles/demo_p"]
- transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.789315, -0.06314, 1.48928 )
- material_override = SubResource( 29 )
- cast_shadow = 0
- mesh = SubResource( 30 )
- [node name="cube" type="MeshInstance" parent="bg_particles/demo_p"]
- transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.871903, -0.155258, 2.07328 )
- material_override = SubResource( 31 )
- cast_shadow = 0
- mesh = SubResource( 30 )
- [node name="cloud" type="MeshInstance" parent="bg_particles/demo_p"]
- transform = Transform( 0.25, 0, 0, 0, 0.25, 0, 0, 0, 0.25, 0.81654, -0.06314, 2.80376 )
- material_override = SubResource( 32 )
- mesh = ExtResource( 23 )
- [node name="spark" type="MeshInstance" parent="bg_particles/demo_p"]
- transform = Transform( 5, 0, 0, 0, 5, 0, 0, 0, 5, 0.811754, -0.06314, 0.999721 )
- material_override = SubResource( 33 )
- mesh = ExtResource( 33 )
- [node name="sparks_fountain" type="Particles" parent="bg_particles/demo_p"]
- transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.713067, -0.583333, -0.600695 )
- material_override = SubResource( 34 )
- cast_shadow = 0
- amount = 6000
- explosiveness = 1.0
- process_material = SubResource( 36 )
- draw_pass_1 = ExtResource( 41 )
- [node name="decal_demo" type="MeshInstance" parent="bg_particles/demo_p"]
- transform = Transform( 0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, -2.24683, -0.593333, -3.34419 )
- material_override = SubResource( 38 )
- cast_shadow = 0
- mesh = SubResource( 39 )
- script = ExtResource( 31 )
- [node name="expl" type="Spatial" parent="bg_particles/demo_p/decal_demo"]
- [node name="Particles" type="Particles" parent="bg_particles/demo_p/decal_demo/expl"]
- transform = Transform( 5, 0, 0, 0, 5, 0, 0, 0, 5, 0, 1.60634, 0 )
- material_override = SubResource( 41 )
- emitting = false
- amount = 25
- lifetime = 4.0
- one_shot = true
- explosiveness = 1.0
- visibility_aabb = AABB( -6.37626, -1.27894, -1.65228, 9.7408, 2.55786, 11.4374 )
- draw_order = 2
- process_material = SubResource( 50 )
- draw_pass_1 = ExtResource( 23 )
- [node name="Particles2" type="Particles" parent="bg_particles/demo_p/decal_demo/expl"]
- transform = Transform( 5, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0.301455, 0 )
- material_override = SubResource( 41 )
- emitting = false
- amount = 65
- lifetime = 3.0
- one_shot = true
- explosiveness = 1.0
- visibility_aabb = AABB( -6.6369, -1.53509, -1.49215, 10.7406, 3.07019, 10.8388 )
- draw_order = 2
- process_material = SubResource( 59 )
- draw_pass_1 = ExtResource( 23 )
- [node name="expl" type="MeshInstance" parent="bg_particles/demo_p/decal_demo/expl"]
- transform = Transform( 5, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0.788027, 0 )
- material_override = SubResource( 61 )
- mesh = SubResource( 62 )
- [node name="cube_repeat" type="Particles" parent="bg_particles"]
- transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2.92296, 0.593333, -0.968742 )
- material_override = SubResource( 63 )
- cast_shadow = 0
- amount = 240
- explosiveness = 1.0
- visibility_aabb = AABB( -1.02724, -0.989833, -1.00944, 2.05449, 1.97967, 2.01889 )
- draw_order = 2
- process_material = SubResource( 64 )
- draw_pass_1 = ExtResource( 22 )
- [node name="cube" type="MeshInstance" parent="bg_particles/cube_repeat"]
- material_override = SubResource( 66 )
- cast_shadow = 0
- mesh = SubResource( 67 )
- [node name="cube2" type="MeshInstance" parent="bg_particles/cube_repeat"]
- material_override = SubResource( 69 )
- cast_shadow = 0
- mesh = SubResource( 67 )
- [node name="door_lines" type="Particles" parent="bg_particles"]
- transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.9332, 0.62161, 1.48292 )
- visible = false
- material_override = SubResource( 71 )
- amount = 30
- lifetime = 2.6
- visibility_aabb = AABB( -1.23761, -1.30468, -1.1919, 3.89807, 2.60935, 2.3838 )
- process_material = SubResource( 78 )
- draw_pass_1 = SubResource( 79 )
- [node name="door_lines2" type="Particles" parent="bg_particles"]
- transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.93274, 0.622, 0.782 )
- visible = false
- material_override = SubResource( 81 )
- amount = 30
- lifetime = 2.6
- visibility_aabb = AABB( -1.23761, -1.30468, -1.1919, 3.89807, 2.60935, 2.3838 )
- process_material = SubResource( 86 )
- draw_pass_1 = SubResource( 79 )
- [node name="audio" type="Spatial" parent="."]
- transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -14.572, 0, 0.119 )
- script = ExtResource( 19 )
- [node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="audio"]
- transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.517145 )
- stream = ExtResource( 18 )
- unit_size = 15.0
- max_db = 0.0
- bus = "background"
- [node name="areas" type="Spatial" parent="."]
- script = ExtResource( 24 )
- [node name="portal_area" type="Area" parent="areas"]
- transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.316135, 0.584528, 2.90208 )
- [node name="CollisionShape" type="CollisionShape" parent="areas/portal_area"]
- shape = SubResource( 87 )
- [node name="show_map" type="Area" parent="areas"]
- transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.543492, 0.538406, 1.54197 )
- [node name="CollisionShape" type="CollisionShape" parent="areas/show_map"]
- transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0164739, 0, 0 )
- shape = SubResource( 88 )
- [node name="show_bg" type="Area" parent="areas"]
- transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.68925, 0.538406, 1.54197 )
- [node name="CollisionShape" type="CollisionShape" parent="areas/show_bg"]
- shape = SubResource( 89 )
- [node name="particle_effects" type="Spatial" parent="."]
- [node name="clouds" type="Spatial" parent="particle_effects"]
- transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.48667, 0.064174, -3.47213 )
- [node name="Particles" type="Particles" parent="particle_effects/clouds"]
- transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.661314, 0.0232854, 0.496328 )
- material_override = SubResource( 91 )
- cast_shadow = 0
- amount = 60
- lifetime = 2.0
- explosiveness = 0.95
- visibility_aabb = AABB( -1.51688, -0.741254, -1.59261, 3.03377, 1.48251, 3.18523 )
- draw_order = 2
- process_material = SubResource( 98 )
- draw_pass_1 = SubResource( 99 )
- [node name="Particles2" type="Particles" parent="particle_effects/clouds"]
- transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0118936, 0 )
- cast_shadow = 0
- amount = 120
- lifetime = 7.0
- visibility_aabb = AABB( -1.10512, -0.802091, -0.791453, 2.21024, 1.60418, 1.58291 )
- local_coords = false
- process_material = SubResource( 106 )
- draw_pass_1 = SubResource( 113 )
- [node name="sparks" type="Particles" parent="particle_effects"]
- transform = Transform( 1, 0, 0, 0, -1.62921e-07, 1, 0, -1, -1.62921e-07, -0.219415, 0.645856, -0.177204 )
- material_override = SubResource( 114 )
- cast_shadow = 0
- amount = 180
- lifetime = 2.7
- visibility_aabb = AABB( -1.19382, -1.24512, -0.647138, 2.38764, 2.49024, 1.29428 )
- process_material = SubResource( 123 )
- draw_pass_1 = ExtResource( 33 )
- [node name="sparks_fountain" type="Particles" parent="particle_effects"]
- transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.201619, 0.00999999, -0.699956 )
- material_override = SubResource( 124 )
- cast_shadow = 0
- amount = 2400
- explosiveness = 1.0
- process_material = SubResource( 126 )
- draw_pass_1 = ExtResource( 41 )
- script = ExtResource( 38 )
- [node name="portal" type="Spatial" parent="particle_effects"]
- transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.316135, 0.584528, 2.90208 )
- script = ExtResource( 44 )
- [node name="Particles" type="Particles" parent="particle_effects/portal"]
- transform = Transform( 1, 0, 0, 0, 0.00938958, -0.999956, 0, 0.999956, 0.00938958, 0, 1.19209e-07, 0 )
- material_override = SubResource( 128 )
- cast_shadow = 0
- amount = 50
- lifetime = 2.5
- process_material = SubResource( 133 )
- draw_pass_1 = ExtResource( 45 )
- [node name="Particles2" type="Particles" parent="particle_effects/portal"]
- material_override = SubResource( 135 )
- cast_shadow = 0
- emitting = false
- amount = 300
- lifetime = 0.75
- fixed_fps = 60
- process_material = SubResource( 144 )
- draw_pass_1 = SubResource( 145 )
- [node name="portal" type="Spatial" parent="particle_effects/portal"]
- [node name="p2" type="MeshInstance" parent="particle_effects/portal/portal"]
- transform = Transform( 0.2, 0, 0, 0, -3.25841e-08, 0.2, 0, -0.2, -3.25841e-08, 0, 0, 0 )
- material_override = SubResource( 146 )
- cast_shadow = 0
- mesh = ExtResource( 36 )
- [node name="p1" type="MeshInstance" parent="particle_effects/portal/portal"]
- transform = Transform( 0.2, 0, 0, 0, -3.25841e-08, 0.2, 0, -0.2, -3.25841e-08, 0, 0, 0 )
- material_override = SubResource( 148 )
- mesh = ExtResource( 42 )
- [node name="p" type="MeshInstance" parent="particle_effects/portal/portal"]
- transform = Transform( 0.2, 0, 0, 0, -3.25841e-08, 0.2, 0, -0.2, -3.25841e-08, 0, 0, 0 )
- material_override = SubResource( 150 )
- cast_shadow = 0
- mesh = ExtResource( 43 )
- [node name="running" type="Spatial" parent="particle_effects"]
- transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.39901, 0.0386778, -2.18615 )
- [node name="character" parent="particle_effects/running" instance=ExtResource( 47 )]
- transform = Transform( 0.35, 0, 0, 0, 0.35, 0, 0, 0, 0.35, 0, 0, 0 )
- [node name="Particles" type="Particles" parent="particle_effects/running"]
- transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0197099, 0 )
- material_override = SubResource( 91 )
- cast_shadow = 0
- amount = 60
- lifetime = 1.75
- visibility_aabb = AABB( -1.51688, -0.741254, -1.59261, 3.03377, 1.48251, 3.18523 )
- local_coords = false
- draw_order = 2
- process_material = SubResource( 155 )
- draw_pass_1 = SubResource( 99 )
- [node name="AnimationPlayer" type="AnimationPlayer" parent="particle_effects/running"]
- autoplay = "rotation"
- anims/rotation = SubResource( 156 )
- [node name="target" type="Spatial" parent="."]
- script = ExtResource( 30 )
- [node name="target" type="Spatial" parent="target"]
- [node name="MeshInstance" type="MeshInstance" parent="target/target"]
- transform = Transform( 0.707107, 0, 0.707107, 0, 1, 0, -0.707107, 0, 0.707107, 0, 0, 0 )
- material_override = SubResource( 157 )
- cast_shadow = 0
- mesh = SubResource( 158 )
- [node name="MeshInstance2" type="MeshInstance" parent="target/target"]
- transform = Transform( 0.707107, 0, -0.707107, 0, 1, 0, 0.707107, 0, 0.707107, 0, 0, 0 )
- material_override = SubResource( 157 )
- cast_shadow = 0
- mesh = SubResource( 158 )
- [node name="decals_spawn" type="Spatial" parent="."]
- script = ExtResource( 8 )
- [node name="decal" type="MeshInstance" parent="decals_spawn"]
- transform = Transform( 0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, 0, 0 )
- visible = false
- material_override = SubResource( 160 )
- cast_shadow = 0
- mesh = SubResource( 39 )
- script = ExtResource( 5 )
- [node name="expl" type="Spatial" parent="decals_spawn/decal"]
- [node name="Particles" type="Particles" parent="decals_spawn/decal/expl"]
- transform = Transform( 5, 0, 0, 0, 5, 0, 0, 0, 5, 0, 1.60634, 0 )
- material_override = SubResource( 41 )
- emitting = false
- amount = 25
- lifetime = 6.0
- one_shot = true
- explosiveness = 1.0
- visibility_aabb = AABB( -1.27255, -1.13129, -1.28546, 2.54511, 2.26257, 2.57093 )
- draw_order = 2
- process_material = SubResource( 50 )
- draw_pass_1 = ExtResource( 23 )
- [node name="Particles2" type="Particles" parent="decals_spawn/decal/expl"]
- transform = Transform( 5, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0.301455, 0 )
- material_override = SubResource( 41 )
- emitting = false
- amount = 65
- lifetime = 4.0
- one_shot = true
- explosiveness = 1.0
- visibility_aabb = AABB( -1.08952, -1.05151, -1.07956, 2.17905, 2.10303, 2.15913 )
- draw_order = 2
- process_material = SubResource( 59 )
- draw_pass_1 = ExtResource( 23 )
- [node name="expl" type="MeshInstance" parent="decals_spawn/decal/expl"]
- transform = Transform( 5, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0.788027, 0 )
- material_override = SubResource( 161 )
- mesh = SubResource( 62 )
- [node name="spawn" type="Spatial" parent="decals_spawn"]
- [node name="unused" type="Spatial" parent="."]
- transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2.30245, 0, 0 )
- visible = false
- [node name="sparks_round" type="Particles" parent="unused"]
- material_override = SubResource( 162 )
- cast_shadow = 0
- amount = 2000
- lifetime = 6.0
- fixed_fps = 60
- visibility_aabb = AABB( -1.19382, -1.24512, -0.647138, 2.38764, 2.49024, 1.29428 )
- process_material = SubResource( 171 )
- draw_pass_1 = ExtResource( 35 )
- [node name="preloading" type="Spatial" parent="."]
- script = ExtResource( 48 )
- [node name="loading" type="Control" parent="preloading"]
- anchor_right = 1.0
- anchor_bottom = 1.0
- __meta__ = {
- "_edit_use_anchors_": false
- }
- [node name="TextureRect" type="TextureRect" parent="preloading/loading"]
- anchor_right = 1.0
- anchor_bottom = 1.0
- texture = ExtResource( 49 )
- expand = true
- __meta__ = {
- "_edit_use_anchors_": false
- }
- [connection signal="pressed" from="debug/btns/debug_mid" to="debug" method="_on_debug_mid_pressed"]
- [connection signal="pressed" from="debug/btns/debug_mid2" to="debug" method="_on_debug_mid2_pressed"]
- [connection signal="pressed" from="debug/btns/debug_mid3" to="debug" method="_on_debug_mid3_pressed"]
- [connection signal="pressed" from="debug/btns/debug_mid4" to="debug" method="_on_debug_mid4_pressed"]
- [connection signal="item_selected" from="debug/btns/mid_select" to="material_id" method="_on_mid_select_item_selected"]
- [connection signal="toggled" from="debug/btns/glow_b" to="debug" method="_on_glow_b_toggled"]
- [connection signal="body_entered" from="areas/portal_area" to="areas" method="_on_portal_area_body_entered"]
- [connection signal="body_exited" from="areas/portal_area" to="areas" method="_on_portal_area_body_exited"]
- [connection signal="body_entered" from="areas/show_map" to="areas" method="_on_show_map_body_entered"]
- [connection signal="body_entered" from="areas/show_bg" to="areas" method="_on_show_bg_body_entered"]
|