bplist00_editorViewerWindowYrootPatch_inputParameters_115 188 934 561 0 0 1280 832  UclassUstateWQCPatch XtimebaseXuserInfo_publishedInputPorts[connectionsUnodesVparentO typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+ scrollingNSValue* {_NSPoint=ff}?.TportSkeyTnodeZZ_PositionWPatch_41 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJRW[_cfhlnrux{}]connection_42]connection_44]connection_46]connection_48]connection_10]connection_12]connection_14]connection_16]connection_18\connection_1\connection_5]connection_21]connection_23\connection_9]connection_27]connection_25]connection_29]connection_30]connection_32]connection_34]connection_36]connection_38\connection_2\connection_6]connection_41]connection_43]connection_45]connection_47]connection_49]connection_11]connection_13]connection_15]connection_17]connection_19\connection_3]connection_20\connection_7]connection_24]connection_26]connection_28]connection_22]connection_31]connection_33]connection_35]connection_37]connection_39\connection_4\connection_8]connection_40KLMNOPQZsourceNodeZsourcePort_destinationNode_destinationPort\JavaScript_1Xoutput_3WPatch_9KLMNSTUV[TextImage_1[outputImage[Billboard_1ZinputImageKLMNOXYZYoutput_28\JavaScript_2Winput_3KLMN\T]^]PlasmaImage_5WPatch_3UImageKLMNO`abXoutput_5WPatch_2ZY_PositionKLMNOdebYoutput_17WPatch_7KLMNOg]bXoutput_9KLMNijOkXRandom_3[outputValueWinput_5KLMNOmeYoutput_18KLMNopqWMouse_1WoutputXZX_PositionKLMNosOtWoutputYWinput_2KLMNvjOwXRandom_4Winput_6KLMNOy]zYoutput_11TSizeKLMNO|aqXoutput_4KLMNO~Youtput_14WPatch_5KLMNOqYoutput_12KLMNObYoutput_21WPatch_8KLMNOYoutput_22KLMNOYXoutput_1Winput_0KLMNOqYoutput_24WPatch_6KLMNOYoutput_26KLMNOPYtKLMNosbKLMNOazXoutput_7KLMNOQbXoutput_2KLMNYSXoutput_0[inputStringKLMNOXqXPatch_10KLMN\T^KLMN\Ta^KLMNjOZXRandom_1KLMNO]qXoutput_8KLMNjOXRandom_2Winput_4KLMNT^]PlasmaImage_1KLMNOezYoutput_19KLMNOVTime_1ZoutputTimeKLMNOqYoutput_20KLMNOeqYoutput_16KLMNoO]outputButton1Winput_7KLMNObYoutput_13KLMNOzYoutput_15KLMNO]Youtput_10KLMNOzYoutput_23KLMNOYWinput_1KLMNObYoutput_25KLMNOzYoutput_27KLMNjOXRandom_5Winput_8KLMNopOKLMNOaXoutput_6KLMNOQqy} lsz%O(,:x _systemInputPortStatesW_enableUvalue O typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+name BackgroundpositionNSValue* {_NSPoint=ff}Ёp description(A 3D revolving background made of cubes. scrollingt_inputAmbientColorUgreenTblueUalphaSred"=""?ZLighting_1]Ambient_Light_Rotation_Period #@= Oz typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+nameRotation Period[Size_Period #@37Ov typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+name Size PeriodWQCClear _ivarInputPortStates_clearDepthBuffer_clearColorBufferZinputColorO typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {_NSPoint=ff} WClear_1ZQCGradient  [inputColor3^inputDirection[inputColor1[inputColor2]inputBlending"?Yt    ">    "? O typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {_NSPoint=ff}XZGradient_1ZQCLighting  [hno_customInputPortStates]lightTwoSidesZlightCount  !ZXQCCamera "%<=C# &'()*+,-./0134679:\inputOriginY\inputOriginZ\inputRotateX\inputRotateY_inputTranslateZ\inputRotateZ_inputTranslateY\inputOriginX_inputTranslateX2#@V25#?8#;#333333O typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {_NSPoint=ff}Ȇ scrollingᆆ>A?@ \Replicator_2B@ DEF@\QCReplicator GJijpH &K'LMNOPQRST-UVWYZ[\]^`abcefgh_inputInterpolation_inputTranslationX^inputRotationY_inputOrientationZ[inputCopies_inputOrientationY_inputOrientationX^inputRotationZ_inputTranslationZ^inputRotationXZinputScale_inputTranslationYX#X_d#@O typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {_NSPoint=ff}@s scrollingᆆknlm \Replicator_1om qErm svt &K'LMNOPQRST-UVwxyz{|}d~#陙O typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {_NSPoint=ff}} scrolling`Uinput ZSplitter_2 ZSplitter_1&<8H=0#G>:;7/%"A6$KLMNjVMath_1VCube_1WinputRXKLMNZSplitter_4Voutput_inputColorBottomKLMNj_Interpolation_4ZinputDepthKLMNjVMath_2WinputRYKLMNZSplitter_6^inputColorLeftKLMN_inputColorRightKLMNj_Interpolation_3[inputHeightKLMN]inputDurationKLMNKLMN_Interpolation_2KLMNZSplitter_5^inputColorBackKLMN_Interpolation_1KLMNjULFO_1Yoperand_1KLMNjULFO_2ZinputValueKLMN[inputPeriodKLMN]inputColorTopKLMNjKLMNKLMNjZinputWidthKLMN_inputColorFrontKLMNj !,6?DLSVQCCube \inputZBufferWinputRZ\inputCullingVinputZVinputYVinputX#@kʤ6  O typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {_NSPoint=ff}ׁVQCMath ^operationCount[operation_1O typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {_NSPoint=ff}Y O typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {_NSPoint=ff}ہن_QCInterpolation  \inputTension[inputValue2[inputValue1[inputRepeat#@vKO typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {_NSPoint=ff}=UQCLFO   ZrandomSeedYinputType[inputOffset^inputAmplitude]inputPWMRatioZinputPhase2#@4 q$TO typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {_NSPoint=ff}nq     #@f ,O typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {_NSPoint=ff}W   d KO typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {_NSPoint=ff}\"  #)+$%'(&#@ K*O typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {_NSPoint=ff}e-  .35/012 K4O typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {_NSPoint=ff}fㆆ78ZQCSplitter9: ;<>YportClassXinputMin\QCNumberPort=O typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {_NSPoint=ff}Y~7@9: ;ACBO typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {_NSPoint=ff}Ё7E9 FGK[QCColorPortHIJJJ"?&gO typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {_NSPoint=ff}Æ7M9 FNROPQQQ"?O typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {_NSPoint=ff}7T9 FUYVWXXX"?LO typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {_NSPoint=ff}VXCamera_1\]^_`abdeg[positionX_1Wcolor_1[positionY_1]attenuation_1[positionZ_1Xcf#?əڢikjZ lZ O typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {_NSPoint=ff}x scrollingF pqrtv_inputObjectShininess_inputObjectSpecularsu#@S`w#?WPatch_1z{VQCTime |O typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {_NSPoint=ff}ρB~oWQCMouse O typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {_NSPoint=ff}ȁ$O\QCJavaScript ZinputCountVscript[outputCount _// ----------------------- // qcStarCubes // ----------------------- // // pincoding // // version 0.5b // author t00cg@la1n // contact info@la1n.ch // technic Quark Composer // // greetings /* the most important thing: you can get and store things in something like a rotating cube // the pins // input 0 - Timer 1 - MouseX 2 - MouseY 3- random 4- random 7 - pushed button // ouput 0 - Timer ( 0 - 20 ) 1 - Score 2 - Shield 3 - Status 4 - cube0x 5 - cube0y 6 - cube0z 7 - cube0size 28 - highscore etc */ // ------------------------ // status of the game etc // ------------------------ // score if (outputs[1]==null) outputs[1]=0; // shield if (outputs[2]==null) outputs[2]=100; // status if (outputs[3]==null) outputs[3]=0; // highscore if (outputs[28]==null) outputs[28]=0; // outputs[29]=0+outputs[28]; // start gaming if ((inputs[7]) && ((outputs[3]==0) || (outputs[3]==2))) { // game now outputs[3]=1; // shield outputs[2]=100; // score outputs[1]=0; } // ------------- // timer // ------------- // timer 0-20 outputs[0]=(Math.floor(inputs[0]*20)%20); var timer=outputs[0]; var cubeIndex=0; var cubeIndexStart=4; var cubeMembers=4; // shoots start at pin > 3 var shootIndex=3; // ---------------------------- // cube x + bullets // ---------------------------- var groundIndex=0; var i=0; for (var i=0;i<6;i++) { cubeIndex=i; groundIndex=cubeIndexStart+ cubeMembers* cubeIndex; if ( outputs[groundIndex+0]==null) { outputs[groundIndex+0]=0; outputs[groundIndex+1]=0; outputs[groundIndex+2]=0; } // go on // ----------------------- // the cubes // ----------------------- if (shootIndex>i) { outputs[groundIndex+2]=outputs[groundIndex+2]+0.3; // display the dangerous cubes var range=0.4; if (outputs[groundIndex+0]< range) if (outputs[groundIndex+0]> -range) if (outputs[groundIndex+1]< range) if (outputs[groundIndex+1]> -range) { // outputs[groundIndex+3]= outputs[groundIndex+3]+inputs[8]; } // reset cubes if (shootIndex>i) { // is the cube at the end of the way? if (outputs[groundIndex+2]>2.0) { // wait a random time ... // sending next cube if ((inputs[5]>i*0.1)) { // shield? var range=0.4; if (outputs[groundIndex+0]< range) if (outputs[groundIndex+0]> -range) if (outputs[groundIndex+1]< range) if (outputs[groundIndex+1]> -range) if (outputs[groundIndex+3]!=0.01) { // outputs[groundIndex+3]= outputs[groundIndex+3]+inputs[8]; // shield - 10 outputs[2]=outputs[2]-10; // game over if (outputs[2]<0) { // status 2 ! // game over outputs[3]=2; // timer // outputs[28]=input[0]+4000; } } outputs[groundIndex+0]=inputs[3]; outputs[groundIndex+1]=inputs[4]; outputs[groundIndex+2]=-9-i*inputs[5]; outputs[groundIndex+3]=inputs[6]; } } } } else // fly ... if (outputs[groundIndex+2]<0.1) { outputs[groundIndex+2]=outputs[groundIndex+2]-0.3; } else { // shoot x? var shootx=i-shootIndex; // smaller outputs[groundIndex+3]=0.01; // all bullets on the backside of the ship if (shootx==0) { outputs[groundIndex+0]=inputs[1]-0.05; outputs[groundIndex+1]=inputs[2]-0; } if (shootx==1) { outputs[groundIndex+0]=inputs[1]+0.05; outputs[groundIndex+1]=inputs[2]-0; } if (shootx==2) { outputs[groundIndex+0]=inputs[1]+0; outputs[groundIndex+1]=inputs[2]-0.05; } // ------------------------------------- // shoot now // ------------------------------------- // shoot now ! if (inputs[7]) { // not all bullets at the same time var found=0; for (t=shootIndex;t<6;t++) { var zt=cubeIndexStart+ cubeMembers*t; if (outputs[zt+2]<0.1) if (outputs[zt+2]>-0.5) { found++; } } // do it : boom if (found==0) { outputs[groundIndex +0]=inputs[1]; outputs[groundIndex +1]=inputs[2]; outputs[groundIndex +2]=0.0; outputs[groundIndex +3]=0.1; } } outputs[groundIndex+3]=0.07; } // ------------------------------------- // shoots at the end of their trail // & shoots collision // ------------------------------------- if (shootIndex<=i) { // if (outputs[groundIndex+2]<0.1) // // collision? var found=0; if (outputs[groundIndex+2]<0.1) for (t=0;t< shootIndex;t++) { var cubex=cubeIndexStart+ cubeMembers*t; if (outputs[cubex+0]<0.0) if (outputs[cubex+0]-outputs[groundIndex+0]<(outputs[cubex+3]*2+outputs[groundIndex+3])) if (outputs[cubex+0]-outputs[groundIndex+0]>-(outputs[cubex+3]*2+outputs[groundIndex+3])) if (outputs[cubex+1]-outputs[groundIndex+1]<(outputs[cubex+3]*2+outputs[groundIndex+3])) if (outputs[cubex+1]-outputs[groundIndex+1]>-(outputs[cubex+3]*2+outputs[groundIndex+3])) if (((outputs[cubex+2]-outputs[groundIndex+2]<(outputs[cubex+3]*2+outputs[groundIndex+3])) && (outputs[cubex+2]-outputs[groundIndex+2]>-(outputs[cubex+3]*2+outputs[groundIndex+3]))) || (outputs[cubex+2]>-1.0)) { outputs[groundIndex+2]=-9.0; outputs[cubex +3]=0.01; // score outputs[1]=outputs[1]+10; // highscore if (outputs[28]R#@`#?sXQCRandom  [variability8/,`:XinputMaxX#?I O typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {_NSPoint=ff}w ]   O typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+namecube1positionNSValue* {_NSPoint=ff}a descriptionA rotating cube. scrolling円 ^^ zz qqbbܡ  DPZef  6@B! "3#$%&(*,-/1')+.024 7  8>9:;<=K?7A9 7C9: ;&/;G6#0=H"EFGHIJKLMNOKLMNjKLMNjKLMNKLMNKLMNKLMNKLMNKLMNKLMNKLMNKLMNQSUWXYRT^ Vz qb\]^_`[\abcX]^_`">̴">">ZO typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {_NSPoint=ff}^ scrolling/'pqgjkhiii"=wm  nqr:opX#?`O typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {_NSPoint=ff}ti  uxy:vwX#?]O typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {_NSPoint=ff}{|]QCPlasmaImage}~  Zanisotropy\wrappingModeVtarget[borderColorVheight]filteringMode\mipmapLevelsUwidth^MirroredRepeat]GL_TEXTURE_2D_R=0 G=0 B=0 A=0O typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {_NSPoint=ff}5U_inputColorMiddle]inputSaturate_inputColorStart]inputColorEnd"? ">s"?h"?B">  XBilinearv  x:#?zG{ O typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {_NSPoint=ff}ˆ  O typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+namecube2positionNSValue* {_NSPoint=ff}v- descriptionA rotating cube. scrolling円 ^^ zz qqbbܡ  e     K79 79: ;&/;G6#0=H"KLMNjKLMNjKLMNKLMNKLMNKLMNKLMNKLMNKLMNKLMNKLMN^ z qb\]^_`X^_`pq">{\}~    O typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {_NSPoint=ff}*MU     ">{">1"?b  @TNone  x$: "!###?O typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+nameRandom Cirtical CubspositionNSValue* {_NSPoint=ff}놆&e '*+6( O typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+name bulletCube0positionNSValue* {_NSPoint=ff}i descriptionA rotating cube. scrolling円,/1345- .#@^0^ z2z qqbbܡ78  9<amwe: =S]_> ?P@ABCEGIJLNDFHKMOQ T  U[VWXYZ.K\7^9 7`9: ;&/;G6#0=H"bcdefghijklKLMNjKLMNjKLMNKLMNKLMNKLMNKLMNKLMNKLMNKLMNKLMNnprtuvo.q^ sz qb\]^_`xy}~Xz{|">Y"=Xpq"?nK">+̬  O typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+name bulletCube1positionNSValue* {_NSPoint=ff}Ɔ descriptionA rotating cube. scrolling円 ^^ zz qqbbܡ  e     K79 79: ;&/;G6#0=H"KLMNjKLMNjKLMNKLMNKLMNKLMNKLMNKLMNKLMNKLMNKLMN^ z qb\]^_`X">"">3"=pq"?n  O typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+name bulletCube2positionNSValue* {_NSPoint=ff}ꆒ descriptionA rotating cube. scrolling円 ^^ zz qqbbܡ  %1;EF !#         K 7"9 7$9: ;&/;G6#0=H"&'()*+,-./0KLMNjKLMNjKLMNKLMNKLMNKLMNKLMNKLMNKLMNKLMNKLMN24689:35^ 7z qb\]^_`<=ABCX>?@"?n3">|O typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {_NSPoint=ff}x^ scrolling/'pqGKMHIJ"? +"= PL#@"I$N#?袊 PQ QTU`R O* typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+name Game StatuspositionNSValue* {_NSPoint=ff}/Y descriptionA rotating cube. scrolling冒note*x=Score y=Shield z=Status period=1=LevelVY[]^_W X#@g^Z^ z\z qqbbܡab  cfd g}h izjklmoqstvxnpruwy{ ~  XK79 79: ;&/;G6#0=H"KLMNjKLMNjKLMNKLMNKLMNKLMNKLMNKLMNKLMNKLMNKLMNX^ z qb\]^_`XO typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {_NSPoint=ff}d scrolling0'pq     O typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+name space cubepositionNSValue* {_NSPoint=ff}j3 descriptionA rotating cube. scrolling円 #@ 8#{^^ zz fqqbbܡ  e      K79 79: ;f&/;G6#0=H"KLMNjKLMNjKLMNKLMNKLMNKLMNKLMNKLMNKLMNKLMNKLMN^ z fqb\]^_`   X^_`pq"> U[QCBillboard #'[CIRenderingU !]inputRotation"?8ƹ #"#?$ O typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+namedisplaypositionNSValue* {_NSPoint=ff}Hq)Y *+_// output outputs[0] = " _qcStarCubes(la1n)__"; if ((inputs[2] ==0) || (inputs[2] ==2)) outputs[0]=outputs[0]+"...... game over ... press button to start ... " ; else outputs[0]=outputs[0]+"..greetings to dave@clockskew .. " ; /* if (inputs[2] ==1) outputs[0]=outputs[0]+" " ; */ // play if (inputs[2] ==1) { outputs[0]=outputs[0]+ " shield:"+inputs[1] ; } // shield outputs[0]=outputs[0]+ " score: " +inputs[0] ; // highshield outputs[0]=outputs[0]+ " highscore: " +inputs[3] ; O typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+nameOutputpositionNSValue* {_NSPoint=ff}Ɓ-.S[QCTextImage/0}~1 23456787XfontSizeXfontName_horizontalAlignment_verticalAlignment\manualLayout"AYHelvetica[ClampToEdgeVNormalO typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+positionNSValue* {_NSPoint=ff} ; <?@L= O  typedstream@NSMutableDictionary NSDictionaryNSObjectiNSString+name HighscorepositionNSValue* {_NSPoint=ff}Dy descriptionA rotating cube. scrolling冒note x=HighScore ACEGHJB X^D^ zFz qqbIbKڡMN  OR{P SkuwT UhVWXY[\^`abdfZ]_cegi l  msnopqrXKt7v9 7x9: ;yz&/;G6#0=H"|}~KLMNjKLMNjKLMNKLMNKLMNKLMNKLMNKLMNKLMNKLMNKLMNX^ z qb\]^_`Xpq   *4Ffou{orgu (6DR`n|"0>KYft (3EWdmu #,4?PZbs| #,4EOTen '/@J[l}    - 6 G P X i w  # - > H Y c t ~   + \ i ~      + 9 J \ e n    1)5AOTejoqvMXep 3@MZgy5:?@"1<PU^chmrw|~`ev"',16;@BGLQV[`ins$):@ITeny->P[ls{ (9K\gv ):KVgy!&/46;@EJOTU +0~    # . 3 8 = F K P U !!!"!$!)!2!7!&K&W&\&a&r&w' ''&'+'0'A'F'''''((((((((())) ))")')0)5):)K)T)e)n)o* *-*D*Z*_*p*u*~******+F+S+[+`+,,, ,+,2,>,@CCDDDDEEEEF FFF(FFFFG,G=GBGGGGGGHHHHH(H5HBHkHpHuHzHHHHHHHHHHHHIII IIIIIIIIIIIIJJJJKGKTKaKL#L4LELVLgLvLLLLLLLLM MM/MAMNM_MdMuMzMMMMMMMMMMMMMNNNNNNNNNNOOO#O(O1O:O?ODOMOOPP PPPQ QQ#Q4Q9QJQOQ\QiQvQyQQQQQQQQRR RRRR+R0RARFRWR\RaRrRwRRRRRRRRRRRRRRRRS SS"S/S\SmS~SSSSSSSTTT$T5T:TKTPTaTfTsTTTTTTTTTTTTTUUUUUUUUUUUUUVVVVVVVWeWrWWWWWWWWWXXXX/XXXYYY&Y+YkOk`kqk~kkkkkkkkkklllll!l&l+l0l5l6lClHlYl^lclhlullllmmmmmmmmmmnnnn;n@nEnFnOn\ninnnnnnnnnnnnnoooo*o/o4o5oBoSohomorowo|ooooooooop pp,p=pNp_pppppppppppppq qq.q3q8qIqNqSqXq]qbqcrr!r&r7r{C{T{Y{^{_{l{}{{{{{{{{{{{{{{| |1|B|S|d|u|||||||||}}}%}.};}H}U}j}o}t}}}}}}}}}}}}}}}~~$~)~:~?~D~I~N~W~\~a~j~o~t~u~v"/@>3CDMZg…Dž؅݅$):?DERcx}φԆه(9J[l}·߇ !27HMbgl}