gH]kDwP~trueSpace7.51[VS_O93Y*I Clinton Reese, RUR`d8pM*#ͺOmMPNG  IHDR`ZIDATx PDA4!hQr]|!no&Nw +VX` +VX` +VX` +VX` +VX` +0MzV>c by{=SCOg'JNjn*p"@+ NffMCONffMCODMyFileName\(I(c z@Hoz@Ho Control InTransitionIn(XFҦV>g'JNjn*p^DC~@@X@tveDCE`"IWJ}?A ?NffMCO<D:\Server2\zfat\walk1.md5anim-1OSM n 럆L<_ї˰Default Asp4 GFʠN=XGF; }} MyFileNameNffMCOZ`Ez]UO1釥GP>aXGF<NffMCOZ`Ez]UO#nKSM2P@GF4(\VVNffMCOZ`Ez]UOOˁ CRih[P@GF(^Activity.Run('%THIS_NAME%' + '/MD5AnimImport')ImportZ`Ez]UO GFʠN=@GF]}}<Click "..." to choose a file and then "Import" to read it inZ`Ez]UO GFʠN=F G1 }}NffMCOZ`Ez]UO1釥GP>aHG<NffMCOZ`Ez]UOz@Ho5 Fͤ*EgbỊ̆HdoomShapeX 2AEHM'2AEHM'LE2Data$LE2 Data for node >g'JNjn*p ceZU@䑧rceZU@䑧r$_scriptData*Internal Script data [җJs@ % 4W}@O{$ E(XFҦV#@,.;]kI 忞@" s-1OSM n#`(tveDCE`"IWJtveDCE`"IWJB Mesh"Ouput Shape Mesh >W5f@(䐈B2AEHM'>g'JNjn*pFBC`@0@?ceZU@䑧r[җJs@ NewObject// OnComputeOutputs // Called to compute values of all output connectors function OnComputeOutputs(params) { // TODO: put your computation here // Mesh = System.CreateDO('Space 3D Package/Mesh Data'); // params.conValue("Mesh") = Mesh } NScript Object Package/jScript language6Space 3D Package/Mesh Data Mesh"Ouput Shape MeshdJ4``w uNY4W}@O{(XFҦV>g'JNjn*pFB Bb@@@?.;]kI 忞@tveDCE`"IWJ>W5f@(䐈-1OSM n 럆L<_ї(48@J g'JNjn*pLE2Data, 3 MT^RwL~YYTMT^RwL~YYTޢLE2Data$LE2 Data for node >g'JNjn*p(INffMCOD@+ 2|=Bynj2|=Bynj Control OutTransitionOutz@Ho(c  2|=Bynj2AEHM'>g'JNjn*pnBC`@0@2|=Bynj|?z@Hoۙ>?ceZU@䑧r[җJs@ NewCommand// Doom3 md5anim import // April 2006 // clinton reese // // header 2 lines and an empty line // numFrames // numJoints // frameRate // numAnimatedComponents // hierarchy one line for each joint // name, parent index, 6bit anim flag and start index of animation then comment with parent name and human readable anim flag // bounds section // baseframe // all other frames - same format as baseframe except only animated elements listed // each line corresponds to non zero anim flag of joints // plan modify this code to read the md5anim format // // first build hierarchy then position and rotate joints into position // hierarchy is good and transforms are connected // TODO: read pos and rot info and apply // // reading in xyz and quat good TODO transform from data // 25 April 2006 IT WORKS! // had to use quat to euler for NASA Standard Airplane euler rotations // 2 problems // can't move origin // left and right are reversed on resulting skeleton // // April 30 animation read looks good // problem: can only read limited num of frames if try read too many get little or no animation // long animations - getting a key at the start and at the end but not any in between // solved: place a key at the end of the animation first // // 20 Nov 2006 // tS75 version start // try to use player animation on fake bone // don't know how do new bones animation or if it is even possible // // 17 Jan 2007 // not possible to do keyframe on subobjects so fake skeleton anim not possible at this time // // 10 Feb 2007 // can now keyframe subobjects // select "origin" and animate only selected to see animation // use pure quat rotation to matrix and now everything works perfectly // one thing left - access to true bones for animation and skinning // // 27 May 2007 - ts75 release not beta version // // Execute // Called to execute the command function Execute(params) { MyFileName = params.conValue('MyFileName'); // TODO: put your action code here System.Trace("start of import"); var forReading = 1, forWriting = 2, forAppending = 8; rline = new Array(); fs = new ActiveXObject("Scripting.FileSystemObject"); f = fs.GetFile(MyFileName); connToFile = f.OpenAsTextStream( forReading, 0); var count = 0; var myScale = 0.1; // 1 inch in doom3 = 0.1 meter in truespace while( !connToFile.AtEndOfStream ) { rline[count] = connToFile.ReadLine(); count++; } connToFile.Close(); // finished reading file var msg = ""; var jointCnt = -1; var baseframeCnt = -1; var hierarchyCnt = -1;//flag for hiarchy section var frameLine = -1;// flag read frame data jointMesh = new Array(); // joint position arrays jx = new Array(); jy = new Array(); jz = new Array(); // quaternion arrays for joints xq = new Array(); yq = new Array(); zq = new Array(); wq = new Array(); boneName = new Array(); boneFullName = new Array(); pBoneIndex = new Array(); animFlags = new Array(); animStart = new Array(); myMatrix = System.CreateDO("Math Package/Matrix Float Data"); rad2deg = 180/Math.PI; scene = Space.CurrentScene(); myCube = Space.Cube(1, 1, 1, 2, 2, 2); for(i = 0; i < rline.length; i++) { msg = rline[i]; // scoop one line from msg array. msgtag = msg.split(" "); if (msgtag[0] == "numFrames") { var numFrames = msgtag[1]; System.Trace("numFrames = " + numFrames); //set key at last frame solves "long" animation problem //tSBridge.PutActiveFrame(myCube, numFrames); //tSBridge.AnimationFrame = numFrames; //RsAnimKeying.AddAttribute(myCube,'Matrix'); RsAnim.SetAttrKeyFrame(myCube,'tx',0); //RsAnim.SetKeyFrame(myCube, numFrames); } if (msgtag[0] == "numJoints") { var numJoints = msgtag[1]; System.Trace("numJoints = " + numJoints); } if (msgtag[0] == "frameRate") { var frameRate = msgtag[1]; System.Trace("frameRate = " + frameRate); } if (msgtag[0] == "numAnimatedComponents") { var numAnimatedComponents = msgtag[1]; System.Trace("numAnimatedComponents = " + numAnimatedComponents); } // read hierarchy data if(hierarchyCnt != -1) { msgtagSub = msgtag[0].split("\t"); jointName = msgtagSub[1].substr(1,msgtagSub[1].length-2); //System.Trace(jointName); boneName[hierarchyCnt] = jointName; boneFullName[hierarchyCnt] = "error"; pBoneIndex[hierarchyCnt] = msgtagSub[2];// parent index //msgtagSub = msgtag[1].split("\t"); animFlags[hierarchyCnt] = msgtag[1];// msgtagSub = msgtag[2].split("\t"); animStart[hierarchyCnt] = msgtagSub[0];// //System.Trace(pBoneIndex[hierarchyCnt] + " ? " + animFlags[hierarchyCnt] + " ? " + animStart[hierarchyCnt]); //System.Trace("animFlags " + hierarchyCnt + " ? " + msgtag[1]); if(hierarchyCnt == 0) { encaps1 = Node.Create('Kernel Package/Object', encaps); //encaps is the root node of the skeleton encapsCurrent = Node.Rename(encaps1, jointName);//create first node inside skeleton Node.Copy(owner + "/doom3jointgeo", encapsCurrent);//copy geometry into the new node jointMesh[hierarchyCnt] = Node.Rename(encapsCurrent + "/doom3jointgeo", jointName + "geo"); boneFullName[hierarchyCnt] = encapsCurrent ; //System.Trace(boneFullName[hierarchyCnt]); Node.Copy(owner + "/doomTransform", encapsCurrent);//copy transform to new node Node.Rename(encapsCurrent + "/doomTransform", "Transform"); Node.ExportConnector(encapsCurrent + "/Transform","Matrix","",1,1); Node.ExportConnector(encapsCurrent + "/Transform","WldMatrix","",1,1); Node.ExportConnector(encapsCurrent + "/Transform","ObjMatrix","",1,1); Node.ExportConnector(encapsCurrent + "/Transform","OwnerMatrix","",1,1); Node.ConnectTo(encaps + "/Transform","WldMatrix",encaps + "/" + jointName,"OwnerMatrix");//hook node to transform Node.ConnectTo(encapsCurrent + "/Transform","WldMatrix",encapsCurrent + "/" + jointName + "geo","OwnerMatrix");//geo to transform // true bones here Node.Copy(owner + "/Skeleton", scene);//copy ts75 character to scene Node.Copy(owner + "/Joint", scene + "/Skeleton");//copy joint in temp = Node.Rename(scene + "/Skeleton/Joint", jointName + "Joint"); Node.Copy(owner + "/Bone", scene + "/Skeleton");//copy bone in temp = Node.Rename(scene + "/Skeleton/Bone", jointName + "Bone"); // note: order of arguments matters in ConnectTo, order of connections may matter //todo connect origin joint and skeleton bone node //dec2007 //Node.ConnectTo(scene + "/Skeleton/" + "skeletonBone","Bone",scene + "/Skeleton/" + jointName + "Joint","Bone"); ////todo connect origin joint and origin bone //Node.ConnectTo(scene + "/Skeleton/" + jointName + "Joint","Joint",scene + "/Skeleton/" + jointName + "Bone","Root"); Node.ConnectTo(scene + "/Skeleton/MyBone","Bone",scene + "/Skeleton/" + jointName + "Joint","Bone"); Node.ConnectTo(scene + "/Skeleton/" + jointName + "Joint","Joint",scene + "/Skeleton/" + jointName + "Bone","Root"); // end true bones } else { //for(ii=0; ii<jointCnt; ii++) //{ //if(parentName == boneName[ii]) //{ parentIndex = pBoneIndex[hierarchyCnt]; //zscale = (msgtag[4]-jz[parentIndex])*myScale; // this works but scale from center need pivot point //jointMesh[jointCnt] = Space.Cube(0.15, 0.15 ,zscale ,1 ,1 ,1); //Node.Copy(owner + "/doom3jointgeo", scene); //jointMesh[jointCnt] = Node.Rename(scene + "/doom3jointgeo", "theJoint"); boneFullName[hierarchyCnt] = boneFullName[parentIndex] + "/" + jointName ; //System.Trace(boneFullName[hierarchyCnt]); encaps1 = Node.Create('Kernel Package/Object', boneFullName[parentIndex]); //create node inside parent encapsCurrent = Node.Rename(encaps1, jointName);//rename node inside parent Node.Copy(owner + "/doom3jointgeo", encapsCurrent);//copy geometry into the new node jointMesh[hierarchyCnt] = Node.Rename(encapsCurrent + "/doom3jointgeo", jointName + "geo"); //encaps1 = Node.Create('Kernel Package/Object', encaps + "/" + boneFullName[ii]); //encaps is the root node of the skeleton //encapsCurrent = Node.Rename(encaps1, jointName); Node.Copy(owner + "/doomTransform", encapsCurrent);//copy transform to new node Node.Rename(encapsCurrent + "/doomTransform", "Transform"); Node.ExportConnector(encapsCurrent + "/Transform","Matrix","",1,1); Node.ExportConnector(encapsCurrent + "/Transform","WldMatrix","",1,1); Node.ExportConnector(encapsCurrent + "/Transform","ObjMatrix","",1,1); Node.ExportConnector(encapsCurrent + "/Transform","OwnerMatrix","",1,1); Node.ConnectTo(boneFullName[parentIndex] + "/Transform","WldMatrix",encapsCurrent,"OwnerMatrix"); Node.ConnectTo(encapsCurrent + "/Transform","WldMatrix",encapsCurrent + "/" + jointName + "geo","OwnerMatrix");//geo to transform //true bones parentName = boneName[parentIndex]; Node.Copy(owner + "/Joint", scene + "/Skeleton");//copy joint in temp = Node.Rename(scene + "/Skeleton/Joint", jointName + "Joint"); Node.Copy(owner + "/Bone", scene + "/Skeleton");//copy bone in temp = Node.Rename(scene + "/Skeleton/Bone", jointName + "Bone"); //todo connect joint Joint to bone Root //order of ConnectTo args is important, order of connections may be important test now // connect bone Bone to joint Bone Node.ConnectTo(scene + "/Skeleton/" + parentName + "Bone","Bone",scene + "/Skeleton/" + jointName + "Joint","Bone"); Node.ConnectTo(scene + "/Skeleton/" + jointName + "Joint","Joint",scene + "/Skeleton/" + jointName + "Bone","Root"); // end true bones //} //} } //test for end hierarchyCnt = hierarchyCnt + 1; if (hierarchyCnt == numJoints) { hierarchyCnt = -1; //myMatrix.LoadIdentity(); //Node.Value(encaps, "Matrix") = myMatrix; } } // read baseframe loc rot data if(baseframeCnt != -1) { jx[baseframeCnt] = parseFloat(msgtag[1]); jy[baseframeCnt] = parseFloat(msgtag[2]); jz[baseframeCnt] = parseFloat(msgtag[3]); xq[baseframeCnt] = msgtag[6];//rotation of joint in quaternion form yq[baseframeCnt] = msgtag[7]; zq[baseframeCnt] = msgtag[8]; curX = parseFloat(msgtag[1]); curY = parseFloat(msgtag[2]); curZ = parseFloat(msgtag[3]); myMatrix.LoadIdentity(); myMatrix.SetTransX(curX*myScale); myMatrix.SetTransY(curY*myScale); myMatrix.SetTransZ(curZ*myScale); // rotate the joint here before encapsulation qx = xq[baseframeCnt]; qy = yq[baseframeCnt]; qz = zq[baseframeCnt]; wq[baseframeCnt] = 1 - xq[baseframeCnt]*xq[baseframeCnt] - yq[baseframeCnt]*yq[baseframeCnt] - zq[baseframeCnt]*zq[baseframeCnt]; if (wq[baseframeCnt] < 0) { wq[baseframeCnt] = 0; } else { wq[baseframeCnt] = Math.sqrt(wq[baseframeCnt]) } qw = wq[baseframeCnt]; sqx = qx*qx; sqy = qy*qy; sqz = qz*qz; sqw=qw*qw; //try pure transform myMatrix.LoadIdentity(); myMatrix.SetAt(3,0,curX*myScale);//x myMatrix.SetAt(3,1,curY*myScale);//y myMatrix.SetAt(3,2,curZ*myScale);//z rm11=1-2*qy*qy-2*qz*qz; rm12=2*qx*qy-2*qw*qz; rm13=2*qx*qz+2*qw*qy; rm21=2*qx*qy+2*qw*qz; rm22=1-2*qx*qx-2*qz*qz; rm23=2*qy*qz-2*qw*qx; rm31=2*qx*qz-2*qw*qy; rm32=2*qy*qz+2*qw*qx; rm33=1-2*qx*qx-2*qy*qy; myMatrix.SetAt(0,0,rm11); myMatrix.SetAt(1,0,rm21); myMatrix.SetAt(2,0,rm31); myMatrix.SetAt(0,1,rm12); myMatrix.SetAt(1,1,rm22); myMatrix.SetAt(2,1,rm32); myMatrix.SetAt(0,2,rm13); myMatrix.SetAt(1,2,rm23); myMatrix.SetAt(2,2,rm33); // end pure trasnform test Node.Value(boneFullName[baseframeCnt],"Matrix") = myMatrix; //true bone Node.Value(scene + "/Skeleton/" + boneName[baseframeCnt] + "Joint","Matrix") = myMatrix;//set matrix of ts75 joint //end true bone baseframeCnt = baseframeCnt + 1; //test for end if (baseframeCnt == numJoints) { baseframeCnt = -1; //myMatrix.LoadIdentity(); //Node.Value(encaps, "Matrix") = myMatrix; } } if (msgtag[0] == "hierarchy") { hierarchyCnt = 0; scene = Space.CurrentScene(); encapsO = Node.Create('Kernel Package/Object', scene);//create empty node in scene encaps = Node.Rename(encapsO, "doomSkeleton"); //transform node owner = System.ThisOwner(); Node.Copy(owner + "/doomTransform", encaps);//copy transform to new node Node.Rename(encaps + "/doomTransform", "Transform"); Node.ExportConnector(encaps + "/Transform","Matrix","",1,1); Node.ExportConnector(encaps + "/Transform","WldMatrix","",1,1); Node.ExportConnector(encaps + "/Transform","ObjMatrix","",1,1); Node.ExportConnector(encaps + "/Transform","OwnerMatrix","",1,1); } if (msgtag[0] == "baseframe") { baseframeCnt = 0; } // end of frame data if (frameLine != -1 && msgtag[0] == "}") frameLine = -1; // process animation line if (frameLine != -1) { while (animFlags[jointAnimCnt] == 0) { jointAnimCnt++; } compIndex = 1;// 0 is starting tab quatFlag = -1;//assume no quat anim //myMatrix = Node.Value(boneFullName[jointAnimCnt],"Matrix"); myMatrix.LoadIdentity(); curX = jx[jointAnimCnt]; curY = jy[jointAnimCnt]; curZ = jz[jointAnimCnt]; theFlag = animFlags[jointAnimCnt]; if((theFlag & 1) == 1) { curX = msgtag[compIndex]; //myMatrix.SetTransX(curX*myScale); compIndex++; } if((theFlag & 2) == 2) { curY = msgtag[compIndex]; //myMatrix.SetTransY(curY*myScale); compIndex++; } if((theFlag & 4) == 4) { curZ = msgtag[compIndex]; //myMatrix.SetTransZ(curZ*myScale); compIndex++; } qx = xq[jointAnimCnt]; qy = yq[jointAnimCnt]; qz = zq[jointAnimCnt]; if((theFlag & 8) == 8) { qx = msgtag[compIndex]; quatFlag = 0; compIndex++; } if((theFlag & 16) == 16) { qy = msgtag[compIndex]; quatFlag = 0; compIndex++; } if((theFlag & 32) == 32) { qz = msgtag[compIndex]; quatFlag = 0; } //test quatFlag = 0; if (jointAnimCnt == 0) { System.Trace(curX + " ? " + curY + " ? " + curZ); } //System.Trace(qx + "?" + qy + "?" + qz); if (quatFlag == 0) { //System.Trace(qx + "?" + qy + "?" + qz + "?" + qw); sqx = qx*qx; sqy = qy*qy; sqz = qz*qz; qw = 1 - sqx - sqy - sqz; if (qw < 0) { qw = 0; } else { qw = Math.sqrt(qw) } sqw=qw*qw; //try pure transform myMatrix.LoadIdentity(); myMatrix.SetAt(3,0,curX*myScale);//x myMatrix.SetAt(3,1,curY*myScale);//y myMatrix.SetAt(3,2,curZ*myScale);//z rm11=1-2*qy*qy-2*qz*qz; rm12=2*qx*qy-2*qw*qz; rm13=2*qx*qz+2*qw*qy; rm21=2*qx*qy+2*qw*qz; rm22=1-2*qx*qx-2*qz*qz; rm23=2*qy*qz-2*qw*qx; rm31=2*qx*qz-2*qw*qy; rm32=2*qy*qz+2*qw*qx; rm33=1-2*qx*qx-2*qy*qy; myMatrix.SetAt(0,0,rm11); myMatrix.SetAt(1,0,rm21); myMatrix.SetAt(2,0,rm31); myMatrix.SetAt(0,1,rm12); myMatrix.SetAt(1,1,rm22); myMatrix.SetAt(2,1,rm32); myMatrix.SetAt(0,2,rm13); myMatrix.SetAt(1,2,rm23); myMatrix.SetAt(2,2,rm33); // end pure trasnform test } Node.Value(boneFullName[jointAnimCnt],"Matrix") = myMatrix; //tSBridge.PutActiveFrame(boneFullName[jointAnimCnt], curFrame); //tSBridge.AnimationFrame = curFrame; RsAnim.SetKeyFrame(boneFullName[jointAnimCnt], curFrame); //RsAnim.SetAttrKeyFrame(boneFullName[jointAnimCnt],'Matrix',curFrame); //System.Trace("set frame # " + curFrame); //System.Trace("jointAnimCnt = " + jointAnimCnt); //true bone RsAnim.SetKeyFrame(scene + "/Skeleton", curFrame);//set anim for full skel encapsulator Node.Value(scene + "/Skeleton/" + boneName[jointAnimCnt] + "Joint","Matrix") = myMatrix;//set matrix of ts75 joint RsAnim.SetKeyFrame(scene + "/Skeleton/" + boneName[jointAnimCnt], curFrame); //end true bone jointAnimCnt++; } // set frame flag if (msgtag[0] == "frame") { curFrame = msgtag[1]; System.Trace("reading frame # " + curFrame); frameLine = 0; jointAnimCnt = 0; Node.Value(myCube, "tx") = curFrame; //tSBridge.PutActiveFrame(myCube, curFrame); //tSBridge.AnimationFrame = curFrame; RsAnim.SetKeyFrame(myCube, curFrame); //RsAnim.SetAttrKeyFrame(myCube,'tx',curFrame); //try set matrix of doomSkeleton myMatrix.LoadIdentity(); scene = Space.CurrentScene(); Node.Value(scene + "/doomSkeleton","Matrix") = myMatrix; RsAnim.SetAttrKeyFrame("doomSkeleton",'Matrix',curFrame); } // vertex position is weighted sum of weights relative to the bone // need to use quat rotation of bone on point, weight it and add them together // weights add to a value of 1.0 // } System.Trace("end of import"); }NScript Object Package/jScript language~൱DT4#^cstringMyFileNameNffMCO4W}@O{(XFҦV>g'JNjn*pnBBz@@V@2|=Bynj|?z@Hoۙ>?NffMCO<D:\Server2\zfat\walk1.md5animJ@#QL>g'JNjn*pnBB`@T@2|=Bynj|?z@Hoۙ>?-1OSM n 럆L<_їControlOˁ CRih[  nKs 8Activity.Run('%THIS_NAME%')ImportZ`Ez]UOOˁ CRih[0HnKq:Activity.Stop('%THIS_NAME%') StopZ`Ez]UO GFʠN=`  nK]}}<Click "..." to choose a file and then "Import" to read it inZ`Ez]UO1釥GP>a 0nK<NffMCOZ`Ez]UO#nKSM2` nK4` \VVNffMCOZ`Ez]UOMT^RwL~YYT>g'JNjn*pnCB`@0@2|=Bynj|?z@Hoۙ>?z@Ho܂dKu=K(doomBlankDXMaterial(a.;]kI 忞@"a ȪR =x '=4W}@O{$ ؐ.F_P#.F_P#Material Output material __W8E#(h 2U@Ra.U@Ra.LE2Data, 7$LE2 Data for node >g'JNjn*pZ՞'fA5-_՞'fA5-_D3DEYED3DEYE =xNT{,H-1OSM n":T(XFҦVLE2Data, 1"0<J@#QLLE2Data, 24W}@O{(XFҦV>g'JNjn*pFBrCb@@P@B?՞'fA5-_.F_P#J@#QL>g'JNjn*pF4CtCd@@@?.;]kI 忞@-1OSM n 럆L<_їˇ Main GFʠN=GF.F_P#U@Ra.>g'JNjn*pFjCCd@T@?Pc|B;]2Materialh .F_P#.F_P#Material Output material __W8E#(ؐ :GS^M~b S^M~b Alpha_shaderAlpha shader RnчINNh h 5OD.GWf55OD.GWf5Color_shaderColor shader zdU@AUʂ*>\h SsqΤIGGIqΤIGGIModel_shaderModel shader @SrE8㲻t<h (T ,S@vTV,S@vTVNormal_shaderNormal shader Xb"ٲN+4rh `0зVJilзVJil Texcoord_shader Texcoord shader lrMH;eh a 4W}@O{$(a>U@Ra.U@Ra.LE2Data$LE2 Data for node >g'JNjn*p W -1OSM n"2(XFҦVLE2Data, 1"]1kF_kF_Vertex_shaderVertex shader k|eKwj9CqVertexShaderh ^t@*Nt@*N Constant_shader Constant shader QVO Pk@h | <;vHw<;vHwAlphaTest Alpha Test type :KrbSxh pQm 0S̤@+R 0S̤@+RAlphaTestValue"Alpha Test Valueh ,S@vTV 0S̤@+R5OD.GWf54W}@O{зVJil(XFҦV>g'JNjn*pFDnCb@v@?<;vHw:KrbSxbDisabledEnabledAs OpaqueDisabledS^M~b .F_P#t@*NkF_-1OSM n 럆L<_ї(U@Ra.>g'JNjn*pFDnC`@\@?qΤIGGI܂dKu=T ,DefaultTexCoordShader( (gD9f<(gD9f<TCMoveYTCMoveYh3 R:>a[EH*M\R:>a[EH*M\LE2Data, 2$LE2 Data for node >g'JNjn*p0:7wCH7wCHLE2Data$LE2 Data for node >g'JNjn*p8(wkd@Xywkd@XyTCScaleXTCScaleX pcȪ4W}@O{$(a0y݀J}Ny݀J}N FloatInput floatTCMoveXPC ĦBZĦBZTCScaleYTCScaleYx J)rޙG )rޙG ˣLE2Data, 2$LE2 Data for node >g'JNjn*pLE2Data, 4h7q(XFҦVLE2Data, 3"08q%%u5E b%%u5E bLE2Data, 14$LE2 Data for node >g'JNjn*pLE2Data, 6QA@y:l1QA@y:l1LE2Data, 5$LE2 Data for node >g'JNjn*p8q$Q/G|]8$Q/G|]8LE2Data, 1$LE2 Data for node >g'JNjn*p -1OSM n#f1.;]kI 忞@" @.oeRȜs%4GKg@mP> зVJil`08#R:>a[EH*M\>g'JNjn*pFBC`@d@?(gD9f<wkd@Xy?7wCH>g'JNjn*pFCC`@0@?%%u5E b>g'JNjn*pF`CCb@\@KAC?4W}@O{зVJilĦBZ?y݀J}N(XFҦV>g'JNjn*pFBCb@ `@KAC?)rޙG >g'JNjn*pFBC`@d@?$Q/G|]8>g'JNjn*pFCCC`@d@?QA@y:l1>g'JNjn*pF:i ShaderTexcoord8#зVJily)#,OrR)#,OrRTexcoord*Input texcoord brick F 1+5?N>/z8#@.4W}@O{$f1,%%u5E b%%u5E bLE2Data, 10$LE2 Data for node >g'JNjn*p(/-1OSM n"y](XFҦVLE2Data, 1r!"I = 8r!"I = 8Texcoord2,Input texcoord2 brick F 1+5?N>/8#%%u5E b>g'JNjn*pFEDA`@P@?4W}@O{зVJil(XFҦV>g'JNjn*pFEDA`@P@?)#,OrRr!"I = 8-1OSM n 럆L<_ї(L{0nBg)`! | AddŊP)\Fvq3P)\Fvq3$PrivateShaderData$PrivateShaderData wk0.DX?_H :JF>*U:JF>*UInputXInputX : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/8zPe)#2 |L?¢Fh#2 |L?¢FhInputYInputY : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/Hszz,8A fKھ,8A fKھResultResult : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/yoe4W}@O{%f1T%%u5E b%%u5E bLE2Data$LE2 Data for node >g'JNjn*p3 -1OSM n"o(XFҦVLE2Data, 1,8A fKھ:JF>*U%%u5E b>g'JNjn*pFD`B`@P@?4W}@O{(XFҦV>g'JNjn*pFD`B`@P@?#2 |L?¢FhP)\Fvq3wk0.DX?_Gp.HOV-1OSM n 럆L<_ї(L{0nBg)`! T ModulatePrP)\Fvq3HE2x2֣K!dE52x2֣K!dE5InputXInputX : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/H_P8جTXGy5֣ TXGy5֣ FullLightColorInputY : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/ 88 dE9@ dE9@ AttenuatedColorResult : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/H 4W}@O{%f1C%%u5E bhjD-1OSM n"Ȟs(XFҦVLE2Data, 1%%u5E b>g'JNjn*pFC`@P@?4W}@O{(XFҦV>g'JNjn*pFC`@P@?P)\Fvq3wk0.DX?_M0(rHH dE9@TXGy5֣ 2x2֣K!dE5-1OSM n 럆L<_ї(L{0nBg)`! Td *VectorFromComponents (XJP)\Fvq3XJGx:G<l5Gx:G<l5XTX : RtFloat - Scalar floating point value F 1+5?N>/ H_P]P LDs(e LDs(eYTY : RtFloat - Scalar floating point value F 1+5?N>/oH_PH^P?8[GVTI?8[GVTIZTZ : RtFloat - Scalar floating point value F 1+5?N>/H_P^P"PZKLь"PZKLьWTW : RtFloat - Scalar floating point value F 1+5?N>/H_PH_PJN۪BP JN۪BP ResultnResult : RtFloat4 - The four component vector or color F 1+5?N>/HER4W}@O{%f1R%%u5E bR(XFҦVLE2Data, 1R-1OSM n" "PZKLь%%u5E b>g'JNjn*pFC`@\@??8[GVTI LDs(e4W}@O{(XFҦV>g'JNjn*pFC`@\@?Gx:G<l5JN۪BP P)\Fvq3wk0.DX?_JEG0-1OSM n 럆L<_ї(L{0nBg)`! ,Q 0VectorFromComponents, 1 \P)\Fvq3\Gx:G<l5WJHs\ LDs(e3Hs\?8[GVTIHsțs"PZKLьHsHsJN۪BP Pe)Ȝs4W}@O{%f1Hs%%u5E bȝs(XFҦVLE2Data, 1Hs-1OSM n" "PZKLь%%u5E b>g'JNjn*pFCB`@\@??8[GVTI LDs(e4W}@O{(XFҦV>g'JNjn*pFCB`@\@?Gx:G<l5JN۪BP P)\Fvq3wk0.DX?_JEG0-1OSM n 럆L<_ї(/|V FK| ShaderInput@Z\?ڵfA'7(?ڵfA'7(EyePos8Eye position in world space F 1+5?N>/X %dLrQn0%dLrQn0EyeDirNormalized eye vector in world space. Note that this is vector pointing from surface to the eye F 1+5?N>/` piDM7piDM7EyeDistNDistance from current point to the eye F 1+5?N>/ ^@A툷^@A툷PositionNShading point position in world space. F 1+5?N>/ p1M@o=p1M@o=TexCoords3D texture coordinates for given surface point. Any undefined channel (u, v or w) is replaced with 0. Initialized to interpolated vertex texture coords. Replaced by output of TextCoord shader. F 1+5?N>/جX# }E[2CV)}E[2CV) ColornColor specified by color shader. RGB portion is used to specify color (and is not limited to range 0-1). Initialized to interpolated vertex color. Replaced by output of Color shader. F 1+5?N>/.`MOWIB"ѥ`MOWIB"ѥNormalNormalized normal of the surface for given pixel. Normal vector is expected to be in world space. Initialized with denormalized interpolated vertex normal. Replaced by output of Normal shader. F 1+5?N>/p:HtO{/(HtO{/(TangentNormalized tangent of the surface for given pixel. Tangent vector is expected to be in world space. Initialized with denormalized interpolated vertex tangent. Replaced by output of Normal shader. F 1+5?N>/\  qQ@Rj qQ@Rj AlphaRTransparency specified for given pixel. Value should be specified in range 0& 1 (full transparency & fully opaque). Initialized to 1. Replaced by output of Alpha shader. F 1+5?N>/,ҥY@e&ҥY@e&LightDirNormalized light direction vector for given pixel. Light vector is expected to be in world space. Note that this is vector pointing from surface to the light. Initialized in the Vertex light shader. Replaced by output of Light shader. F 1+5?N>/h,B_;OKFJ*rB_;OKFJ*rLightDistDistance of the current point to the light. Initialized in the Vertex light shader. Replaced by output of Light shader. F 1+5?N>/+HRSEpFCHRSEpFCLightColorLight color for given pixel. Replaced by output of Light shader. F 1+5?N>/h+~__um1CR¬5~__um1CR¬5TangentToWorldTransformation matrix from tangent space to world space for vectors. F 1+5?N>/h0ٻzEuSٻzEuSWorldToObjectnTransformation matrix from world space to object space F 1+5?N>/h%SaI7֏bSaI7֏bObjectToWorldTransformation matrix from object space to world space. Note that this is inverse matrix to WorldToObject. F 1+5?N>/%4W}@O{$f1h&%%u5E b&-1OSM n"'(XFҦVLE2Data, 1h(y"WMB]y"WMB]*ObjectToWorld_NormalA 3x3 Transformation matrix for normal and tangent vectors from object space to world space. F 1+5?N>/()5FYP)5FYPObjectToClipPerspective transformation matrix from object space to screen space. F 1+5?N>/h)x*yIx*yIWorldToClipPerspective transformation matrix from world space to screen space. F 1+5?N>/)#h"mO('#h"mO('TexCoords2`A secondary set of texture coordinates for given surface point. Any undefined channel (u, v or w) is replaced with 0. Initialized to interpolated second vertex texture coords. F 1+5?N>/B_;OKFJ*rڳVܯ]FՃ尲+%tsxi_GetInputLightDistRtFloat qQ@RjڳVܯ]FՃ尲'!tsxi_GetInputAlphaRtFloatp1M@o=ڳVܯ]FՃ尲,&tsxi_GetInputTexCoordsRtFloat3^@A툷ڳVܯ]FՃ尲+%tsxi_GetInputPositionRtFloat4)5FYP%%u5E b>g'JNjn*pF CA`@0@?HRSEpFCڳVܯ]FՃ尲-'tsxi_GetInputLightColorRtFloat4ٻzEuSڳVܯ]FՃ尲2,tsxi_GetInputWorldToObject RtFloat4x44W}@O{SaI7֏bڳVܯ]FՃ尲2,tsxi_GetInputObjectToWorld RtFloat4x4~__um1CR¬5ڳVܯ]FՃ尲3-tsxi_GetInputTangentToWorld RtFloat3x3x*yI(XFҦV>g'JNjn*pF CA`@0@?#h"mO('ҥY@e&ڳVܯ]FՃ尲+%tsxi_GetInputLightDirRtFloat3`MOWIB"ѥڳVܯ]FՃ尲)#tsxi_GetInputNormalRtFloat3?ڵfA'7(ڳVܯ]FՃ尲)#tsxi_GetInputEyePosRtFloat4%dLrQn0ڳVܯ]FՃ尲)#tsxi_GetInputEyeDirRtFloat3y"WMB]}E[2CV)ڳVܯ]FՃ尲("tsxi_GetInputColorRtFloat4-1OSM n 럆L<_ї(HtO{/(ڳVܯ]FՃ尲*$tsxi_GetInputTangentRtFloat3piDM7ڳVܯ]FՃ尲)#tsxi_GetInputEyeDistRtFloatz€ L&  InputFloatPC+kCY5]BtO+kCY5]BtO FloatInput float0$WJWJuM@n;LAuM@n;LAFloatBrickFloat brick F 1+5?N>/\$\/3Kf͈,\/3Kf͈,oFloatOutput floatEGqiFE0IN GqiFE0IN Input usageVThe usage specification for this parameterWJ4G4W}@O{$f1%%u5E b(XFҦVLE2Data, 1OH-1OSM n"GqiFE0IN C_TCMOVEX%%u5E b>g'JNjn*pFtBb@X@?4W}@O{+kCY5]BtO(XFҦV>g'JNjn*pFtBb@X@?uM@n;LA\/3Kf͈,?-1OSM n 럆L<_ї(z€ L&  InputFloat, 1h3+kCY5]BtO( 33uM@n;LA\\/3Kf͈,PR GqiFE0IN 3Kg4W}@O{$f1,%%u5E bX,(XFҦVLE2Data, 19-1OSM n"GqiFE0IN C_TCMOVEY%%u5E b>g'JNjn*pF8Cb@X@?4W}@O{+kCY5]BtO(XFҦV>g'JNjn*pF8Cb@X@?uM@n;LA\/3Kf͈,?-1OSM n 럆L<_ї(z€ L&  InputFloat, 2 pc+kCY5]BtO8(~ uM@n;LAXJ~\/3Kf͈,GqiFE0IN  @m4W}@O{$f1@ %%u5E br?(XFҦVLE2Data, 1H-1OSM n"GqiFE0IN C_TCSCALEX%%u5E b>g'JNjn*pF'b@X@?4W}@O{+kCY5]BtO?(XFҦV>g'JNjn*pF'b@X@?uM@n;LA\/3Kf͈,?-1OSM n 럆L<_ї(z€ L&  InputFloat, 3x +kCY5]BtO  oouM@n;LA]P \/3Kf͈,qGqiFE0IN oP> 4W}@O{$f1nw%%u5E bU.(XFҦVLE2Data, 1.-1OSM n"GqiFE0IN C_TCSCALEY%%u5E b>g'JNjn*pFXb@X@?4W}@O{+kCY5]BtO?(XFҦV>g'JNjn*pFXb@X@?uM@n;LA\/3Kf͈,?-1OSM n 럆L<_ї(܂dKu= &DefaultModelShader R:>a[EH*M\R:>a[EH*M\LE2Data$LE2 Data for node >g'JNjn*pЫ 7wCHAX.;]kI 忞@" p- P poT Z F;R 4W}@O{$(apr)rޙG )rޙG ˢLE2Data$LE2 Data for node >g'JNjn*pR(XFҦVLE2Data, 3"HU%%u5E bLE2Data, 6@iLQA@y:l1<qΤIGGISso0 $Q/G|]8;-1OSM n#  L QNIM5G&L QNIM5G&BitmapInput bitmap eSBgcح  L QNIM5G&eSBgcm J/Project/Space 3D/doomSkeleton/LkneejwbVA/t-jmx}l[םMw,j;f-`LiSOْe˲iӦiQhQDѢDĉ5n8ZQ± cmz@+T[l3;8,;KK9W<0>8E^wgGlXe2rHOJWA?+{oՑJK i <3_R_NM;|oO}?y '>)p?9̏ή&3?%LOM;d'gWa[dv;|O299yD&VoJ q)7B؈r85%y1*}<0::08Rpz5k8V+qVX9rlxexf RzK}8 8,aa!)+{vh;w8lÑgM}ލc} h1!Cw@{f8yf `@fT|@C*(=EK[{u*vG66 ; pІuza(1sC x6 wylGSW=Xcvcq_b#8v|nՌͥ?~'ށO˔#oW@$-kwo%DyP9Pq8 6hJ!Lڽߌ:࿍hp܍|1 u³{m߫^C/Q42\pý1P^6P5lU=}磭94EmH3~)\b ~/$D" `?"~{zlv҅k΅áQDy1oF撝96*8\9i܌wącɟT>|*~䙁f.#`Tswwr\em"ΤM[\>]Ty?B k,c؇*>6EzׂpO//`y| ;$^pG]?۴Ăk?>~=(@@] |1o/5-T1Pyϸ;#eݻ ~WrRa__y6x]4{1ghp;Gb( EG`}8ox U;E>7* 'yQS1p?tzXض?tXLK-g"ݣ1%7{ XgC];gxsc{՝'tO ;7Y,po8ϛyný6y}>P r'Ν 3@}k<{C\ӭ1Pu@=_I-1W,2_k {Eӿ忙11@'%@ccQ0Y[M_7K_F_ 8NងY%?ǿb?w^OOw|뽂 ^kz:G',\Icٯ?{ޭ ޴\mȥĿOxko(Z&0e_wꁻu:|K/O_ee/?Ϻmz?["oY/Ϳ,KQyl{6gߞ:JWR@=x'8s&6yodq:s佫q\?*܏X!yo (·z=eY"f~u}OPpc hshx  V*+|dk8fW }|z/Ϲt"ϼQeqWWR:a;ꄪ BMuA_wdyY7 !oeڲSӏ| 1?|lx +?=|zL%f׆(-}_(X 7<GUnxp_Ma^8BXDp|*>\z8`{Y_Z >^#,4p},"x_IItDyOJ\sZ/[ X;;e׼wiU 4/߻ĿUSUFb`ee#;ޗ KWF>ۑpߌBtO$P1R@-F>G/?J/[t{?}GKxu{@t/y=m30*t>\DOWu9ϡ@^'  {bd?YS3/-owsz ǿ0Jp972oq'3{v -zFWBv8}(Y+ ctO=pWPz@R:K 8ps=n/ot 9s}Y r)1e/ה6g߇Ye9Ż})o)RzYIWf&([] DOlɑO;:ymuЈ ?RR˭ZދxXϓI%ҹ헫AN}rkv^kk.[pS7ɞ-g ց-+ة?A"&_9jS ת~vγbT!X?X7_q&ׁ, (f'd^˶2h&h;(8 q7oۤ{́LyY\=: J;<ߗ7@<-x_T1@w=Gdw>m{,Ch( F߷*|bvoW [>l[O1 ''491cs@(*?=IKόOhG(ѕ,/[<NfŀnU7#-/ ҟ3eq@3ׂȒt'1#M D?ݣ\{S8{0GuK 1L*0@r.x_'8ə=y}f]s =n@+܈aPyw\EgӽFb9,`8yFsVtWqj [ޣ Q=1:rb*Qp[罺qp U {NE>ݏo^}w~"WſrgdQg:cޜr#Hѵ9%ʿQǁϧVy<; <ǒ:wXo~:G8no-HxgDF' iX8a g*Vynn>3Єrw7^K VE5֚e| ϟ ~WΟL`{_빩B:^|E\W/ajK^[l._ޚޚyԷ1W}by{Pν:$D3!LH7< dRmG \` }O c?(Kk,n'ڽPbu8XZ" :0?f18ipܛ(WwkfMprY\c >9/붶2^ gk3&3m{ù\lW~/8U/ЯOE?3` 0 K poo?\8ym ]3}?A_; /(]tǒ߁t=T <}$ZTi+J<:~~//Q~880H~8]Dp&t}+ `ΑdgWN_$ȇ E.Kt{xߥp}q1z oIJۅ|qJ8yxC}prJ=_+7b@K%q-{>puΡ >.s'8\>Cfϣ1@ %{#O}?o?ԡ??ľ'_Hkϧ`o/X5=ýOϱWF7 #>+&eo|uGٖ9mz&5'<kAk~RI/ƴOwݟ| `uOL-43{k׌>&pL1㣯NH厩n=خ=4㵕'uVLMtyz(IK8>ڊեRVbڊȹ0+{A< wGU|8Xm(K@ qO(;kߢwJ! : t?S홳ۻ'u=컃'&{3?:Xh6G k1=ƁES3ywwvj(qߜX!:nY*PV"L{ wNudxd/Gvc >*X$= k.]C vvU C ۋsd9rz/``7ƀ"z)FVpu:5}ε$kQw?s>yPL6ཫYo> '3w8$}wWO}C? vE~(v< ($#z~tXxw ?r!"]W!WF$;)DR .B  Pe8E]K̳.Ālwyݛ'ٟ.~۹EgKJM͸f፠.pM}L}Es/+$2! 1t]<>3 V> ]hO ɕ{z]o&p}ia$596=>nO`4kYB{W =7bttt3f?s{38?±Fi6= ک^O(@=y1ݡa?iMw½kp=֎kfs;A9(O7Eowq*Phrb2+QaƂ~ⵉpqcU+~継ޥ7#w/ā=3cQG lhQ[>3;?ݧ%v8f >W8ovzG=Pr?GWXx߈2 Joӹ#!x߄܎Y $up3+}- BǾJt=?2ցOVgA T@~cT;D8Mw#ZAt@=PwwN,l@ 8lF6mxdz*ޯFT_xw7|.R o=l{ov;X$;[6 ? xOm ׸ .T#Mk(qxwy5mA[mE#W48]ScDB$ 9k\G:x4r BJS?Ξ=6I'9;#vxn+Wx[DPq3XM> znqo,+e xxz)U3~>̞K=Q^K' |qOPl_w/&H^}w\ygnl3bʿo 6`kuƶwXZ_a`M5.zw?~ 1ݣrZ_ϴ,ؿ]Vպ59R_oxto׽ 1pO~wvrIUEo׬Y_A;RBܼZJ / {6We[ uJi?{?k|)lD!x8HO̞%"(  xϫv98wPc0G+ _Gn~=Q?s+?tn<՟=xO&c_˪ eg&~+3K[<v |>`?p_`+iϿ3=#aC3@YxB{ob1dD3r}r@;3ynyhM^S~ml-漞gk紷m{dӬA]U} mKO!(rIZ8b1$3zθghkYΛ{.#? ;':޿+>X3h}gϿ>׿?K| 9z@g̋G/>p|gBswgs~1xiWo/6` ڿw{=9MQ:$:'i: s\8p. F^p#=lzwx o>O^ߢzOz>1>oH P/F_?^cZU;IOI'?_r^鞠 >X!^เqy(ߎO9]Y(K5;ym濌1Q1{ƀ+9&/ 5ʿ$|:XlYD@:Z=&?[0ٱu.=>x<q ݫ~W` q.KuGd<"s .x{eS/{l-/sBs9]k\FHp]}t#PHc ڊGG"ODT*.6^7`O$<xqS$] YЮνwv 5*wסL9UbGl][nҹΝ*k6eo+;|L9M.ps|b1_OVRҝs asܖض+\7˹_l7p|#Dw8.,mg9X m܆z~3g/#]WaO5uO(^M㞗 R_RrU1E=l.^1˶?yrW,z{t;h{ʸNù|wB<@> rx3±(o/&jF眽R5Blw&sK:x{]j$ -nR0oA^#稈x;<+f (z-sh;:I/gCF˿3ϼ_91C{.497VL_ֿv|XT-=^ONu<3-?y;u ѵwg<ݳ`Y/(f__K%cn͹|Pu9ýΧ{Bts |9&kcc |`<#bQyוw oW+uD989sl;gĩ]WqU#}\uoZ fߜ̔gد!NԁGⱻkK#>E_փv_'O>n&g~lOe:;b[x526z5r'Ze)]4#rG~E'gOIOB D7ĩ3m0,ȱm@(:Vh|E'xk&Uo?5mo=:l_Wѵg{bAw#zWyhNmg?$ס|DW ?R^ۧ^!2/?sA<;Jx/t#.- Vq! i+"9WoiN$@]HJ]/)=[j[86{缪 RIv7( ڿ=OLĿ89hϱD¹u MəSN{Mp/eܷb@͹fǣY7x?柅( JG^P1}߃ct .w$v}]`[E5K":RztoϽڹ\QG7P73X_1?fsڿm.Fǧosy>R'&&?=؎rXmyռ_DQ $Yj:{elg9rY7~u"kXyHro, (9-6y}e::#W_ϯ`s+Tk-s1HLlA[0\˼P~>}>y?~ߕL$"socɏO5~vUyrUxE)LNNA3wwl򾦞**v1s?$w&]~|;ʏV&CvLOM4ۿĖ_wʽW??W=˺8\H<8?9*5:eG)K9Mt_o}&`[rFFN^V W;7EYn8vCr[D\Ӌ\yMYgV?J^Sq?r_@}G_9н^_(A>^?znou ey{Yߎ:Qxyppz{99߬+|eÿGt+Y!ӵcQĵb]g_߀%{39{^C_{m sCXRϳz:mZjKW=8?Z$^{9fQT 8sMKtڿ>ODZZ{@λݫ[g{L;}N:<2'yܳg'K k ?%y eF/BuٮĜ8YOʾ S}c:9S;BSߝYF3y^sݛJۀwي`hey59urcvR4ryŊ\QnGRqgu#^?V^#낅H8Bu;ڹ/vP̼Pznnd15ߞ;Qh;rykqwvy??dq=Yߧ%z $f oc ;ϵ?k||L_>s )%P~ |J?V]_5$s^3/ߦ7s}ZsSv{zKrA^G8;3Ei)XxwJ.χY޻k}x:_R;ޛ8ߍRvǙ%BA*?{?ǿ:DO8).?'o*A_sPR\U_K}?u\تc>|.~D9\ >/A n[w߯;<9x,N z,CVu8k\9~Ǟ:>1Kj<n27>sNaa_/κu=/NLNDFGG#(Weq4aj<}TqvELf>L;:6κ ?7I7ʇ&ߚ^V6n,3M(w`[52n%Tk꘠M[ [_- ym AsT֕"ܞzkj OG6u`+ v:fl zp{@/կ 1}1v es}Mˌ^EqN7 {A`QKk0㼇 ?={^_+Ռ ?5ʿb)/j eiG3Ab`h=;&Ow)%}svlJHgNkȋ[`/ܷ0v2Y5jW1 t?KR}RR1`8>/8>_@DlV1HKpޛcXxYпrO}3?wa8(A9O 8Ok:k.8fJ|ʼW)` 41}+vλcuR E}ƀ7T?m9g;?I˩`vz~@Pt+I ;Ž`^|)m3}{D~69>l{@Ƌs=/uuϥsNAz@Ec1㓂=>[r^#fz5ĄlkυF7  .+1K/|iN#kN=-Bw%^Rc6[z}hc{},޸7cc☮qcY_=vb|{ۼ="8:dfkS6{Ą?{u5}`)?cziäJw,˜kƒbE%>7w~?ώK)u;5dz=(acWʹlR)#JǞ_P3WFkAˣ݊$h.dH<&z~sSo?cYzO(_Lc/1:ARҥD|> 1mB8H};RGSG_.`{:|8򬓨y:QW6|Kw@0`"auWљ1?ܣ|.EljDJ)>O s }pP?R~hf8#3ho%u2K~y H#qAmPpJ;1Ozr[8 Oێs^ۉx(//$z#7M?mK#c8Ŷ$^±yP2dup.}7 Q)v{>,ҙPQ/{;WȮm1- _yߝvs'bB)(% jbBI7)`- 1 k=n bx>k?AMH<1@`nض= gA @4{s|fCA>qx}7\S6sw/;*љcĀ^y?˶wûc?ܳڽKu }% "S+qΪMϺ/8@{g?+ <g 4uk.88 zg.=sqޱrAWo)PjFy?sgv ;ɶv:uҜzG 8?DSSS+=^5e\k\o jH)c@b- OnƫR݃C2ѡF2A,HX[|u[TK>_얹=9GFҝoòVꖨ֣EX$g-M/0cw%?6g< C}gv%b@ӿRiqDž<*P-{A1}:Ȝ{:$ĀkĮAhyO1rp5*,c;J{BӿRmNݞb;,`[GByX/_sY3O^NK{YqW׻r @5}MJw5瘰lQ׆E7ly4xOW+5q?wWXq_m{W3[@m_~#c_R!wD@*/}V"b;kͱy HsFuokJ]<{fIn,`N?ݳ/+{8 \-|,Ẋ#s<9_E\C]pONXv;W]/c@忥K3U?SqF,4V΃C+Կ~W:U\{΁N&?rJZ{u9'/?bc81r5ꠕ3=rKϱ@z[[p.D{qņE¢̓hh-%}Qڽ`gy1ҩWuu@'3^30fkʽ3/xU|80?z~_^\s:g*W NϔpcYk[;7ʜ;[-M1_uj\>x Μ:HS@?6L~ <D9'2}I'jnZ9_~Qϣef뜷rMX!Bә0B2utˌFGǪG~ձ+yŁ KRc6Y(迈x߈g5*;X1P[5?׽NxLcεB}_ZỦڿlMKCf{O( kyѾ 9-baݿ׿_1&R9muߒ5}~Gp^1ݫh8#q:~Vp%j; p/A=?m?lĿCrܗ>gN %Kj?:[_ǀR<1pa,p&I8?"Zs \.r-B~~mU?WN}wfxv܁k=\2# &aMsf3 ލ?*;arrkߟuىl:6^:&!d4in<[McJ{o|bONnuxx |j7hs@[q1##/q|e;їGa1`~+tm *cFG^-a{mCx6G~opyι(˕{=?I韈sb>Aݏgm*^c@}opzD{J(VÌ{u,L{8hUc[9I\ʿ9_3rAp'޴992(Ɠc23{~S .g'hAYrne33zZEׄf'7axtJ7_[S':a299١@7Q})58Ts \T d`8r(՘nfa9CJhñ X3c>P|,xp9yn#+:Yr+。NWٮpݣJC?o_QKѦApk6D 7#'Y?ze/ʝt|UŀWvQ忍~4xG^c lF=@ >f h/RF^Ns"7:Cplo,?ܯGAi3&牿ľ=^Qn{Р.؊kGu#pWl9} ʻfw5;{1Nc=x?2?u%^ChR[E Ilr }o&zZj(lwUm~7ߩƜe#/D Q>xc=[m v\ǀ1[1ي ybi/ݏ.NT ࿢t%Y21s239}oMs,|+ʿwlW||s&_s5tTyވEnϦ&\=eB]WlNH" qC{< qWԼFcr\=Q^Eϩs:_yqD3tPFo- xUpcU^p _}>D[gךmث($@~yuo]?Ĺ.rNcpZ쪚SLv/H8'\{ϵ޿_B_)xe_ZXvY-=sʹV./?# U._a'OB0.H4* j ayۑ+Wj}μa~.J^ϕ̿v;0x1Rl\zS@7;9YS835x_[=n޳< kR}lwNڿ/&o(3odm7ro ʿ hmc84zGkY?`Ϋڿ׀5s"hKH1 EψE+dڽk-8t?Zg~pfK7,/_ {lCEnڀ_->?BX˿_ru J;?#XW˿R4X?ߛwP65_Η}mqW@}/K"၅رgQk^2K/WUK9 m7=}(c\?jٙ8v]EzBiUo!y/PN)"! sbpΓplR5rGt οb\Wn ԇ(ϵ,E!P4=3Y"FFd?.Xw>W̡;3nJ=}E9b]x~|Dvޭ~kX?3Т\ӿ_o5&'b jC@Ye4-.))T$Xq%@`h&DY”YŘ93  EډۉY$ssy{_Z~9ylZ=pvNeZ/{8q_cOhҼj!_~4[<=I Ͽx JZJ{Kw'?gZ@ c2-g]1ɟZS~.܇p'{+j0?#_"sG%cT쇗.-5 @I|ß,ɞ= `DoÓ3Py%{ĿX}~|lXGr@1 }nA{附d2w|$5_;rŗϺϖ^rX~? )@yn.rǟ_d/zOu /c j>H%z˶1#w<=_t_0w;/vbI+k-9?+1P E3kW췴1F ;yNr>w &O`McM/|bHڠXC _DjgOFgGY~+33f i9(Fg d}2Y؛PPPk 6#YV)kݬw(GV {oqq ߰1`{cLwB>}A[W9 ;ɟϖmeϥ9@eXrwzlKgO}{zʽ㯍Q/17޹T)U?0|;?³(Gi+#%ޅ=soI~Bu6dv1Bx /??}E-5Kv(mǖRc^襽8pkOpυ<'y@j_3/9 p*V[߭9+5 9D7QRܟf{ +k#{ xE3C~=`[ǀ"yse {?s@  oʿ`O٫s?2!?v_;Hw;^'F7Y{# [~&U21@o8^^+7&5/^Z6{狇("|WEfQk?Wuڍǿ1u?fC@1F>~g_n:,N_9vfL\`Ezv#y$\+SO5Ps?/OM?WE7>{e6͹Q?%ȱd2c$} {h%T.o|cC~D@ߧJzW"&q^w {/#!ދYszEs`O}|y9>ǿ@+]cLvWG`oMb7"z?E?3w_46u+þ?=>5"Y'~&u ah /߭*(qG_N^s>^{|H?{aܓᏯdhیC6[&OcϸWgn]uƿ}v`A)<~#>p?F!]ARNµimkWٓ /ƿĿb놿g:'wʗi3Gs?_۰-do,}`&{f3 .-՜?w6H&EkW{S:;j ~yU1!>btσP. m~yP[~1{( n}tUW_ڈ|q9GmވF-g3z\K8I{= N 0ߘ몳ӎǬx\Hڱ֠-1γqB-`]-ǻ:Wuށ;{`=aO{vl 6dݢ!B$)_:3A0w꟬sA2DSϞw[^//xVfmhz {m*>@t6b/.t`O)pgdO}"Źc؛.9~?{r>ioH{w` H(vhw; ͻ2__(g?RɟkO9>|=3Js;>=s9Of=-α [uQ ྡBޯ  xWM﫧M7ku@~ 1>;??'{ß}`߄Mi 9d/^3:K~#G׀"6qʾ _Qrv<+Gd{gn]dO?'{5s"/vDdpQ=mX_o#[bp~P3|6ݭEڋM܇Q; q^˿_,5@_7k —b<@ {hp%4ys*:|Dz*aL}pŽlo_acFKɞ72ͰUE#6O9cΎӓi~'0f z\Zɲk~a\p:[s>P_[s,H`,hӂyQ}v1F -jlaWmr]9|2 ~z ]/0uHuף{gCUѱjѧ^b=C;0^ّΦ'ߘOubzv Mբ&&'G_o}uerj%{&27?c~~d?e>.ewN΋`^=RfvC m])7nGx̙-欿 tAt6[F~ωkT _7ծ6ͽ=0l6ւ|-daf|Ͼ}t+tj`Gvz=3g2O&Z_caub`O|eї_/ ܥ?:ө'.k]TY=Ԕð?|aŋ , X-녆(UٳywX>33sRI"?858߇I4*}#3ԐgWH=]E:DɞgA-:d}5r&'&A{<\@>QpgM(w/G_)@5>O5 U6]EP]5ػzeL`Er=er[?LmQ{Zxo>Pc,b=66#VjʵPM}{N.mQ""ZfؒLMg25ү]M c-NgLoKaľVPDx[ b3of]ëZ/OE9R:>a[EH*M\>g'JNjn*pFCA`@T@?7wCH>g'JNjn*pF[C)C`@T@?%%u5E b>g'JNjn*p^CCb@T@y݀J}N Ԡ>KC~B?4W}@O{(XFҦV>g'JNjn*p^Cb@@\@y݀J}N Ԡ>C8C?)rޙG >g'JNjn*pFCA`@T@?$Q/G|]8>g'JNjn*pFC`B`@T@?QA@y:l1>g'JNjn*pFAC`@@@?.;]kI 忞@-1OSM n 럆L<_ї(qΤIGGIL{0nBg)`!  Phong Lighting X@ P)\Fvq3Pv:6~KAM:6~KAMDiffuseColorzDiffuseColor : RtFloat4 - The four component vector or color F 1+5?N>/м=10?SR]JĀ7R]JĀ7SpecularColor|SpecularColor : RtFloat4 - The four component vector or color F 1+5?N>/$c1I vJ ~~vJ ~~ShininessdShininess : RtFloat - Scalar floating point value F 1+5?N>/ 1 $&*2HӁdń$&*2HӁdńNormalVectorjNormalVector : RtFloat3 - The three component vector F 1+5?N>//15Z[G {/,Z[G {/,EyeDirectionjEyeDirection : RtFloat3 - The three component vector F 1+5?N>/N1ཀ zE%Sf zE%SfLightDirectionnLightDirection : RtFloat3 - The three component vector F 1+5?N>/_ 1H?gw!XCLw!XCLLightColorvLightColor : RtFloat4 - The four component vector or color F 1+5?N>/`O?11 B#A)[(d B#A)[(dResultColorxResultColor : RtFloat4 - The four component vector or color F 1+5?N>/`yjp- 4W}@O{%AXo%%u5E b8o-1OSM n"o(XFҦVLE2Data, 1 %%u5E b>g'JNjn*pFCLb@d@?4W}@O{(XFҦV>g'JNjn*pFDPb@ b@?Z[G {/,:6~KAM B#A)[(dP)\Fvq3wk0.DX?_|X?dK;,w!XCL$&*2HӁdńvJ ~~-1OSM n 럆L<_ї( zE%SfR]JĀ7/|V FK| ShaderInputpo?ڵfA'7(N%dLrQn05MpiDM7 ^@A툷psp1M@o= t3м=}E[2CV)Pv/`MOWIB"ѥ PHtO{/(/y qQ@Rj_ ҥY@e&ཀR B_;OKFJ*r`O?HRSEpFCH?gk~__um1CR¬5@=ٻzEuS4SaI7֏bP 4W}@O{$AXo%%u5E b-1OSM n"<(XFҦVLE2Data, 1Gy"WMB] 4)5FYP(M{x*yI1#h"mO('B_;OKFJ*rڳVܯ]FՃ尲+%tsxi_GetInputLightDistRtFloat qQ@RjڳVܯ]FՃ尲'!tsxi_GetInputAlphaRtFloatp1M@o=ڳVܯ]FՃ尲,&tsxi_GetInputTexCoordsRtFloat3^@A툷ڳVܯ]FՃ尲+%tsxi_GetInputPositionRtFloat4)5FYPڳVܯ]FՃ尲1+tsxi_GetInputObjectToClip RtFloat4x4%%u5E b>g'JNjn*pFC`@0@?HRSEpFCڳVܯ]FՃ尲-'tsxi_GetInputLightColorRtFloat4ٻzEuSڳVܯ]FՃ尲2,tsxi_GetInputWorldToObject RtFloat4x44W}@O{SaI7֏bڳVܯ]FՃ尲2,tsxi_GetInputObjectToWorld RtFloat4x4~__um1CR¬5ڳVܯ]FՃ尲3-tsxi_GetInputTangentToWorld RtFloat3x3x*yIڳVܯ]FՃ尲0*tsxi_GetInputWorldToClip RtFloat4x4(XFҦV>g'JNjn*pFC<b@t@?#h"mO('ڳVܯ]FՃ尲-'tsxi_GetInputTexCoords2RtFloat3ҥY@e&ڳVܯ]FՃ尲+%tsxi_GetInputLightDirRtFloat3`MOWIB"ѥڳVܯ]FՃ尲)#tsxi_GetInputNormalRtFloat3?ڵfA'7(ڳVܯ]FՃ尲)#tsxi_GetInputEyePosRtFloat4%dLrQn0ڳVܯ]FՃ尲)#tsxi_GetInputEyeDirRtFloat3y"WMB]ڳVܯ]FՃ尲93!tsxi_GetInputObjectToWorld_Normal RtFloat3x3}E[2CV)ڳVܯ]FՃ尲("tsxi_GetInputColorRtFloat4-1OSM n 럆L<_ї(HtO{/(ڳVܯ]FՃ尲*$tsxi_GetInputTangentRtFloat3piDM7ڳVܯ]FՃ尲)#tsxi_GetInputEyeDistRtFloatfC{o ShaderModeloqΤIGGI<`yjC/-~CxrEC/-~CxrE Color$Input color brick F 1+5?N>/1op4W}@O{$AX0Y%%u5E bQg-1OSM n" (XFҦVLE2Data, 1%%u5E b>g'JNjn*pF DA`@P@?4W}@O{(XFҦV>g'JNjn*pF0Db@@T@?C/-~CxrE-1OSM n 럆L<_ї(qΤIGGIL{0nBg)`! t! Color texture{<P)\Fvq3v 1frHsOP5 1frHsOP5ColorSamplerrColorSampler : RtSampler2D - The two dimensional sampler (TpFޚ@'h p PR3HBPPR3HBP&TextureCoordinatesvTextureCoordinates : RtFloat3 - The three component vector F 1+5?N>/psppz(J.Ďz(J.Ď ColorlColor : RtFloat4 - The four component vector or color F 1+5?N>/ o4W}@O{$AXp(XFҦVz(J.Ď(XFҦV>g'JNjn*pF5CnCb@@P@?P)\Fvq3wk0.DX?_К~k,J6 PR3HBP 1frHsOP5nE\ InputBitmap, 1ح L QNIM5G&  ^h h 5%Kլy|5%Kլy|SamplerBrickBitmap brick (TpFޚ@'v^Q])JNЈQ])JNЈoBitmapOutput bitmap eSBgcm GqiFE0IN h pA ?gŘrA ?gŘrMinFilterbMinification filter (Point, Linear, Anisotropic)h  5 B%OK5 B%OKMagFilterdMagnification filter (Point, Linear, Anisotropic)h 2Muf2BޠQTMuf2BޠQTMipFilter^Mipmapping filter (Point, Linear, Anisotropic)h Е  T?cCx%K T?cCx%KU_AddressModexU Addressing mode (Wrap, Mirror, Clamp, Border, MirrorOnce)h (.QnfM9M$ QnfM9M$ V_AddressModexV Addressing mode (Wrap, Mirror, Clamp, Border, MirrorOnce)h  9QbJF}~b{9QbJF}~b{Border colorBorder color -n,Njlpgh ?qTKAIzc(TKAIzc(MaxAnisotropy2Maximum anisotropy levelh l b/IG  b/IG MipMapLODBias"Mip map LOD Biash 0 ЎeJf6KЎeJf6KMaxMipLevel*Maximum mipmap levelh PghdzCqIjAhdzCqIjA$EnableCompressionEnable the DirectX texture compression to save memory and increase speed (details of the texture might be decreased) h O3oC~Oܝ3 oC~Oܝ3  GenerateMipMapsPGenerate mip-maps to increase the speed h T4W}@O{$AXX (XFҦV9QbJF}~b{-n,Njlpg===?GqiFE0IN 5%Kլy|L QNIM5G&QnfM9M$  WrapQ])JNЈhdzCqIjA  b/IG ЎeJf6K(XFҦV>g'JNjn*pFb@t@?oC~Oܝ3 Muf2BޠQTLinear5 B%OKAnisotropicA ?gŘrAnisotropicTKAIzc( T?cCx%K WrapL{0nBg)`! D "Color texture, 1xrP)\Fvq3 1frHsOP5h $ct3PR3HBPps$c$cz(J.Ď0?S 4W}@O{$AX (XFҦVz(J.Ď(XFҦV>g'JNjn*pFCb@@P@?P)\Fvq3wk0.DX?_К~k,J6 PR3HBP 1frHsOP5L{0nBg)`! , Negatec P)\Fvq3 thE@ d0gthE@ d0g InputInput : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/pC-C-Ai\tDw Ai\tDw ResultResult : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/x?Z 4W}@O{$AX`;(XFҦVthE@ d0gAi\tDw (XFҦV>g'JNjn*pFC{Cb@H@?P)\Fvq3wk0.DX?_%[ipAO9]&L{0nBg)`!  Negate, 1X,P)\Fvq3x?thE@ d0gthE@ d0g InputInput : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/C-\ \ Ai\tDw Ai\tDw ResultResult : RtNumeric - Any numerical value (scalar, vector or matrix) F 1+5?N>/F4W}@O{$AXG(XFҦVthE@ d0gAi\tDw (XFҦV>g'JNjn*pFD}Cb@H@?P)\Fvq3wk0.DX?_%[ipAO9]&z€ L&  InputFloat@.+kCY5]BtO`C uM@n;LAI `C \/3Kf͈, DWGqiFE0IN  ;4W}@O{$AX~.(XFҦVGqiFE0IN +kCY5]BtO@(XFҦV>g'JNjn*pFCpBb@@T@?uM@n;LA\/3Kf͈,@܂dKu=^ "SolidColorShaderI=.;]kI 忞@"-&I=4W}@O{$(aP5%%u5E b@= -1OSM n"(="uI̎4)]"uI̎4)] ColorInput color -n,Njlpgp:5OD.GWf5pZ(XFҦVLE2Data, 1""uI̎4)]-n,Njlpg>>>?%%u5E b>g'JNjn*pFDC`@0@?5OD.GWf54W}@O{(XFҦV>g'JNjn*pFBxBb@@T@?.;]kI 忞@-1OSM n 럆L<_ї("YMڿ$ZߦK ShaderColorp5OD.GWf5:X C/-~CxrEpp-&4W}@O{$I= %%u5E bH% -1OSM n"ମ (XFҦVLE2Data, 1%%u5E b>g'JNjn*pFChB`@P@?5OD.GWf54W}@O{(XFҦV>g'JNjn*pFChB`@P@?C/-~CxrE-1OSM n 럆L<_ї(]IDjdcT8 InputColorp"uI̎4)](=9 pp\PtIL;I1\PtIL;I1ColorBrickColor brick F 1+5?N>/X 9 q\W D ɭq\W D ɭoColorOutput color -n,Njlpg 1GqiFE0IN pI4W}@O{$I=Q%%%u5E b-1OSM n"u)(XFҦVLE2Data, 1GqiFE0IN DIFFUSECOLOR\PtIL;I1"uI̎4)]%%u5E b>g'JNjn*pFBdBb@X@?4W}@O{(XFҦV>g'JNjn*pFBdBb@X@?q\W D ɭ-1OSM n 럆L<_ї(܂dKu=$  NormalMapShadera .;]kI 忞@"xooGp4F6x 4W}@O{$(aL QNIM5G&NormalMapHax8;%%u5E b%%u5E bLE2Data$LE2 Data for node >g'JNjn*p -1OSM n"r,S@vTV(T  ,M(XFҦVLE2Data, 1",S@vTVL QNIM5G&eSBgc C:\Development\Caligari\cvs\tS7\Runtime\Common\Scripts\D3D\DefaultNormalMap.ddsjwbVA/t-?xDwx[ו/ JKItKʻWg2'U؛#[vbYvlK;;%N)ɪrM2/_$Soƶ "s[н4~~+D [H,]1 w*?VD]rѝ"ZQXDY U"Z@Js$Tl%z+PjMw^`kGq惝#.򃼣0rF;z|`i_s闪Mo؊LuXQ2" q2aCb*l3i8~3QeF$!P?SB"Ukư߆yz+P$\a&OZ 2i3hIqVS`H" {{~v,`;%Av Ή˕HU"~c4b>aK<|.q*QU GiiC~ dY#([ *`3N{ Ga.fo T EY(% +,Y+qZ{b% syb`׀Pi˗eU ڑA9ӵ3gΕNm!gz{ĵHF;7'=UuGỲr^]Io֓K'Zϖyӹ np_k~qbIo]>=醈K8Ơ=t͂-OD,faђ>Rm2JPjE 41ΥFΝ]JgCm鷩MJeWIOcp=c`荔Um靬S%ZƑe]VDK X/!ܙ:66uԖ{*\XVxq.=K;$Wf{ؙ[K94RLCԑi9E6ѓɸVѡ6mj EikgA,W8":[io(M[m=Vk9Z}ughu6%vGm7zstVCp.z^Zg T/=J֤w[cL HZPg޲_=xƠSm]ڞ-;#[iyޝiV%O.\t`&sVH'ٶCoI8 Ԩ_c.zq;w3v!to,YQ~_bV]ZcХNQ?\Z= []Z+0sj- (ڳ{yu]C8v֡ڞ#{ ll];\Zx x}+V$Ӗ徳O||wwd[Xxf:֥ .VҦ5ZkȩJRyLdCVڕ%ٳZ$ܟf]\B/9Ҥd˭J=שՆmZ]p941.zyLku34{#Gӏ$Khf{pvdavjKݳyW%[i5GZ/`Qx2Wb]s1W==kmɏnn>[ wn~>=B!~ro|aRʎYp}m?Ol]ND ~΢S)=XNW}wҫb^V@.1U!Ooy138>:60CZ=5 96Z05Kx68^v?s.N7#_osVܦO8x0 3 Q[Kj|oz3R뿘n \j3؜LfPsjpQm&պ ~l}?f-J3N$?Cxɚ㧬*١pW^Fh0J hG[L!ox!xtPg[Σ-4 Yn|>m3sm,U߳~86%A!# W d8I!㔌>T ".2nx*A>|Gן}tB%6gNKeZdޥE )[&0Yb`$tu/eIuY.e C1R)'F%X9zoP Ƀ:o-וvޅ-9oݜ\@q- $X@`{:`,B`m'`? 5a@G%;?[^KN'# L`Ɠ%U)agLrwۙA O`_ c[?"y: S A`Sȝ U[ ߀e)534]_fdgrX~ nGq.e S<n8 `sFDB(ֆIq׀/&K%2dW6O>0]*By"^Ѕ1KLd@acca X V_}T+őyM?{W=:4E_h´CSiq<¼6r`sCLAv/2 }p~!C%DKVO1AZ;ԟUU++˝H3I8Pl w;p31">!\1>9txf^kTrC tm5GBG<0ԽKx7`>[wP2"`g  WF;3Rʋ8?u)8U0'0g.oU]=`) כ:[/Nn ^)a 'Jxa9etslҠJ17/Fl;ڻmJt% YT[;5avsFϗ=?2h<ؓp[;^`Ǽ&"[6ev*_*%6aשiJy&*z +O@bcIl X @e,puP;arkIx j*^x/G(i ̡K.Yo3hutp8*`^Tq6x/#pɬ%ʌ{dJ >bLØŹ8GD7y0BBiflj֍Dނ ,8uaBM@~@& -I}.: <+b  @up@҄h[yNs 6$*DU. .=2P9{GqbHże*!]4؜ a)GSfKJܟü0\DYJ#jśAދq bz C,?,r8ͻRCD,# n |(}j@m|[96E/OY2t2] ++{{2?p C] 9 pEm1/FK8Սef58/-ZkU ;r񸦇& "[G#pF_ͮү"0_yi)1mvS,p.eWA0 Eނs~k>;<oA\1*C*Î"ՏnJ@U6@TO)Dʭvwɭ~[`{Q*wbƊ Cl1{1d4 x~kLP&\=+ҁ*M*P?M۵]8n"͛ .a]p'anX\醚 R͇s cE|M @ PkZtvґl\bכ#Śߑ-9|t v8 +_?5 _zdӈB}# f;'$V5x Ћ*q|3׉#A,bdj4fo2T"8_J%67lƸQ!"%`[¾ɤ GAc>]~0RY#Yɪunp!CYtjʑ%Yrnu/~jK:Yc~ ip\`>0WA_^!?ӇV)1\df5TF"a֣2+Lz$5 K| WR_ԈŸ1" ) #:l[avWi]FZƒfE~jE>Q&pƘQ|'a b$wF}]Ti2}<~߶ʒ M8coh `SjabE>zw@A^vb _go Z=~),ݾ9˶JQ|ɣOGp˕ķT>t47>”x:'Q4΃e=ת v:T6^^S sy D)q2˥JQs`bK/wsSYnfX$F@bB0 Xa|732`dfPf7J[ ?6߯VZU~v!0ñ]w'}016pMH.;>5H!1זmw_J].G.Z1X ?l ]?yb`%AI Gj<̓%SA($Q!~!cM65\GBUH58 =Y_.qrJ^6O!#!C:~pL P30/Ρb'ggnp] W-6!3nUZ&0 `qޯ)O P&qo* tч@(wa`} ̇q^Y"Ҿr-˩Ě=(RK-: wx_ 4[{+}x }~sp|Vnٴ,쯂Z؉h VDU68kgm{1 ` { >8ێPjTd0prpR/ȗ)~F204ѩIm.,h,-_q =:q/!c؇w\V2=A2z1J@3 A @ |\.hH%YroN-9'V (Ԍ[1C?щR q|O"$[ 5o02 ~t?2bPn?d jNrV7 e W}ߦKu}́i)xޗ,"b6ĵ>AhKsF(FjmZJ38]X"#:Ubƥ*c`AG#ZFRW&M/~)e5Oj-<"ZH/n#Pw[H] R[9{.vfB Qa8p G}`C?>{?^h?hȀ A?Ak$V_89RM~(䣥H$$cxWڱn6=D` r|^া6e&:j_C?J(r6w"Q|=1H2u#J?pj/6/5-x醘=tq|,#9`@DWߏ/DFNj0ҙhg>ͫG5j%k:<7?͕8nq 9! U8ǏyB1dǝ(2> (ry9j.FOْ\NSU+Eit|{ ڏXqMG̗x qTcH hts2nZY ٕSv+;޶1ԗ 9`;^nt *q>ZRkǁ?7m C1y:?-2?CˑJ- ոE$mQ9wvMO^Ȍ1M~Am1b1TXA> c|yїZ( 8?82zֱOw^ ;_Nv/uq/A%B]ϋa.+ր|O'SyП3wJ )Dn4m=Nm zЂPWdz+CノK6$|S? ȉؘX} }ҵ^4<(sQ[˳.[:݉3Dpޖ&YfҪ.`|/$`8;Qme4.Bpٯ^y&U[hu/'.p7#61C7dcPǚdS5J-EJ|:N|=b?X o\ ;@~NgGOL9͞&_s^kFtfIwd:f / |sd}op.y}WD;?_gkdzuhL< EQ1dG4<6Ejp). E/9WȷTE F,F r`U19V @GE߁n#*t CC_{AMr-\TC݅SC?Nvd5 y9<`GDpQ< S | ϛs3H ZQ FDX@#ll]w2Dr-[~߼Q> [% x#ЋAQ 5)3wx ~·s)8xȴ~l_z٭vWjM\U칎k%uSRP|_G;'ٓe?7oP>Q/)s:Ō)W`|$|~o@[xo#5mǭ77|/co\y7>|B=jGo_~~d.Q =KC3O,,M&T:U =zu濽uΩ'/Ӏ४S{e5Ŏ*amSSãaL`ƕ >㙷F##KT,sc$w.H%a,{էz2G~+'>?[_1 G2_Y>:SokBy{KPo--t~ٛM"zTOg.r39erp>s{GC'G|v@&3geiMoִ^[*FÔ%;AU޼B;iRLľ4g7]ne˪OF*K:WbkÄsk9EU-']V΋`6KΚDC=eKw;QĺkKy2\{ܹsT+g}wg:GWy߽7\f/uoZ>W6LS~v&yov2Z鰪\Wf'r}(Oϟ+S~g>] 6?TޏԅC]MR:\o˝9j;c/UZu_!2 5`Ѷ}nYnߧ?s_K+эڴQԳQ?7;o̞Kܭ_6eύ/ݳ۠-3/2R*w>XII3EtD|m kNHZ4ѥT ףx])oa]ʬ}Wzpuf&Y|{O~ƟO˵ <_A״[, q)Wž̇sZZ_,&~>xPM:7ݗ#;g' 21T Wf&&j*L_꨾Q}Kkv>RҥC&etiSn|/௾zaחc6P]pǥR+w]ɓyӲK@9Kgf.YpԚeڕYTofa@f.QoKzWk;?ѧbsֳ4\VgՋ-{{%0c 4앎`K_)Ӵd:?sըs~_t&e:t)S!Of!Qդ ܘ~-Zp-ٺ8bé\ !Ҧ9U}̤er=%ƙg3Ӭ'}\aī\ 5Lzi:ѓ {ߣ.~n]zޚ{9ɭ̃?̳ՙ+Gyϣv{)FĹ2Nm/{>}?뿦\JlQY~+eiݢE@;3zY\`^{/c+Ӕg2]s_y@;.mz5KG!2 Š8}Bef0$,xAM jd=_(g0R [~qcfhx#{۰JE4P3nc*)m@|ɒEe^NePXf:252  .n`ːw0 6[=.m Asa=yǣ /7}]e/J]y{y9' -غR~')3#{֯ ov>oI>,fAjh [P'uh[Tɞ\(K^P{7#z@_ 8QND-e @?`s}-Ԇɯ?{-*թ{o'b_r#طnM( `0` ;6{ ~a=аl1kgA}dY DضpO2tb[\X2֛poJ-htȚgn#]dK~O>8v 4sw"e_< z:C"˷`z!<[/$@vzg!{ݹ2 2}y'L♧!=}xYnwiV/ձ[ t-[SnrKmܙ=Gm=zcܙi }}CO}3v5K-SibܙPu4ՙFf݉G·܈#!pk/\zp6_^OiJ]ؓ~ے ,>޳u'mw+M W+-^q/Q[mj} Gn1ȸ#mKۙ-J-V36,+/Ao8;L4 ˾S[ݣ#\bmhvr+ՙf֣Kt-`pChK1R.(Gm5zjϭ3j#\Jwk_4SX&oYzXrb,~w`kz+CCeGkt>x!׿}Cׯmxpi[l^T@5^ԊhK;$==nR>(:+#V8Ȃ_KCl6Tioݬav P6}}[|X@s=UJӐK \qĪAmg]nYp*4y7bc+]^v'Bwgszڡ`+\a\ev7~o/϶ s{nbeWbSw/c .^z9eܘUay&sPU++ulrir^^~vi-cLb}owdZ;o6w'kVھTRo =Tw_h %˭}޾So'F'+֕z5]Q oE]z=TZviu3ϭ1V Öe͞%9 :7,E^VށUkpZ%r;e[ǃɪ?٤MسϼV9blUJgvW* qc6{ώ"%#~ϓ!PCSN?xw{K{{|W-윲S<ɞN+ ң}S6bFOuR pmBm=B|L]Қ9xOeg՝ˋ{&? g>}gVȷYsz'Gt xu W|C#7,xkkSu+ TwnN2MCҋћS݋w{R?{Vfv`%C_֙?ުL-Tz;uh1񤺷ܾ3_}"xL/5wOeCJxHM?<=ts{LCmSw@ ˚Q2D,K_Ԥ+ ۧϜVRUm`ZGJg ]V!PmQoem8#o'Sk)}Vt˵?;TIMΥX E«>zU-;phO.  DH$*x)-@=Rq)0\ip Aˡ[XKa7ˌ#U/=:CzQ"G2/!HFpH+ZïJ O˨ _2{"pzzrA!^ITTF1ol^;NvdEǂYxޑ.unI~!;3HA??b##A|A|Q_RG4{ #?=urfr٦:Q4!sѥ Nqi@(  [[ҥ]@'( ǃ{ *tndGgvmģ[~f]̱շs5D7%EpBD7coJa@ b_ #|C * >/C4ή,nS&WF?4aQAYCga³6E0q؈6æ;la 6aawa@F(DȠ(v"~ 6wC;97Oٗ=.eaX!.*5jʖ OtnbMw^S)T3ȥwIz)T"P!1Yk_@6D8oНdiz4h_zmKɻi|2{֩^CZS2I7IFH7)7y7yq ؖ 1 uyNQ~X o"-6MhttXC zwe {+8MO `/|6`{_Ɂ}eؚ 3-6FFwؠa? )0 KG4@UkkcN:.Xf䟰 ʦ qLqf}<}xΟ()|cwbA?<1? =a4Q;RGz'JHW*<9[:9Czt0Oŵ_=n?ٍ wїҫ旃G g^s㵨 ނ⼑w\Єrm`S6^\ =5'Ҧ3e!X??]`zG(131$.3F5uDC#*FEc],{x!<[sAJ@w6`[`F4)k 'H``"pZrCeI~o&]pU'qcITӉL?v]|| 2BhzX"c|q`nʁv$TYNO83oRU/F^SccP2 g}4B2((IYLbkd}EijHkgdfm Y0Ux˭*-dp7CA_MB !~c>FFy38#;üAxC: >W?++흺2vǽ3.wd R7O~:t,RSvkĿ\RG < 0]\Ns rp!0qm.à C0 4~p!t#x8'#vj1Ͷ,'e~wBL6=""Ȑ11~.!#[oi/\ANjc V $KyXCy_=+O{Gy]yA e=N۶$&Q,٢}`'%"U/JȤd=cw;J"QHU$%ٞ3>NR y;HDU{)M޻7R^#G-]j7a0x͊,쵄2s9ވB"⹒(|X#σ ^UH9Og2W%M,Dq/ŇS#c/>\׼+K]'VLj,XVjܣ ߴ2G .z$VjIi?3 xqt/d/`H;G L4<&E;Tc"qCKω _l=&A xYgЗuЋ`ڕJzY[?^{ C$ow9>G_llA΀ݛy#` #<87Nk= 409#ykrI C]1b:or: JDj &Rx | W5KlLOZ1*mtۯ4x k .d/M% UܟܟJ l0F?{ň?z:}~)h-*^a`8 q+q_ Bk2퇑2Wȇ3)AalSOHЦdV^;~o|$ :nK>[\~ XOu,)oI#:'KbNąn~zR5 pGyxxp&bMVl7jnvm3n#6a1jHIظR=X^HR,cv ^{>c<xzq@ѥLY"BUJH,![+/ 6F!'R`ry`dKzab.}s 6bSKXle'yoiO~uSOV[o"^S_h̟A݇/&P4b`Sx.Ԅ[+HD + WW /H,1RǷj#4 ׹vCYB1pVA߭ XdW#^( =sgp}tZ"oʍQ/rtvګʀǽSntk!յ`啵ar=6fџ+T(wt`lzdkEJ Ȁr\s*`_KU/ha ! '*]: gtJCI ! H`* ܟl& `=ܟ xOH\+t';Z/utZf|ؔUa=H+ Ge1\=)~Gi,Xn_f@.9J'}:!8} gb16 BєvCZQWܑ~9qy+Zv֠`o 'N>f)75 )$x W{`B^^d_q{5 ir7K@/xo'^ւⷤE+$>3w?!M}7~]Wh0 Ẏp\c2~z^< #ropdr=5C5<`쿉?ޕ5ek J9/#]о!B>2md" ( /$}(N̾ ד@8N0GE_ LKcVo{bZZ:N}T<䬀e<yܕu#]@/b)?*-˃˃ ;#]So!ֿUgW_I3;A{pY_m:C}[5@ ,6Ґ`|ywwzN^dSLio3vkfi6#=]3$gkpm&!?Ma]J 0.NSbȿSג ]nc3q)CˣhԐxxE_ײS'f G-?v&>5.<Ў|ql!RJ=:5x/#tŽvN ^/'j/>`WA2]1{5YONטj'W2.ςEWݞ(챾?u/iWGz.ĄQM:/}\NQj俆?̵X'nͽH?z"Sq_b&ݛWA){LS 1%;I@>[ -;ɷox^CDNjϧi|\(@T *ܟ /#XWu!YF'G,BZO75JK%]~WzxW!䕺4;^> >\n >OiZ&`)O,`CtH)Lw.lRd[9k݉%;e2]i|!o;6GYiw!7@ \ZQ:⼯&Lfկ4@L5BH9? >y`}䭽<v"@x/IfSvxLp3S ט=Uag$|зVp't|Ox2vgPV܈Ƚ?O K]˹\wなb`/4EY02[EʡN~;gB0P{!(qڏ14X )~f~F%DɎMt0)V+qMڌAL1A OeGST/y'G"%}놨G*FyTafd϶7s*n00ҥ˸V=$kh&X4dUwϧs#p|]$ WԢ|N~Kܿء3o=찋|vN~[}1o a; 7'О^NH;LuBjȧ|#{29i+EO-uˇ<:Csꜻo蠓2ŧ0C)D)>cQsXnjeb}kz.`Jg.8[';M5&V3jCߏ=O(Ԟ,HtA.uk⅘/"LdSvLj臚Wv 7{[r)djIFTގ9%Mo!_`\ Bk0 Aqc`+&sr-d/=FVŒhw Ussso/r9yqBN#{IyYx-k sSX6ʩs+biEc]^VMc)RYo[eTެoZEn^Q[YW[B6Ze}(17EoKonfC͜jos/#\:3VEb"j!s-;lneGΛK;1׹s16a49b-<7d/CF1aF޽#\}'sZ?7U#$-rxW O Q}zg=N9yX/[˕--Yek-}~=]60ϘkMYcSlK̳[bOkK7=l9OsKiނ4m(meM~(qo[cޒjTʉ7?ToP-**geoyU+M_8#g}NNrdxFpgf~oPז w>;{-i2VIjvهβx8bgm=\]`۪<>X[t׆Ij9z"%J8u{yɤ[n}sS{#r6%O ,i\W=Ί9YG663ڊc>;Kc+7b' J+ڋ/z;;%ڠO!s=o2gN8AZvQ Ԋ#@UҾݹ6{C쬮$}%׳׸b 1fN LUvtg70 ypS"]8szCP:zjr<-*A;Bv#vrVSAg TW]d>Z^{/h%|.P*.t?-Mx\Q&|]z2`nAsS 9k$z ":js<nago.NvD‡b4,*5>`Ι:K#p*'Bf96'Cƺ6`7%~0GN߭k-ot|khm!s~k^a`.]xj` 7d'XS>si<ׇo|$&E[yM-7>U Hlfb!Owb. Ƕcwo%wE`f .675XE%d-!{I=XYNM˼}6na&F> P|rÕ[B7_-;A˙]NLvr6f;䰵%5>k'.l[ÿqw?lltݛd>ڌʇr>;ec %l/A{AZ0r1=:4J{Tx?S[N?s{쨵:l7&e.UYBR>;bYE1hY7ӊr%; a{EƜbxtlv±Ve.\` ~1TPc\nCdgH~BRȤ[HV}I_a񌻎 3)ׄ$"uc0N$p/|v$L[pJ"Ix_ ŞIxsV# STZWžX4$ȣߋ5!h3ZWv#Zk#7yp![ݳH";O '38f0IZK5Xˏs${QdK3cN}wº}Gh/O2MLt.c?1Enw>y1; ?cNRYcoCuEHky(#g3ҴW(+ 3wwyIRg==Hv-m~mLJF@g8[/ω5"Ĵ\>ŽQ=Z s3o>0w)l+?VyDVwsܡ⇚/F5} i>ȓp 2oeh14nt@I-؛sF๤Fu{ɁcfL=Db ; &LD\blqqhϨO[u}8=5Sqapv!9;sZ8Z9%to&wq q:e]g?-Hwo*n|р2'i>\9~ɧc;ţrwm+֣_ȿ~)Ω_J;d?8k{+OvuWFetB|Z>j`ˁ '`OI!\9=alLI|:1hw^bܾ`H|UBi5Oam _Ae1oG9zرlx&Ͻ.$y< ʙ1s`}ntoOl#C{OjVNfO>T=yLбI՟ T?T?iwsm 6vF;0'0nW=b/vF;Hl& @WZ-ֽώۜ B}V8lIYvC^HPTϧpSmvoq2aRڬ3v+ugF=:joUg}>M51K&5{kֹ';Ag,wQN縗l8]9TN3;Ԭ}6_>1'6{Oz&ibaG^F߹l>#0H;ǙVXXh pS|rvsdfobf>"Qh/-zk͉_k7ٙRsH.AR_"#lט^ 866)^d`9./s[l.{^9Ҫl!@z#%uhk87 s"&a :o&N9lOw-5s5O%YjFa@~O0G -S&R_!:e/.o: %VM:Y5SFa:[`H!ui| B`4)Z{sRg_%dq@1W={tdO}QK"K!BYV\6Iy))tF^;9'p/rco>B9jiʏg= h9?wo07{TWS{kxƗL3rqvU XL^vRGPy,Hd s+h%ׂ5 dB,!m#qѱbs|񌜸$cHY)W&Q$MiRlӻ¥97`R ܍,myA֑GdУd_ ʱ/<|@.fwgYi]\%!ЛH*^S i]99{/B:ȴT%qGQcUx&:u}-rYrOzoGaކ$R^$Jȅ;? ;?Qqm*Ѻx#~_1Ro][onP=rCkL.$y' Tqd~S{(8uzwc~b*WvfL/o;#߽>#On_?Dw\:ԫ?h)B"<ٳmUo\Gc:)l-u%P<9Kvԁ,3RFa4I9t'Y\ߐ/A l'&{ "Zln5\8l- 爮BS{C[%ɿ}l<k^TĀʗjvcIRˍ Cm\fb>3< JȔ26Ts J U,R5G:>Q@,/عb) G,u\n<5oy 㴯r%srC^ۘ8(. Fly `z[H*b7WrЊo^#rb}*RÔTxƊogSR,EaI?_ WgfLQMO`bk]luA)O!"I,îV糒 ѭ3yi쿢B-y 4 Uٵ~u\2:$G{A /qkh.D{D4~(Q><3dGkVpU˞NRHtVSu ,{*$rSO6.[ C0hh?7 l-{HxteZVӋmVjs`] ֛`M+ϿawkTZx6OW]ra5 ZL:֡3SY~Q8E\ )myk()KesccƘ!(El%iؘ1W`\MJsr\|xmuL_(4=C{>0)~(F*ՃJ'Xr";fw/wFN d'~ϞFGU\T[3x? Fvc|Wޑ!{./v 1W\,YkU&]Z_G+m_Zr?*km ^A%Ax(ing IB*ZCf?={7^t%,v3h2[/#Wx1q(ksk2yyxy z_vF儃<ɩt7b_Whݶ X_ls-/:\Dk3AOz+B@]Z <̀+"ۉK߶ߎv˛bǕL|3kS--}=6xҗWT3k`^>_r]NDV4EHɨ x^Þ:rz\ /\䯶ZzK3u'rغxGyn/S|~M~.ErnS2"@А8ŐA>fD}曐%< #sP M8)Z'@/уܯ)|r V_Gx=IvK\ ?0ePv-#%~&KPqpI*{?qGROl!UK^+}v9b _U_봳 QTSǞv"布(O["Vc#5[a}eW8w* x-AA[-b9FuƍC~!,]/ʠ! Wn/Dm1/G~g(5L*%Yl3[DroyZϢqX q1^8WZF&J&fhB8@޷YTe35p5 kcGS ܌Tk)(4#ǯ 2˜ ]b?;J}Ǽ%L>  H.?C smS .v~Hk5*q&3~{qQ!bZٹjpUfG5~WKaIk3DIܵ[u}11 ey/rn4^dfƌ$' \ـ>Dʹ.;bmnp$9vέ3jGk]8} 7f. b U rPb?l12]tr?jǡoSǓN|}&Ks{S C.ܵbͣ-iGk%Q~DXzr.co]1>^[d1ևa0 kqߨ0N쩳 {O>O W'acIs=:lak$ҥF |?b\%KyQ:U ۸yew}q-Q9㸊Ͽ\/yLk1.G]JdQv^\91$K#K]?h&}1P2Z:I N!{boN g#dV|m ) PDk` =1Z#Zl {[yte3Dy_$6r%3i{ WǺ/o YBo5Z!uqHcxڴWsN,@>l8I0$ܵ3bK_x* M;ySSoiDoMh\O@!i`-^ ]q|F6N41r=VD=s?3GCooUi˖{+ Vݍ)!]{ڞN׾uތGTHB̬Ѿ@%~=IX_vW#% yb}uON{;G UZ3&=c;߿vtTN'^Eo2kSd-C~SGu= \ny4'b}6I0*9s**?$3 W RlM>ہ?L7}nVCԕ#5wD:u]'}1.G`έwkQcDB:,_0SN %dܝq8mqWƘ^sG{2@9Xbl`_qw i)2b'A_7ai-j1䁏Qa]Z]z /3 x s3TǟZgdJ ~`7B_o&A.ؗQ`ӀDq@< >$q ׊%k} ^h%\ޙ]zo_ TᗏJiHה+ 4~ I<g\?sW#D!zb:mSm1Va-`g,Q')vF:(sq=>0sWFq_p$w0/%[Vy,L !7[iqp7-OgG龮'2Cȑd dgiḦϼY/vVK+?wwUuzc KKji?( 7&`.t\B[gz<БUx>Bqb#3Sl0Lde1, r-5fbtE氟ZלJ96?)bseu+f{"jwsq0oX2T̿a࿍mtܕTjjR5i 9-Lp<ߑӽO`8?_p{&LK_ox3\tCoLxiԱ7) >0OrgjU?RӰK#S2 GY,`X44E(Aix(H4oܙH2` 0bO.`@MYN-.`uĂL[L Zw×]v[x"Pw 뮰h] cyFq/9뎷}2H"`BĀxft 4b~&n:I$nq +Rio ^<㚐Nmc^>ĒY#k= \pn4alϏڅl\|S;?QUoM05ŽR+[H>e.eRS/g dS3$u|L$m[xj"|;:ǩ[jf[:߸|Q3}IjFr{<Io$1wp%\ȋu,tю;l ga5ԅ.;[!#+M 9Pɽ0ZLIjoHc%Q%"fJDa2 9k$CNK3?ӯV# @1E8k_+ W+-"$lpAnIǔyka.^@0363p7btVN_ F_.,ƍ[+[܌yKf^{wAWoV*?a ڵ\f❷Gx\I]3Ŏkurb) li7  o)n?kr3Yf;~63n3sVb(kֺl &he,72`׭M_27sKƝQ4o;ooRWnT6RP l7XIfZL̿3o1nlI3z⚵vr򝿕;LƼLԬ&^3n-+)\OMҔ)LX5L'tmyv'_n7'|OWung~ݷWﮥ9_3J܊\6 떸 kKX5Jy{ۀ9^4UT+oK7bzLi/f6͕ro<.w ~G8Ӂ=vovz \Ί[k uDލR|cxS^(ѹ}}GĎRcw^xAʗ﷘ BAsm:aܑ;gSos6Xta=G3ګ#zHg%u6'*1mfYi7 m{ä0}-;jiwC}{s{#ouvq,m֊,MS<\3/i:%MF[[=7*u5';}:h'"p-yӇ=X]H?XKTl7{먮Gj+‘ݹM!cͩû\Ίt*FR)m7?q[- ulUފw; -`n !(%هu*= Doj]J2P}[?9_cYP.F*d3k5Ye!׾YnsJw_W~ks&h W(]z!U!dux~{g9 37報J񐽕 ŇM%X-A91mYN> Qr]YqOo,^yA{y' 7_Qfn1٠`^R77?' 5+@49Wmis^l}KMww6o_{~w)} XCxCx#7duA"}5f?hͱ^ԫΆ=DثP^ܟ@<Ġ[OmJ .z0PҭA&D'-ٛ=4dAl.bָI < זs:Х0Ak˸W+yAL{=G!5Go\#4ĝ'zQ{քSkKCKoZ VB^0^eWěl7wo$ Ʃ{^sg'o8Q9 >0O5彸Avxkg?|ci!o"si/ѣ^ڣ7sn%VN!n5эw Al0`S~oGg;FuuJ> dYC|{3נ2^ߣyr{dwM\SAw7c$`>waF:dr.þoԿ!Րo8{K6.Ϸ Dg[]G7ky}giTv-"m+$脳DR:+D.~|x;}ԕ?v[(ߠK9-(Em=8qB/]ou'jy?7Ih#b0ܸ];.}kW[A֥f .{ a.?`Q8v /{fa,~HyWd(VU=6u[vh~0VюkQgb30?C,;CIw$vOKsܥs ցEpM6R?z*}6nh́mZ YoIo->{`mrXpK5-Boͷ ژ{CAȵK5ж;?Xnњ}[o[Q_*lPz+Aj)tQ%eۛf}p-}B|&'Ks۳w:]҄V7&^2JlsGijJخs-3J3ݮ T;3JԞön)8OhWvG!mvV-jk⨶W|[ǚ]:=i٤Xqn]tx[HNew` MKz4~n4#_)ڈ |HIG&cWs1Й9cj)4'숈dn_|]>6gFh0B#Bx-!!!4G4HqT Z|x^V&@0vnE<85d$y Kc7'Tۋy`ްx\ܹHsMq]qqڵSkq,>h )x]V$^'}Fb50*BkoP8*GxGGS)u3niyA? ehSLg{P˧h|6ėGuG햀Gwy#yp[< lcp:!Or]}Zɩy/x(UQD ;*\_Gu~$;*i|1{{W^3H;"QJWN=X;ҙ'\fo8R6*uw!6c:s_#uuH׼5~. <| "AԏJ?`dv!Ej֤ڼpĮ +zH&mWr񅺬49VX* D̚2|-ì}ޜJg % 0/ʠQ}x-~[ڳ%G.[kGfd#b'_ _yDsRɽNQ;REjWbGQ, yX|~4<cޔ| :0?wHbOl(&؊ԓvlUрן mJrtFFg%l=&(*I]֞HZ{C#xT}A>JxF)mvߍ⺿"9V*{\p j7ޏ[{q=.{Y,Z=ӍI^Qe~}:FV9`6hg=&?\WcN*G }/nYB`,/> D[ x]1@dƜZbk9}aw`C=?='~v$t4Dyb4Fkx_BRC6ݯA,Q<3nϑs%:q=bsg7F#އk0 Я3 だpa %O؏^kOoYNu=ͮ ^x_ޘ?^}L/dC8뜏)3AA: W`{-,w.n &<JJ9_A1MRBƎ$qvD&oy@>s`c NR럱7D,aȁW(H%(t.ԲBI60)EG.[+c`?3CFUSuX k> i0cr0wßj'w<~ϕ#AS[%)2q.@,DUK-n)+zxy&pO_ qI e&P)G7˺G[oY ),?Q.y?KH16n{C1F._;+# 3|{/}<-Y %o`N8f+HLAl@%5}_!Fv@ϛUk?90x:[X)?0&FDqs`>d–H]%(sC@-O.sO6)&i U E}[Vğ~g^B%eitwse4x \!rb1`REyi5gſj! 1]fzϸC_S˪1 vP鄈Kq̘O9f ZPp=34Y*/Rn+ﱗ3MMyqҙțW!Url_{u/s@ px12o/`w6d 11m}y^Z& Vcc<;jsNnG" ~0س0N:3 wewS%v,:O$kq牎K8f`lbl[}Q:dKBA@G,wjw?IWq<_{b&c?`|&̾OJQ*u~ >/%Q90}AVy6' R:0.$&k!h*sV^ߦͽ(IYd@ς7Y^5Х \tT a${sa f: |}0!,䭘1d@aS n D#|‰Ltզ ]j-=/Wg710ƌV] sg$ *>XDs Z,8llbwGaw9U2b6v{᧶~-<U$e_Fݘ7:q1Y1̗WI)kd}Y3#1/ >/%;Lߐ%m˓-jץnq FO ]g1юX%˯״y#= ę3G({5YX0pxtT ~>gVyO3WkUiqC{a cu>k/`{y a]2o >v*[>(b̞ij {0BD_/*;m)q"q?%_ p?* vrtEkd)TJ> R0@RF?ğ8 PV?9E CS"Z%pQ1_H;ǩ{Nܭb'ZW;ҷZE j:eT}޿>mC e~~Yl{F.ɝ G/W@GMN7\ 1@D3fX9 ?ܞEHȋ券Q.z̜ _ub;N?9ÖL9a0s>=(At`~hS!͇:iqh? |lQ .mɦ?Xܺ1gDf_r,c1ar72_O{A ATfLj;UIџQ[_ O}}*A]NN?͚{;1 yWtP嫀]u&Nؖv?lMoww”HN/1r>ȏyI`xDsG\q HOJ S/x%Ɍ=' ‘o=߅q.^rsl? o?ci`cqb̏sAJR朏|\G/^WfވDI,vG>vȡEM^S3<-^ٜyc|cЏ Yp?Χ!_==}ެ0!T_=52.& ~\l7V7W7Si"OVQ}ɸV,:UZ%>w !`<h>xRDe0* q\x>G#|ob@OAz9t|SX=7бROLك۔n"/7B13s(= ^w c``>sq;/ q1'g 4^n`"eQ}yA5mEs?NriaMnqȎb؏+ 0羔^yVXHo%)}[iY2/QA=CH$k+h5!^ykc{h1Z}ycHS?Zds/j0̆`ZI{?5~F[􅾯^:'+A+7["UN0pςq-}|С%8`tBR}>Uis0{Y&Zbq+=$:ygvG00m<sr1 q|,xabU*Y^SrG(I~r O{x%TZRlY&8*׉a.E_vp*?7;[V{] (F|+v|7{n$xNf9kƑyYEr4ֺӱ~-ʗO[Y{"kWuNgGMxt!W̔GQ~5z|6_Y%Y!~}l0m!AIq{4ɥZP֥)W5gP49_ 8oJe֚@'˟Y'\9f p?Dttgf{Q9Ob_>0G4 v P CLy>^ݜ\a\CFJOG 6\rRG:=F}w)B][Gjg|:ד#ۇu!&z?T t;+]%pO^g>qAwԩǛ]/?pg[:zx1X:KLg<'dD 9x1Kx 1!9b#.|H%-[ j٣xo\WyiQ'0ss82xdːb[~lCc`\4cd:ۑ' pX,g:5(Fk4A]cf߇$vއ%╕}||/'A4 r{/ڋ=c . -[ܣ Y'wE|z{JG%mz]0+4S1.]rWjuf-sA>)A3"Z:p ZQ9߉c` f :9Mc&+x|| ;J)R;C_]|~__~PzYsO|BgJ)7 7~2o:667oÐes&2?O;4?=A$38̀NH~C"jEFEq&rA/"Cxݺ0,6U34<9ʚAh0Ȝvmt 1!BY?X0"CIJbՖ[jbǬHUzOf̆5uQ;} OJDkdZ U5gFk'O]JV/a!+ko3ݒ)-6:hC]BTqh)ئ1r{E30ۭQQyc ;S^/F" .|7oHf5 9Y]?#WYnZ|6p dDA {,KR?<2^{C4` z_@bx}ā pҁ0I2h!]O9ݍ( 䬧@O/JT >BN5؃VyC\` 'qsNs7Z!߆xA١7 SuvAGuƜ^~T: , xIc@ |ȷ=X>n˅^_mG9HWktz]FC+`xO/2}9f@Vngx^{֚?bD^ 7 mp=BQٌ 7 x`Yd!c&9SvfO9{8{|`Р3m~nO*?sȑ[5rxJ9*[7B~TKU8Z<ph&_ zyA6'@&/ї?YAD+KيO"mukP,VӶ=2`2?nгhOBr:D = ctN>=^:FE#I?MW[nOW3]ӛwm5qơD>,e&dWաA$щlA @+#2 `@9Jܣ<r$?5.6"z lvυN/E= c"x y4 |0^yZ+oޣr<;M#>Xo=A~g ?G.A"{#q?daQ aΑZD55eBG~΅}>:fbcxtVLNܸ>Wfyb~>rMVn.hfU1uѮ Ya&%8^ _P/vg3gx>j[@i y_|t^jQ&1ާOz>CMnO& }ԭ. ?D:|6EI/8c?j/ 4rj ;n'G?t$=E]QgYhnm}+t{~|Z*4GUvuiWG{G92ϵ+ 3m)cOx^e9ןc?mbӮUiȨ:uxnӿo_/t^]~w~-{htbz=!| 9rx]c~sp-S7D+yYSrZiIU_Dpr.D-_"*+l)Vxz`Bx)u"{Cŷ-o/ [N=w.1UD|q{ UZ[%wx׈'<{~ћrkշîP_Mڊwj7R[iDݗ#/dƖpaGa:mOɎl/NPjɩϱ%W~w.1"ω~ۉ+LppIV)^#qҹ|I*^bvlGBڬ *;A YP:us'm{j>8b=v+ >n)̤5ƅͅiiKqoPw kV}ƮN?6F;sIϕsO6xm  ͷ{D@½Q^e<:Q{ ǭ]g\`c.u:V>b=KJKۗu3;lPf{sdܡOa{ʭ.m.~6>w>2ytu1}h 1WapsS鳼[?Y74!>wiK\1xtsAiȺYkcO?G-d3οM_z=D&oɏʇ]hƮsp a Z~_bk |Ǽ2|qWҠޡ S7rVRkZ8_λ7 8Mfs| s3lj{Sup& L2N.eAƝs-߳HO96o_!crWt_v󟄆[Ix1#Kyʮvm+EPfgv^߈rCֆn*j`eA3|2}¡W_gO|#鑥Et0U&BNe,P'y~O.f]Eҹ(s7XW^O9YɦNtm@Tf+ߨDµ(X ,@>9a8^$Id-bj gwtN:CLb"~`ۗ?^{|&i7F/m\ ;+i_jY!zk(!9 6cGq/e;uk/˯ڍ>ZIGm/\I:4 !}-2d]HWL=Hԡd$5{  kc&x5fTc ab0$Q8 ^ >yDz?i<:Dsʋmh=K>3Ψ`m(աQ@FA]3+Βp r`k-UzDٚJ$FZ %%u5E b>g'JNjn*pF:CCb@X@?4W}@O{(XFҦV>g'JNjn*pFCCb@@\@?.;]kI 忞@-1OSM n 럆L<_ї(`# JS5̿=< ShaderNormal ,S@vTVr  T"\E  T"\E Normal&Input Normal brick F 1+5?N>/xPB v =0G-|00r=0G-|00rTangent(Input Tangent brick F 1+5?N>/ xoo4W}@O{$a 8 %%u5E b5-1OSM n"_(XFҦVLE2Data, 1=0G-|00r,S@vTV%%u5E b>g'JNjn*pF@DC`@T@?4W}@O{ T"\E (XFҦV>g'JNjn*pF@DC`@T@?-1OSM n 럆L<_ї(/|V FK| ShaderInputPN4?ڵfA'7(%dLrQn0 piDM7ؽ ^@A툷y p1M@o=e }E[2CV) `MOWIB"ѥ4HtO{/(0  qQ@RjP`ҥY@e& B_;OKFJ*rpw HRSEpFC ~__um1CR¬5 4 ٻzEuS SaI7֏bG4W}@O{$a T%%u5E bX -1OSM n"8 (XFҦVLE2Data, 1x~y"WMB]\)5FYP x*yI@<9#h"mO('B_;OKFJ*rڳVܯ]FՃ尲+%tsxi_GetInputLightDistRtFloat qQ@RjڳVܯ]FՃ尲'!tsxi_GetInputAlphaRtFloatp1M@o=ڳVܯ]FՃ尲,&tsxi_GetInputTexCoordsRtFloat3^@A툷ڳVܯ]FՃ尲+%tsxi_GetInputPositionRtFloat4)5FYP%%u5E b>g'JNjn*pFBC`@0@?HRSEpFCڳVܯ]FՃ尲-'tsxi_GetInputLightColorRtFloat4ٻzEuSڳVܯ]FՃ尲2,tsxi_GetInputWorldToObject RtFloat4x44W}@O{SaI7֏bڳVܯ]FՃ尲2,tsxi_GetInputObjectToWorld RtFloat4x4~__um1CR¬5ڳVܯ]FՃ尲3-tsxi_GetInputTangentToWorld RtFloat3x3x*yI(XFҦV>g'JNjn*pFBC`@0@?#h"mO('ҥY@e&ڳVܯ]FՃ尲+%tsxi_GetInputLightDirRtFloat3`MOWIB"ѥڳVܯ]FՃ尲)#tsxi_GetInputNormalRtFloat3?ڵfA'7(ڳVܯ]FՃ尲)#tsxi_GetInputEyePosRtFloat4%dLrQn0ڳVܯ]FՃ尲)#tsxi_GetInputEyeDirRtFloat3y"WMB]}E[2CV)ڳVܯ]FՃ尲("tsxi_GetInputColorRtFloat4-1OSM n 럆L<_ї(HtO{/(ڳVܯ]FՃ尲*$tsxi_GetInputTangentRtFloat3piDM7ڳVܯ]FՃ尲)#tsxi_GetInputEyeDistRtFloatL{0nBg)`! L Normal-Map, 1 P)\Fvq3 {O:r{O:rNormalMaplNormalMap : RtSampler2D - The two dimensional sampler (TpFޚ@'v xPBef F?f F?TextureCoordslTextureCoords : RtFloat3 - The three component vector F 1+5?N>/y xPB jn.Fd7ajn.Fd7aTangentToWorldZTangentToWorld : RtFloat3x3 - The 3x3 matrix F 1+5?N>/ xPBxPB5p˚FudTQ95p˚FudTQ9NormalVectorjNormalVector : RtFloat3 - The three component vector F 1+5?N>/ p4F4W}@O{%a @?%%u5E bA -1OSM n"W4(XFҦVLE2Data, 1 %%u5E b>g'JNjn*pFCB`@T@?jn.Fd7a4W}@O{(XFҦV>g'JNjn*pFCB`@T@?P)\Fvq3wk0.DX?_^CCU {O:r-1OSM n 럆L<_ї(5p˚FudTQ9f F?nEg'JNjn*pFBHBb@u@?QnfM9M$  WrapQ])JNЈhdzCqIjA  b/IG 4W}@O{ЎeJf6K(XFҦV>g'JNjn*pFBHBb@u@?oC~Oܝ3 Muf2BޠQTAnisotropic5 B%OKAnisotropicA ?gŘrAnisotropicTKAIzc(-1OSM n 럆L<_ї( T?cCx%K Wrap܂dKu=,f TextureShaderU.;]kI 忞@"pսq ?cp| '=4W}@O{$(apL QNIM5G&@1`x %%u5E b^{-1OSM n#>\5OD.GWf5h Hs`"(XFҦVLE2Data, 1#L QNIM5G&eSBgcp rC:\Development\Caligari\IconImages\mid-res_leaf_logo.jpgjwbVA/t-UoJFIFXXC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222"K!1AQa"2Bq#6RtTbr$3CSUc45*1!"AQ2B3Raq# ?PjK=0 뀎SEi.M$ 4$hI4Bh@$&Bh@$&M$ I4i B Є@I4$BIhI4@$& !4hBHM=T<2M&3K=z+.m oc{i $Z _־TN"Ps1.jx_56n}}g6|SA.hI& !&hB!4 BB0OԀI)nG6z)gMB6z\ۻ`JEH: !4@ВhBI hBB@ nzA7YEU) V=s[n9FJ#vn-5}P9)jewHt=Dv =hpt+;pf/ut|۩ ,caj-?{"!T:.l<)a@G–0x@G–p- &&0<"8GDewgvyR^B 9Fݝ&ВHE+C_BNE0xe8mW}-R!B*4W{t/]ʮMe.WD6ZqýZkQ}^@*&o{@> = c~q2BHْ7zQ*Ny[˼٠cw6Q(`Ҹ7R4w'P6v7s{uױp\0A .TnjSe|':;ryPh!$ В~ 'tH>7|@/;3C/ګfrk)~^?7[zS!4)!$9z_u_X,wQhG+rs g`y/Dߢ+KKR!7'GߍkH扲7湧 W+aZj7maAhY-ө2\iX뭎]0}gz/rFɢ|r49i;*|WyN:ĕktEޜ SFyWeg1!4/LA$&HM M4 tI]<ίVԿjŬUxlV-oOIHВ !BcF܎=!ccwlȾ1#K\H{Z+fnF!+6OqQODSяC8tc $n 'O5!a6=9<(#aIRB8F$ #aI@G’0 #aI{lFިO;$ tA+ȅ?>FM%{Cܴۧǹf9-H]k3ܷ; f)X{:z›gÐ/Mlۄٚ[\(j%+ȷrKGMZ.p^m4 ss;t㐵T4Җqˎ83>Ps53X.eC7l{Ǵ9 !aiI|# ?.Ӻ8ݼw,ܞ*Mm0Ӥp7tF=OF! S6v<DZyՉ6M+_[I8dt.i W%۪oVҧu]dǶF59kA!bש3gԙ0ٜٛ۴OVW4~U[h**$'1`KjJ5MsRG*y'68Mf=`8wZ71Km<=['+&6Iv昌AkhjKlO[^h;رL shBTM@oܐ}o.\ۦOu_urUxlV-e5/ګfrK|J4IHM$B 64% 2p758wx(!BqqW HUghz =c\0B̯E8Ku_h|Y;?=ݪB e`:{QOLƑM'`wVC㱚$-&8Fhp aVY|MiWSbWPhte5=no|A\斸G+F:\*n6QN2A qK>$ogZ6w .h]nDۍ]Fz%VlX^O;2湮iuGZuU)el!3H+zkUn|d<NoJ+厎 vYS~szGq]Ɋ4p3uMfִskǢbMY(hzx%CO -B} 'tH>7|@/;3C/ګfrk)~^?7[zSI4BI4 $sF>TH n©78F.#aKClxX :5̬aS%5|*v<Raa8CSv0*0!8S gCۃXI )Z 7=)$#tm%^-7mԢ*(>g ɕAV\<{:SO{-~kW᧮W[!gs29{K^摂*?:~QF9>daSRnp,V-jѮ2+[Dp)# DRF0a,aS\#hwX!:rxJ8t2 V g"K}Wwzy,U[4̴|9cwpWdĔ4e*=>:"fj3,XG0yQD͚Z8 oq YΚFkK XFY# XF4ƆCpoK;% K## :pA 9ku pń;୽3WbQS8 yihu=N=MsN|CVL"FHVUwkFԱдW} >tzy'Z:s?(?G뻼@ar28*/cSlb^GֲkSI =0B߹ tI]M4 3mK鿜R_Wb(hBHB֗84 p^l;sސoHC&t<)aT$a# H@G–$a(6 SNyvNDr:7cRM xVl^4hn#_l, : :v[-[ b{[FKh,# R7&5~Q$蓮;{yACB].d<|5^'Q5{  ˪TS2X;F;de/D ;A/PΩIi{]a9t.?wOɂOP{~m )%wX'.H?dyFt`tQٰC+̟F_ySNkBH^i!rA鿆s#ni> ~g!ڗU9XԿj-=)P& &r.j>vvGv[",# (R0 ",#K(R0UR#hWjk=W^ y3%eμԯRg3k0MΏcwkJ墇y4jOpai"uO9=wU[L WD#ArK]jʺblۗg"M6=t^}ɪ\]ox͟>!\cl=sNA,u/x0\*9h$G,n-s\0A VGYc-cI>O&1{_]hw*Ǘ=fJÚA+Y$Ҝk f(*&{q,o?.x`d"{NAsI4W8q'Cjg c֫:^ rmH6Jk(&[OoQSc{ C B5>nCFgo__œ^s]zh&,# 6٭+i݉ax{{{=mn9;:ǴR&vܡngў>>$Y߹ٖ e=7F14 oxx&ZA /_j(yܱ Z{[=IK 펞ǽCWO[Cd*WK3MYݞ ~Y-vWIxh GQb*jn)3 ޵^]hXFB!at%ˬYɒ~7s⹹9%dv̩μlԯJf];`WAǷЩҜ~0 & ٰ wJ.+xe4wњY6;C>]T ue==nLѽџ+gSP>64|6Ur[hy= {sEJ+=FhI\\oܐ}o.\ۦOu_urUxlV)eu7ګfrk|JI GFh@l6lGr|W L͚X/gC,#p,# XK XF0at>]ffwz@UZ4ZF#v9F#dcr4yAl7Gpwcjϖ"#wҎ/wR_{ 8 -gTh=@O=xs:}W#.Q YS\uRo_zBh6'8F.$#r\(M;q_dac HvkLIk7~UGҷX'RK&7z'dkpZҤXҤm8[GUO8G?|{GTʸvIEz0i\*]\k^mޕLMl|}k頵:>yҸCޯrqуՊm0uK|~6zt- TҥnT@ '|i\x~{.J&l`R8zhx2>/L6H-Cg?xvu~UH{Ǵ9 =t&wNܥ&, Ѩa,)aWHR0\UӻfX^jvS@|ɘzGq\arg|%2\O#o*ӵ7;^s[V_.ˎ8?Xwq \ֽxSd6+aǜpQ_v 2 y ؾ!L_W877 iw/͆Wb<Sާ{4wOn zP>߬0<4v?\tU_]Ewh*X˩ ȅv`[\ɚ=5]ԭ.xmPv2Cfofˁ>\FۅލD/Grk=pÚpA*#CKDPKY߹ tI]M4 3mK鿜Zj_Wb(i!5#6ַ ',qaOaOaOaOaOlުYKWQA79tح[#*lع +cX*I<yڪIF|Uy\=C|4ձmQszUҕzlp7{QVRmwlN8Օa|3"xØBm(aoz@C[ik8?gXZ.Kh6m xFI)d:9Z|WJIz iRQS)5Cf3uʘDV<0GP:l1jOr,ߔl9A ^)kk>޿zc{ea}Zi 9igZ2kLibd>)XZdz9t;\|Ǜ?tDZfBWD>?CY:{Q!.i|ViXL)G#ᕲ2F湧ҳZNTi뉅}<0ˏHuаZMmMm.lknop}[M45SF!.kYU,9v\צu%nSg=c1F<ػ_r^N06G)&O]s]%fR;Bo*Եi|Rf<%r->LV+KŅ*,Oi!| /E+FVdrX=\Z&wÞwdy+sgue@O9 =mmn7`;50}Tdxzu-x6'˽U"5ئR>e[Fs|nG1-{I*8[(? ,{ݎzK[6w-a{u^C}sٝ Ä.'_-*jIsIezjnˮ2F1g޴+ܓs$pjG WO}Ƒ\wG$#]ArPT͵*gru"IN+!ZT$ {FI_4.F9s$2d#v架//|R\%ĒI'y'$]&nڒvXxY p)a@G–p)a@G–p)a@G–Җz*TSJa^ӂ];l {?# 5 !xկ'D3TX.u+8)גlQ]i2~.gxU TBɡF񖽧 cjQϵ4>'E3 8WMP }۱;G7;EzWXjܭ^;hXaK™i㮡md8 \#|2:9CpBܰ+xi 7d^2ȭxf&p4srq`Fxaiic\ 6E4>GbϺ;s_SkBɣ9u666V,c]EQY+%qe]1D+6HF\]{M-%Srok;Il6;uM7BWJkž:WF-= &` 0ˍ?#ҩrز8z|fucviؾU5i*,37xhlk幕w= ߬tkg/ w_*N4O_ Mw=1Ю{Ut HjrrC[Erk士f̱; :jCA첲 L2=SURTIOEa<# XF0XBxF O# @,# @$a<#ӺOeqqoQX,# 'i5^TQ=fa!})nT-w:m*M[j188uu%1p'sZz}V{156TTPǝvv[ ;+AI[f`kp?SY>Q[ oѽ{K^ӂ Tp4T47xa͠q{GOj/ٖE{1.\ i9-qr&hC.5 yFצuz L c+ XiC#v?m:?TU..Ï6~#~Q6.+yպ^;9kkVCRH&|Ȓp.c$mcZrZb ,⡏&29ueS-O%2g?x^ ABXW5TZgA4uh^4Vt.Ԏf+nH֎oWkPO\D.hQq?VQxkUPߩ`6@pNJajOkf,)+Dqp*8FAݵ4NJHÄ$;>嬝'xFK*|!# ]$$'a'qW9nu7>ل 2^6@zf2+b7#4O` bYQ8%HiX} F)k EA$ziGT6 Ph;|zljXQ+E8E=,gz{uUG[#k#||np M$O 9~KpfDWD=bl&}3K}3BeҜr}hwTno_Tڕ Fʎeo֊vp6Fz:ݥRF6Zvm-p qC9Ÿw:ZXG  -4y.cfD#|׶5{THs/MpzBh]M 6==&,Y|-sO˱ZU֨Q# HP GG救F'Nh%M㑧k@|)!# H@G 4 #aIЀ$ ":7qkrӂ 4ƼlQ^ ?[!Ax!s4ֲTOCg>tة^ϓɻM#I}a ҁݎ>**Un `xWS\iYSI3e4 nsX*1φW+K =teb-#;Fa+&kT5ů&{=^bG#ᑲF4Ҽ.;?%|^2fj\3HMׅTK;eã: szAPג7:7FZdqϪk-7 >nWH}Բtb͋G\i=roQGcUB,Nfrv KL N MkWK%e;^q79“x0K'R۟Q tIc`r4*aR0H,#R0a# XF0a_+lu\,iw>*ױj*+>؝!qMIPtRi  bW41BF5 [m %e{:NJk b[ _d-PC3'XQ{# F=*Ժ* ]l5\ {UiSK=CਉJÇ5-j5Ek-i08 l5FoiK '8` 윺'z{ViZfbvZpGk:l;&9]m{ec^5 ]k+fe6qF@p;z=Nv|2|# YEa.F},|֎'hW+eެLdyBa]S)3# XF0 #altZ.]nuc"k2;.x]=<Գ:|R4x ER~yM=LS7ldu+fZZ**"{Hzr%i GBBH5|FՒzQQhpT<8 jӫ$VWԲ9r7sHNw\_inW|QJrCzOfT1mm2=rVe5vKKa9s!8`q=*Bewh:c^#٬k Ucgw;>/=N?x-Ϭm]&?wR3V:(ԯj[{cܵ'Y#Ǵ+cnuᘫi~7J볕~E(^4uԴ.F1 -Q7=ikW*OLҮ!K(RX]BPa)a\V禵[wG:Z~ +N0? J_D-$okrX枢݉>f91ثKMv/wuiڮwQ=$CazfKbTUL+}ϒTEUiЯ*{3骢l?]X=Qh.ڞqGVM_6>JJ ku4f9Ǐ?%Q[Nb{ִIh xz[&3lҵoMkK6[IP0cGglTԹz*rE XFHBEfjz6Fa}igu-\5 {^=q\!SDaxp'8qoԭ+Ks>pa/c}̌lLK\25h.IяYMao׵51Gkk)xV9ʩ<|țiɶ{",# K(R0 Fj]Ec-u f׻iJO~.$Э,hB!@B $ЀhIiz>|[՚(*EYҷcl9kA!f:{(:{ # HU0p)a V\1yq8hˮfO'?JqxSa  ^)X˭xaqctޫFڶc<)ahՖ˶A S\T3:(njZ#phwOwjc X^|%Y㿧Nr)# j{Ԕta7Gj4M*h]$G–AWzye1O⑼Zh?S#s.sT|{p]!)('qo ȓMSZ)# v 6Iϳ4ǰ> O itSn׌> &p|pT eSji%1ޮu.K_Oj[2b 7Nvxx{Zr8 -w^<7n1tHT?-<: e=[[Go>+T[S߹{ҽėI$䔰wC+pwCi*Ѹ݇dv0`Ჷ-2hw5hКXX-V0A3;Fm6KK78+#szEzy#hVުyFno#5 ,g1V,AlkƸmݧ}mnJY S>QS)'1ykioV_=[4ˤ{i`z֖=9W*OLڮ M(ES#|qI#H=%sI=i#\ <0.#aK8Fp)!>r}fU8= Z||¡Gcٕv-ݴ]ݵ%8>|p3V*(׮ j[lQi=ZhZ;# / Cub`n7Wg+%_^ۥ=5-΢ I$v2qLJjIHM EZqilk ɡiij0v7w;=1Ńh_;͝ȀmCFQZrMGR/+4wD`8 XKYM@9cdxAT-eD1TA!{OX[%R^Yk7:Ū0V WWU[{=̌<&bIp^KHHM DЀHMЀHMC7wk]ᏂĴcKOvFI&BI$&HBh$!!@MmuXdw=aoQJl9*fW!xPY#~Q^Hߔn(R rHFc9)a@ER0 #aK)0-:mَWyTՐv;畽Z-b&wu*!B24^+uv۸.nc,{޴N۶cTv̇|V]l3lLx&wu*(qQ.6nڒT֌yv啮y=LnH=}SI-.6ݩ#o=x;[Ҷ/, 3;[ܵޕbI>ĝxջ-Sv*#O7 {fWJ^zyWuawـBGR0A 'po- eEզI\2!n8t, |Ӱ˃r9[>V[s38J n9UmvIvz bGϽSZJ n<n¶]mumW=5l#V&dڒ`ma#:U6jz ,yd8-==`_˜K}+ji@sG>kYV$9:ȶ74-K_:<.OQ^,Pa)a@E XFF ")a@G -\7{ynPyE,d=B4+Ԑ4!4 $BH@ NܙkMld~ ɖ %l>7[}dzڬ/S1f`V=wmekNU&KD0zK]*ZrR̋CI^;vXǸ^ɖd)}jgcz筟̖;}^ضŕ#mFu20|)4>7!2h%CW*yxp騠8/a υф000HxF pGHObk+uʠ>xר-f&rp%8BBeuhW:xaG^Z jZξf:P|޷kevhy1?swOrFzRyu];n8YUnkS~H;0Eqva]h=,# LXF0i[vd+Low>a 8piT*ڸY TѰk$ {oeWUGa0#588UH|8%q%I$䔰3J!HbVqœӗZW˔ʭ|MQ];gLpذUҷFz`Y-u\||Gjȶ-iZp(C4uX  aO ЀXF0XFlM]<8@gr,֨殼`wx Kٲ^Ƅ!HBHhBHVƪPH3H:7{X Rk<gZXoSQ۩j42cq$x+QqXߓ5OɪUh: 2i&<|TKY0M ;'w u u9Nf223z8*:ҏ< X7h{ǐAWbTۨXes>%gE9+.E'ɍߑ9Xj3rikX%YenU:ZKh#GLD;oXaK7M4Oa<#tXF –  GRxF xF O NdZc,2vˢdɍ҇sӖj2*$3ܾ.PǹsÛ5M[ʺ5RA|O-$tTkDcypC/.Ҹ,# C0XZχVR7x1vղa<)M9{GfAlbLo=ao1Hɢl9t~6}o=nڱV;3d8,=a[IZJr7a sdcG XBxF RX@,# @,# XK wVmP߃?ՑrmDsϴo*Zp΍qh! M$r>)Y$n-{s\88 :oE}UahT8xTftx> ;;w: rrvllU&n 0\/@r uwʿ8ts{ol~ E5'=޵-KҾ-Kw9췿-ɪ% ٢{GW4Jb{4&oR֋қZa8`af)3*hPuLs_%]0@ ,OMo \Ҧ֊1=ydѽiiTv2*x.5 avlK$oSU6S`yW:+Cx6`UQ4'c\4VTk=VIln=1at.ɥ{:#CFNXZ*0+'F|FV^f)q+ڝv&6G8~q[)YspFՑY߹Ka ٩[*QBIݓ S4О*K",YWFJk"ҙ4;h7F? {j{[Dp)a]:G ΍{Ii#alqoV 8{G :;2f A<҉`89V> k |=P(z*[c2lp.Xl)ėOIK k-KKDp)a]:G–p)a@G [j[[vӗvi4[=A&Ǿ3[\װ9kAq _)n&ǯ;5]ox$ӓO[RwImJ&a6 :S¤,# XF0a*Kwjv;ՑL:ոhhIj4I&i&B I/m lv }M1&[ݭj *`j"Ÿ+krnVwcTu)rr.HgV2[E%}||\ <$3KO 15O)Vuҋd,{0ZW5[BVbQvO-ܶ\bn6iKy~Jq䢺L%qZ^=> Zf˭*g F۹`UxmWQ;i[eRY.$>e_;${c)#.qvTs[jVHIu5R%Qv%͙LH=(ݹ{:=g/!cXk}W=~ԑjU {KOb*tڛ%opU&M\sZr t7Z)at料)1Vˁ=etxC0ix-gȸ7mmoxhxoYzkնl$ .>UxF^4VϱT]Pr9{,~)h,# G TLba|;-h+f൞OP7f}4Ez׷"&0[]5\*i|XĎ*~ rdiS0qin7,cxZj*5H8_$zNVVT:j)Ml_q0aL,#R0,#R0°:T `[&٧/hӗhy%Yw1ݚZ58׵46 〓V}/V38o+]kJt5{C摐GII# XF0a,}m537OOgSR&/!a;lܱr{[6I B@4! !MBI4 hIВhI2U~`Q]hproQqV={ہ(V8Q .w-vۅ։VK ӱ՜X\̒X|x(בXi*K(uS;K?"w*zլ`jc>*kٔWGKgCMO Cvf9U:ZQӏLN#Âmܷpm}4wmT~H[27<Ӑ/=UE#'u*lmvʏ9xk~zN:ﯻV\*泲p{ R#)aR$G–p)a@ER0,# XFߴ.l3*8?{ꦞM=DTBn{dc^1!w Whۈ<n6P18-/2PiOrZ8FCpr=ltw:*j?w8p;U2P<q!hZ*\/L2\JٍR)uX내MH;& iBQj{kǏy9KHCXcY_q\ܭGuE40Mlr:C-1q~Gn쎼ƻ6ǸFVmAz%<Ji]OQ܌GN4nWV긯QCT4nqvt)4̩P<6F գQ۬~}$Z $@doRR3΀Puc+.$$It%H#,6`G[)h^v&|S0*ibuSk;\nGUP)eMrǓ!= xϻaS+MyQ㘭pivGU e*[b(gx>b\ɁQO4'p[Hm_Ux櫢y>+ pzBMrAa4. ЀXHAd !^t̴#f.d;F&q/}RrV [~\I"#py=JR6 # SYg6;-oT*\$*\DF 軴4b'5ն/nf8r*x &ľ'f>77W4Yk[)k9&ayN5 kCZZb'8siZ&:+8KOviwx4>s\װ=kA R7y55&tҺ)qů>:; z_GQ'|}ouwuNJ>:>NN.B}z_GQ'|}ouwuNJ>:>NN.B}z_GQ'|}ouwuNJ>:;䏣SKPv޿rW $}[G]j>SNN#?T'ݿ}ouwGQ'|Z>^jOEm{p^X.zz=1ixF89tkqQhdd>*f r笾4j<]AZǶgi1=-\uu@ )<@q;t-]loq!4+UZ:Wz3NϰCج2Dʇ6A%GyĪ>wEQA]AK=YiHQEYی:sS^MxQ\lc+$ KpFzrrhAANx$d6 w+æm:bXd;R=.s$Ar{iO ÃxNW1[ᷓ3hB 4BH4kOYUJsOQ,GB& 6:fL++/MFUCtOғPxxe6` D#d,=]5P=DRx?- G˧©ZLsU`t=CrA0ix* \x+ذp-Z]IQM4'p,6Uc!>*En)r1͑psOBH0a)/lNݙ%oߘZ5*Grc'%|ji`TD#p)iY7!"psJ7-6{eKT:TP!vo-yANH&jTN Qڍ$mn!ϋz;!Z΍/UՊՊI%a`-ŭ`N?mZO8R,ը@uǯg5/VB9?V?Mz g~jB}c,^B9?A?V'>?5-Ók[?'$8Y_ArZ?Mz gZG 'ը?POGP~l֫d'>?5-Ój[?'48Y?ArZ?Mz gZG 'ר?POGP~l֫TCdh5j-Ól8Xͩ%:{t$ď{ZeuN&KR5ƍø,jPBjd$@5jΙζU{A &46)FI;vlmwvej)2BfejP&$!MIM$!!@ !4i!zwmA4;#YjmYy+GDⰉOq|6T176́/=dxeVɨ<0<0~m1[v>{U&4*OhS^@*OOˍk]1Q<8n?%Sk;9Tr7 kV;y')iԜAu+-F]L{1W|WU;{C{ܥ{mo+󠩍 tw)G޴Jg'JNjn*pFC\Bb@X@?5OD.GWf54W}@O{(XFҦV>g'JNjn*pFCtBb@ `@?.;]kI 忞@-1OSM n 럆L<_ї(/|V FK|S ShaderInputF+?ڵfA'7(hѨ %dLrQn0` piDM7r^@A툷hxp1M@o=Ng{}E[2CV)˔ `MOWIB"ѥ(HtO{/(W qQ@RjPҥY@e&Hϐ B_;OKFJ*r`m HRSEpFC~__um1CR¬5@̆ ٻzEuSp> SaI7֏bpս4W}@O{$U%%u5E b -1OSM n# (XFҦVLE2Data, 1y"WMB]Ds)5FYP-x*yI #h"mO('B_;OKFJ*rڳVܯ]FՃ尲+%tsxi_GetInputLightDistRtFloat qQ@RjڳVܯ]FՃ尲'!tsxi_GetInputAlphaRtFloatp1M@o=ڳVܯ]FՃ尲,&tsxi_GetInputTexCoordsRtFloat3^@A툷ڳVܯ]FՃ尲+%tsxi_GetInputPositionRtFloat4)5FYP%%u5E b>g'JNjn*pFCC`@0@?HRSEpFCڳVܯ]FՃ尲-'tsxi_GetInputLightColorRtFloat4ٻzEuSڳVܯ]FՃ尲2,tsxi_GetInputWorldToObject RtFloat4x44W}@O{SaI7֏bڳVܯ]FՃ尲2,tsxi_GetInputObjectToWorld RtFloat4x4~__um1CR¬5ڳVܯ]FՃ尲3-tsxi_GetInputTangentToWorld RtFloat3x3x*yI(XFҦV>g'JNjn*pF:DLCb@t@?#h"mO('ҥY@e&ڳVܯ]FՃ尲+%tsxi_GetInputLightDirRtFloat3`MOWIB"ѥڳVܯ]FՃ尲)#tsxi_GetInputNormalRtFloat3?ڵfA'7(ڳVܯ]FՃ尲)#tsxi_GetInputEyePosRtFloat4%dLrQn0ڳVܯ]FՃ尲)#tsxi_GetInputEyeDirRtFloat3y"WMB]}E[2CV)ڳVܯ]FՃ尲("tsxi_GetInputColorRtFloat4-1OSM n 럆L<_ї(HtO{/(ڳVܯ]FՃ尲*$tsxi_GetInputTangentRtFloat3piDM7ڳVܯ]FՃ尲)#tsxi_GetInputEyeDistRtFloat"YMڿ$Zߦ@ ShaderColorHs5OD.GWf5>\ C/-~CxrERgHsq 4W}@O{$UH %%u5E b`Q-1OSM n#PQ(XFҦVLE2Data, 1%%u5E b>g'JNjn*pFDB`@P@?5OD.GWf54W}@O{(XFҦV>g'JNjn*pFDBb@@T@?C/-~CxrE-1OSM n 럆L<_ї(L{0nBg)`! , "Color texture, 1BP)\Fvq3Ȏ? 1frHsOP5s RgNgPR3HBPhxRgRgz(J.Ď ?c4W}@O{%Uݣ %%u5E bk-1OSM n# (XFҦVLE2Data, 1%%u5E b>g'JNjn*pFCB`@T@?z(J.Ď4W}@O{(XFҦV>g'JNjn*pFCBb@@T@?P)\Fvq3wk0.DX?_К~k,J6 PR3HBP 1frHsOP5-1OSM n 럆L<_ї(nEInputBitmap@1L QNIM5G&pQs s 5%Kլy|Ȏ?QQ])JNЈA.GqiFE0IN s x8A ?gŘrs {5 B%OKs Muf2BޠQTs zm T?cCx%Ks QnfM9M$ s ȼ 9QbJF}~b{s GTKAIzc(s ؉: b/IG s pvЎeJf6Ks hhdzCqIjAs LoC~Oܝ3 s p| 4W}@O{$UXe4%%u5E bb-1OSM n# x(XFҦVLE2Data, 19QbJF}~b{-n,Njlpg????GqiFE0IN DIFFUSEMAP5%Kլy|L QNIM5G&%%u5E b>g'JNjn*pFB`Bb@u@?QnfM9M$  WrapQ])JNЈhdzCqIjA  b/IG 4W}@O{ЎeJf6K(XFҦV>g'JNjn*pFB`Bb@t@?oC~Oܝ3 Muf2BޠQTAnisotropic5 B%OKAnisotropicA ?gŘrAnisotropicTKAIzc(-1OSM n 럆L<_ї( T?cCx%K Wrap܂dKu=doom3jointgeo 5.;]kI 忞@"0q苾[`d4W}@O{$ 8ڽ G?ŋ G?ŋ tSObjLtrueSpace object synchronization data g'JNjn*pFBCb@ b@?׊;Jf|ڢWAG`^02eE{|@B???? G?ŋl罸[Hq2>$?>^?>$"?>#!??UnitObRQOLayOLayeMat1Z)pa ?fff?ShBxZZplaincolourW5f@(䐈M?0q4W}@O{$5VIQGіF͡T>W5f@(䐈ZpߘHXOlxRƾz>dL?PSƾs>dLPSƾCд®?ٸ*ćIC7lq2l=>l=[H=q2> h* 6H?BJ8{EE%D7[LjUb)R ʽt Aqry'HNű_,lLo '89Ig"$?&?^?{?$"??#!??ZpߘHXO YW?Yx>YW?Yx>YW?Yx>B[x?cnB[x>B[x?cnB[x>B[x?cnB[x>YWYx>YWYx>YWYx>qwB]zJ4 >]zJ4 (VertexColorStrength(VertexColorStrength2zZJ.HE /*gJ.HE /*gShininessShininess2[ 8VnZN:W p8VnZN:W p DiffuseStrength DiffuseStrength2 ll-#Ez k^ll-#Ez k^"SpecularStrength"SpecularStrength2` 4W}@O{$z XD<K#uiL$K#uiL$AlphaTestAlphaTest :KrbSx2= ,L?D},L?D}AlphaTestValueAlphaTestValue2J.HE /*g@@>]zJ4 n%⟀A}aJ-n,NjlpgD6Ƅ 8' ?4W}@O{$z xf RGψ"FRGψ"FLW Material Output material _[@.~$P5 8 RGψ"F }R?DVmLWMaterial8 RGψ"Fxf `%qN9{ۡ-~qN9{ۡ-~$TransparentShader&Transparent shader `ގ@;ENi8v8  7-+Ahhv 7-+AhhvColorShaderColor shader U@M[ VMx8 ,< -THJ`,< -THJ`$ReflectanceShader&Reflectance shader =HG s Hm 8 pk~:T@hH~:T@hH&DisplacementShader(Displacement shader 01gH=-H.8 ^>4W}@O{$CqN9{ۡ-~,< -THJ`RGψ"F 7-+Ahhv~:T@hHJtP8N.$PureLWColorShaderx{[f(@-L*;{[f(@-L*;LWColor_shader$Pure Color shader yᮍGM޴" p '޽lL]>L'޽lL]>L NameShader namexD4W}@O{$CxҨ !agNc +A!agNc +Acolour0colour : Shader - Color -n,Njlpgx{[f(@-L*;'޽lL]>L plain!agNc +A-n,NjlpgLHm 64W}@O{$C oF5SO/oF5SO/ambient factor@ambient factor : Shader - ModelHm {a>% AGJXs>{{a>% AGJXs>{diffuse factor@diffuse factor : Shader - ModelHm 7f`e'O@f`e'O@ specular factorBspecular factor : Shader - ModelHm pA퉠C i 8A퉠C i 8exponent4exponent : Shader - ModelHm @Kj=N1RKj=N1R specular colourBspecular colour : Shader - Model -n,NjlpgHm oF5SO/f`e'O@='޽lL]>L phongA퉠C i 8@@Kj=N1R-n,Njlpg????r鷅wOq=0{a>% AGJXs>{fff? 7G5f2PureLWDisplacementShaderH.I˕XMӍJS9I˕XMӍJS9,LWDisplacement_shader2Pure Displacement shader yᮍGM޴"pk'޽lL]>LH.Ƅ 4W}@O{$C'޽lL]>LI˕XMӍJS9 EvmE|Kc\2PureLWTransparencyShader8vfO*EI,SfO*EI,S,LWTransparency_shader2Pure Transparency shader yᮍGM޴"`%69'޽lL]>L8v8' 4W}@O{$CfO*EI,S'޽lL]>L47m2O doomTransformxw*<ĠF姁J]D3 3WAG 3偢jD%~`8B ׊;Jf|ڢBx*4W}@O{$ (XFҦV"A+-1OSM n"偢jD%~`8(XFҦV>g'JNjn*pF D Bb@@T@?׊;Jf|ڢWAG<ĠF姁J]-1OSM n 럆L<_ї(HFh-F׵Ԃ(Q Joint%/0.;]kI 忞@"ׯ 4W}@O{$ &"ݫK^BUݫK^BU Joint"Joint parameters jh/L/VV88 rcAۏOrcAۏOTag(Joint semantics tag&" (XFҦV"oO ,LJO ,LJ Bone4Parent bone for the joint DZ5 O*\p=-1OSM n"`}e-5bACuۚ-5bACuۚ Size$Joint size factor&" WAG$pHPY `CG%S;>Y `CG%S;>AngSprZ*Z angle limit spread&"X .*ÿ@;f.*ÿ@;fAngCntX*X angle limit center&"PX׾JBoͰw׾JBoͰwAngCntY*Y angle limit center&"gIR"q3gIR"q3AngCntZ*Z angle limit center&"X(xf?Iq -xf?Iq -AngSprX*X angle limit spread&" @:WvZD,@:WvZD,AngSprY*Y angle limit spread&"c}ITBK}ITBKAngStiX$X angle stiffness&"@r<|ݔK .ǻKr<|ݔK .ǻKAngStiY$Y angle stiffness&"/yte6N'te6N'AngStiZ$Z angle stiffness&"M3BI zzBI zzAngDamX X angle damping&" \<'7=B;;'7=B;;AngDamY Y angle damping&"79/6zsMf6 /6zsMf6 AngDamZ Z angle damping&"<6[v!D6[v!DMovMinX2X movement limit minimum&"P  @N1vx @N1vxMovMinY2Y movement limit minimum&"@"ﶌWMS'ﶌWMS'MovMinZ2Z movement limit minimum&"QavE/b+ avE/b+ MovMaxX2X movement limit maximum&" u'eDguu'eDguMovMaxY2Y movement limit maximum&"h R<&d@ d|R<&d@ d|MovMaxZ2Z movement limit maximum&" !lMp[msd!lMp[msdMovStiX*X movement stiffness&"@ ~Nc>I=ܯ~Nc>I=ܯMovStiY*Y movement stiffness&" гh@jгh@jMovStiZ*Z movement stiffness&")Mbb Bu4Ǫ/bb Bu4Ǫ/MovDamX&X movement damping&"g^0A p Yg^0A p YMovDamY&Y movement damping&" (roACp"G,1(roACp"G,1MovDamZ&Z movement damping&"@0_BEP1@0_BEP1@"SklMatrix@Skeleton space transform matrix `^02eE{|@"(d<ĠF姁J]D׊;Jf|ڢBp4d'kJ^U*d'kJ^U*Symmetry2Joint semantics symmetry :KrbSx&"#bb Bu4Ǫ/? @N1vxg^0A p Y?6[v!DrcAۏO'7=B;;?gIR"q3.*ÿ@;fO ,LJ(XFҦV>g'JNjn*pF@D Ck@ j@?avE/b+ @:WvZD,4C׾JBoͰwd'kJ^U*:KrbSx8 right left right׊;Jf|ڢ(roACp"G,1?BI zz?Y `CG%S;>4C0_BEP1@`^02eE{|@Bx99]"'?@*RQ??@>')x%@i@>?xf?Iq -4CWAG`^02eE{|@B????-5bACuۚ>te6N'?}ITBK?<ĠF姁J]`^02eE{|@B????~Nc>I=ܯ?!lMp[msd?-1OSM n 럆L<_ї3. GFʠN=00@$}}MinZ`Ez]UO GFʠN=@0P$}}MaxZ`Ez]UO GFʠN=`0p*}} StiffnessZ`Ez]UO GFʠN= 00)}}PositionZ`Ez]UO GFʠN=P0`(}}DampingZ`Ez]UO GFʠN=@9 }}Limb tagrcAۏOZ`Ez]UO1釥GP>a@<rcAۏOZ`Ez]UO GFʠN=@ 1 }}d'kJ^U*Z`Ez]UO GFʠN= 1 }}-5bACuۚZ`Ez]UO1釥GP>a <8-5bACuۚZ`Ez]UO GFʠN=p0)}}RotationZ`Ez]UO GFʠN=0 h0"}}XZ`Ez]UO GFʠN=h 0"}}YZ`Ez]UO GFʠN= 0"}}ZZ`Ez]UO GFʠN=0ph"}}XZ`Ez]UO GFʠN=hp"}}YZ`Ez]UO GFʠN=p"}}ZZ`Ez]UO GFʠN=0'}}CenterZ`Ez]UO GFʠN=0'}}SpreadZ`Ez]UO GFʠN=0(}}DampingZ`Ez]UO GFʠN=0*}} StiffnessZ`Ez]UO1釥GP>a00h@<86[v!DZ`Ez]UO1釥GP>ah0@<8 @N1vxZ`Ez]UO1釥GP>a0@<8ﶌWMS'Z`Ez]UO1釥GP>a0@hP<8avE/b+ Z`Ez]UO1釥GP>ah@P<8u'eDguZ`Ez]UO1釥GP>a@P<8R<&d@ d|Z`Ez]UO1釥GP>a0Ph`<8bb Bu4Ǫ/Z`Ez]UO1釥GP>ahP`<8g^0A p YZ`Ez]UO1釥GP>aP`<8(roACp"G,1Z`Ez]UO1釥GP>a0`hp<8!lMp[msdZ`Ez]UO1釥GP>ah`p<8~Nc>I=ܯZ`Ez]UO1釥GP>a`p<8гh@jZ`Ez]UO1釥GP>a0h<8.*ÿ@;fZ`Ez]UO1釥GP>ah<8׾JBoͰwZ`Ez]UO1釥GP>a<8gIR"q3Z`Ez]UO1釥GP>a0h<8xf?Iq -Z`Ez]UO1釥GP>ah<8@:WvZD,Z`Ez]UO1釥GP>a<8Y `CG%S;>Z`Ez]UO1釥GP>a0h<8BI zzZ`Ez]UO1釥GP>ah<8'7=B;;Z`Ez]UO1釥GP>a<8/6zsMf6 Z`Ez]UO1釥GP>a0h<8}ITBKZ`Ez]UO1釥GP>ah<8r<|ݔK .ǻKZ`Ez]UO1釥GP>a<8te6N'Z`Ez]UOnevG4'@ XJd'kJ^U*right leftZ`Ez]UOR<&d@ d|^@ﶌWMS'^@/6zsMf6 ?ݫK^BUгh@j?u'eDgur<|ݔK .ǻK?oQbKl&.ʹCGUܩH] Bone `;.;]kI 忞@"P34W}@O{$ wo.(ѻD3Ϳ.(ѻD3Ϳ RootHRoot joint. Attach to parent joint. jh/L/VVHu g!Jg!J Bone Bone parameters DZ5 O*\mIbEM K1gIbEM K1g MassBone massHu ) "Ydg'JNjn*pFDCCb@@X@?g!J׊;Jf|ڢ`^02eE{|@B??o:?IbEM K1g?0_BEP1@`^02eE{|@Bx99]"'?@*RQ??@>')x%@i@>?ۻJfHkG/.(ѻD3Ϳ"Ydh_-4W}@O{$ 0(XFҦV"(@-1OSM n"@G׊;Jf|ڢZ1 k=П h^偢jD%~`8Z1 h%9(@<ĠF姁J]\o1 ؈hWAG`X1 (@ G?ŋ8:tveDCE`"IWJZ 1 P2 (p{S $hKnPSVmS $hKnPSVm"RenderAttributes"RenderAttributes HEoq5v1 p'8Et d_@ cB8Ed_@ cB8ESkeleton*Skeleton data object [}Nj21 Ц @. 2"IM6 Ex>"IM6 ExRot color(Rotation lock color -n,Njlpg=91 5 ƒsF2ƒsF2Dynamic LocksLSet of active locks for dynamic tools u|H '$p_(IДl/(IДl/Show locksShow IK locks  1 X'f'a#G @=^V("'a#G @=^V("Show handlesShow handles  1 (ͽ w`ZL. 5w`ZL. 5Show structure>Show skeleton joints and bones  1 >"IM6 Ex-n,Njlpg%?>h>? 6Jѳ( S $hKnPSVmw`ZL. 5 'a#G @=^V(" 偢jD%~`8m6EfH-n,Njlpg???~?JmCb4IP}K^:KrbSxSolid defaultSolid diamondWire diamondWire thinSolid defaultd_@ cB8E(XFҦV>g'JNjn*pFDBk@ c@CC?n1LH_r-n,Njlpg!? ?>~? 2>'??WAG`^02eE{|@B????(IДl/  G?ŋfdN*5Ւh GF8 v[IL'KIZ`Ez]UOͽ>fdN*5Ւh 0GF8 (IДl/Z`Ez]UO GFʠN= p0GF1 }}(IДl/Z`Ez]UOͽ>fdN*5Ւhp 0GF8 'a#G @=^V("Z`Ez]UO GFʠN= 0GF1 }}'a#G @=^V("Z`Ez]UO GFʠN= GF.}} Show SkeletonZ`Ez]UOͽ>fdN*5Ւhp GF8 w`ZL. 5Z`Ez]UOͽ>fdN*5Ւh8HGF8  6Jѳ(Z`Ez]UO GFʠN=8HGFT }}#Use Character Editor color settings 6Jѳ(Z`Ez]UO B>IHHpXGF5(\VVn1LH_rZ`Ez]UO GFʠN=HHXGF1 }}n1LH_rZ`Ez]UO B>IHXGF5(\VVm6EfHZ`Ez]UO GFʠN=pHXGF1 }}m6EfHZ`Ez]UO B>IHXphGF5(\VVq\7LO#Z`Ez]UO GFʠN=XHhGF> }} Position lockq\7LO#Z`Ez]UO GFʠN=hHxGF> }} Rotation lock>"IM6 ExZ`Ez]UO B>IHhpxGF5(\VV>"IM6 ExZ`Ez]UO GFʠN=pXhGF: }} Full lock졉E/~ݾZ`Ez]UO B>IXhGF5(\VV졉E/~ݾñZ`Ez]UO GFʠN=phxGF!}}Z`Ez]UO GFʠN=08GF!}}Z`Ez]UOv[IL'KI q\7LO#-n,Njlpg>"?I??l@ 47m2O &Transformo<ĠF姁J]D(@h%9П `XWAG؈hП h%9偢jD%~`8Bh^П ׊;Jf|ڢB@Gx4ػd4W}@O{$`׭ k(XFҦV"`T-1OSM n"偢jD%~`8(XFҦV>g'JNjn*pFX@1@?׊;Jf|ڢWAG<ĠF姁J]-1OSM n 럆L<_ї(qU F3f 2Object Render Attributes8EtS $hKnPSVm{,]8Ns2]8Ns2] Surface Opacity Surface Opacity8Et ^mګA~Ksi[^mګA~Ksi[Points opacityPoints opacity8Et$ (lrsGr(lrsGrPoints Size>Point Size in Point rendering.8Et0\\Eh{5\Eh{5Points ColorLColor of points during the rendering. -n,Njlpg8EtPgS"PbEGDߗr"PbEGDߗr0Ignore mesh point color0Ignore mesh point color 8Et> F?N dF?N d.Ignore mesh point size.Ignore mesh point size 8EtI]*qBCx]*qBCxEdges opacityEdges opacity8Et /\\J:I%7u\J:I%7uEdges ColorEdges Color -n,Njlpg8EtH1iA޲1rIK>XiA޲1rIK>X0Ignore mesh edges color0Ignore mesh edges color 8Eto,ot"AaY,ot"AaY$Show hidden lines`Do not use ZBuffer in point and wireframe modes 8EtؾB^RI8ÿR^RI8ÿRShow backfaceslEnable two-sided rendering when Color mode is enabled 8EtXDjçwH5#VçwH5#V0Ignore layer attributesvDo not combine render attributes with layer defined values 8EtEQ4W}@O{%`׭ 4J@#QL:-1OSM n#`(XFҦV"M]W0@zdW0@zd%VersionVersion%@_)ȅ8vDCxZȅ8vDCxZInvisibleInvisible flag 8Et`noF+2MGF+2MGCast shadows$Cast shadows flag 8Et7I2GWM:).$I2GWM:).$ Receive shadows Receive shadows 8Et8 mBޖw pmBޖw pLayer index(Modeler layer index8Et o[nfFo[nfF Overlay opacity Overlay opacity8Et4zgGFohN)zgGFohN)Overlay ColorOverlay Color. -n,Njlpg8EtWTvhD zʔvhD zʔ4Ignore mesh overlay color6Ignore mesh overlay color. 8EtX fB #^fB #^$Transparency Mode@Quality of transparency solving :KrbSx8Et|$}mK;)|$}mK;) OverlayEnable*Enable color overlay  8Et rg@*oHrg@*oH OverlayColor*Color of the overlay -n,Njlpg 8Eth!eLZE^N!eLZE^N OverlayStrengthJStrength (visibility) of the overlay 8EtzgGFohN)I2GWM:).$ vhD zʔ]*qBCx?S $hKnPSVmrg@*oHçwH5#V 4W}@O{fB #^:KrbSxv No Hidden FacesNo SortTriangle SortNo Sort\J:I%7u-n,Njlpg?\Eh{5-n,Njlpg?(XFҦV>g'JNjn*pF X@>@?F?N d ȅ8vDCxZ 8Ns2]?F+2MG "PbEGDߗr J@#QL>g'JNjn*pFCBb@ h@?(lrsGr?^mګA~Ksi[o[nfFW0@zdmBޖw p-1OSM n 럆L<_ї+ DefaultAdvanced GFʠN=0(@6 }}Color\J:I%7uZ`Ez]UO B>I(0h@5@\VV\J:I%7uZ`Ez]UO GFʠN=@(P8 }}Opacity]*qBCxZ`Ez]UON\q+nN-K^(@hPH?}}?]*qBCxZ`Ez]UO GFʠN=h@P@ }}Enable Obj ModeçwH5#VZ`Ez]UOͽ>fdN*5Ւh@P8 çwH5#VZ`Ez]UO GFʠN=h 6 }}Color\Eh{5Z`Ez]UO B>I 5H\VV\Eh{5Z`Ez]UO GFʠN=h 08 }}Opacity^mګA~Ksi[Z`Ez]UON\q+nN-K^ 0HG}}?^mګA~Ksi[Z`Ez]UO GFʠN=h0@5 }}Size(lrsGrZ`Ez]UON\q+nN-K^0@HG}}?$@(lrsGrZ`Ez]UO GFʠN=( 8 }}Opacity8Ns2]Z`Ez]UON\q+nN-K^(h H?}}?8Ns2]Z`Ez]UO GFʠN=h(}}SurfaceZ`Ez]UO GFʠN= h0&}}EdgesZ`Ez]UO GFʠN=h'}}PointsZ`Ez]UO GFʠN=Ph`1 }}fB #^Z`Ez]UOnevG4'hP`̖pfB #^VNo hidden faces No solving Triangle sortZ`Ez]UO GFʠN=1 }}^RI8ÿRZ`Ez]UOͽ>fdN*5Ւh8 ^RI8ÿRϱZ`Ez]UO GFʠN= 1 }},ot"AaYZ`Ez]UOͽ>fdN*5Ւh 8 ,ot"AaYZ`Ez]UO GFʠN= 01 }}ȅ8vDCxZZ`Ez]UOͽ>fdN*5Ւh 08 ȅ8vDCxZZ`Ez]UO GFʠN=0@1 }}F+2MGZ`Ez]UOͽ>fdN*5Ւh0@8 F+2MGZ`Ez]UO GFʠN=@P1 }}I2GWM:).$Z`Ez]UOͽ>fdN*5Ւh@P8 I2GWM:).$Z`Ez]UO GFʠN=P`1 }}mBޖw pZ`Ez]UO1釥GP>aP`<mBޖw pZ`Ez]UO,ot"AaY !eLZE^N|$}mK;)^RI8ÿR iA޲1rIK>X qNoJi:Skeleton root XBL=ew!4BL=ew!4TagSkeleton tag*.Ц 8&.0F $1LӤ.0F $1LӤSymmetry$Skeleton symmetry *.Ц `۫ 0_BEP1@"x4WAGП ׊;Jf|ڢB*.ݫK^BUHЦ d_@ cB8E @/hF <ĠF姁J]Dt4W}@O{$`׭ pK(XFҦV"0I-1OSM n" d_@ cB8E(XFҦV>g'JNjn*pFX@1@?BL=ew!4׊;Jf|ڢ`^02eE{|@B??n͵n5?2#|Z?0_BEP1@`^02eE{|@B??n͵n5?2#|Z?WAG.0F $1LӤ <ĠF姁J]`^02eE{|@B??n͵n5?2#|Z?-1OSM n 럆L<_ї  GFʠN=? }}Root transform<ĠF姁J]Z`Ez]UO GFʠN= C }}Skeleton transformWAGZ`Ez]UO GFʠN= 01 }}.0F $1LӤZ`Ez]UOͽ>fdN*5Ւh 08 .0F $1LӤZ`Ez]UO GFʠN=0F@1 }}BL=ew!4Z`Ez]UO1釥GP>aF0@<PBL=ew!4Z`Ez]UO GFʠN=@P: }} Root boneݫK^BUZ`Ez]UO GFʠN=P`1 }}d_@ cB8EZ`Ez]UO GFʠN=`p1 }}׊;Jf|ڢZ`Ez]UOݫK^BU܂dKu=$Skeleton material` .;]kI 忞@"ؑ C Q &H;3tx=A 4W}@O{$`׭ @Կ .F_P#.F_P#Material Output material __W8E#(=ah:U@Ra.P3՞'fA5-_՞'fA5-_D3DEYED3DEYE =xNT{h -1OSM n"P3(XFҦVLE2Data, 1"hJ@#QLLE2Data, 24W}@O{(XFҦV>g'JNjn*pF@X@>@BA?՞'fA5-_.F_P#J@#QL>g'JNjn*pF4CtCd@@@?.;]kI 忞@-1OSM n 럆L<_ї(U@Ra.>g'JNjn*pFjCCd@T@?Pc|B;]2t Materialh.F_P#.F_P#Material Output material __W8E#(@Կ S^M~b 0?Yh85OD.GWf5hHqΤIGGIh,S@vTVhh зVJilhؑ4W}@O{$` U@Ra.h-1OSM n"HmX(XFҦVLE2Data, 1"kF_VertexShaderhu t@*Nt@*N Constant_shader Constant shader QVO Pk@h<;vHwhG- 0S̤@+Rh,S@vTV 0S̤@+R #<5OD.GWf54W}@O{зVJil(XFҦV>g'JNjn*pFDCX@@@?<;vHw:KrbSxdDisabledEnabledAs OpaqueAs OpaqueS^M~b .F_P#t@*NkF_-1OSM n 럆L<_ї(U@Ra.>g'JNjn*pFDnC`@\@?qΤIGGI/|V FK|\!ShaderInputh?ڵfA'7(и %dLrQn0@1 (a piDM7i^@A툷i?p1M@o=}E[2CV)x m?9`MOWIB"ѥX 8 HtO{/(8r) qQ@RjxP 8VEҥY@e&vXB_;OKFJ*r<HRSEpFCp 3m~__um1CR¬5HٻzEuSz SaI7֏b C 4W}@O{$` ɩ %%u5E bUJ-1OSM n"_(XFҦVLE2Data, 1"`Gry"WMB]4 )5FYP@x*yI #h"mO('B_;OKFJ*rڳVܯ]FՃ尲+%tsxi_GetInputLightDistRtFloat qQ@RjڳVܯ]FՃ尲'!tsxi_GetInputAlphaRtFloatp1M@o=ڳVܯ]FՃ尲,&tsxi_GetInputTexCoordsRtFloat3^@A툷ڳVܯ]FՃ尲+%tsxi_GetInputPositionRtFloat4)5FYPڳVܯ]FՃ尲1+tsxi_GetInputObjectToClip RtFloat4x4%%u5E b>g'JNjn*pFC`@0@?HRSEpFCڳVܯ]FՃ尲-'tsxi_GetInputLightColorRtFloat4ٻzEuSڳVܯ]FՃ尲2,tsxi_GetInputWorldToObject RtFloat4x44W}@O{SaI7֏bڳVܯ]FՃ尲2,tsxi_GetInputObjectToWorld RtFloat4x4~__um1CR¬5ڳVܯ]FՃ尲3-tsxi_GetInputTangentToWorld RtFloat3x3x*yIڳVܯ]FՃ尲0*tsxi_GetInputWorldToClip RtFloat4x4(XFҦV>g'JNjn*pFCAX@1@?#h"mO('ڳVܯ]FՃ尲-'tsxi_GetInputTexCoords2RtFloat3ҥY@e&ڳVܯ]FՃ尲+%tsxi_GetInputLightDirRtFloat3`MOWIB"ѥڳVܯ]FՃ尲)#tsxi_GetInputNormalRtFloat3?ڵfA'7(ڳVܯ]FՃ尲)#tsxi_GetInputEyePosRtFloat4%dLrQn0ڳVܯ]FՃ尲)#tsxi_GetInputEyeDirRtFloat3y"WMB]ڳVܯ]FՃ尲93!tsxi_GetInputObjectToWorld_Normal RtFloat3x3}E[2CV)ڳVܯ]FՃ尲("tsxi_GetInputColorRtFloat4-1OSM n 럆L<_ї(HtO{/(ڳVܯ]FՃ尲*$tsxi_GetInputTangentRtFloat3piDM7ڳVܯ]FՃ尲)#tsxi_GetInputEyeDistRtFloatz€ L& l1InputFloathw +kCY5]BtO`szzuM@n;LAk`s\/3Kf͈, GqiFE0IN zQ 4W}@O{$` XҴ %%u5E b -1OSM n"\(XFҦVLE2Data, 1"GqiFE0IN SHININESS%%u5E b>g'JNjn*pFPb@X@?4W}@O{+kCY5]BtOA(XFҦV>g'JNjn*pFCCX@1@?uM@n;LA\/3Kf͈,?-1OSM n 럆L<_ї(]IDjdc.InputColor؀ "uI̎4)] \PtIL;I1f q\W D ɭ:GqiFE0IN  &H4W}@O{$` H %%u5E bx; -1OSM n"^(XFҦVLE2Data, 1"GqiFE0IN SPECULARCOLOR\PtIL;I1"uI̎4)]-n,Njlpg>>>?%%u5E b>g'JNjn*pFX@@b@X@?4W}@O{(XFҦV>g'JNjn*pFCCX@1@?q\W D ɭ-1OSM n 럆L<_ї(L{0nBg)`! ,+Phong Lighting HP)\Fvq3x m:6~KAMH3f R]JĀ7 H3kvJ ~~zH3X $&*2HӁdń?9H3@1 Z[G {/,и H3 zE%Sf8VEH3p w!XCL<H3H3 B#A)[(d 8;4W}@O{%` A%%u5E by-1OSM n"x (XFҦVLE2Data, 1" %%u5E b>g'JNjn*pFCLb@d@?4W}@O{(XFҦV>g'JNjn*pFCCX@1@?Z[G {/,:6~KAM B#A)[(dP)\Fvq3wk0.DX?_|X?dK;,w!XCL$&*2HӁdńvJ ~~-1OSM n 럆L<_ї( zE%SfR]JĀ7fC{o|DShaderModelqΤIGGIH 8C/-~CxrEH33t4W}@O{$` 8K+%%u5E bPE-1OSM n" (XFҦVLE2Data, 1"%%u5E b>g'JNjn*pF DA`@P@?4W}@O{(XFҦV>g'JNjn*pFCCX@1@?C/-~CxrE-1OSM n 럆L<_ї(qΤIGGIWG.3;Wܯ ShaderAlpha0?YS^M~b xP ;MF~B;MF~B Alpha$Input alpha brick F 1+5?N>/8r)0?Yx=A4W}@O{$` hd %%u5E bM}-1OSM n"86(XFҦVLE2Data, 1"%%u5E b>g'JNjn*pFLD`B`@P@?4W}@O{(XFҦV>g'JNjn*pFCAX@1@?S^M~b ;MF~B-1OSM n 럆L<_ї(MYMJJ>zV\E"Skeleton display@/:D x&:D x&SkeletonSkeleton [}Nj2Ц (pM v[IL'KI߸ (pvS 6Jѳ(2p(pIVPJmCb4IP}K^ (pIV n1LH_r8 @(pIV@sVm6EfH`(pIVHFq\7LO#7I(pIV=9>"IM6 Ex (pIV8o졉E/~ݾB(pIV (IДl/p_(p 'a#G @=^V("X'f(p w`ZL. 5(ͽ (p(ptveDCE`"IWJB8:IV 2"IM6 Ex 6Jѳ( w`ZL. 5 'a#G @=^V(" m6EfHJmCb4IP}K^(XFҦV>g'JNjn*pFX@>@? 24W}@O{$`׭ 6ݫK^BUpjrcAۏO6H%d'kJ^U*68uO ,LJxu@f3-1OSM n"pg -5bACuۚ6tWAG$s=YY `CG%S;>6ȭ.*ÿ@;f6(׾JBoͰw6XgIR"q36Ȯ{xf?Iq -6m@:WvZD,6w}ITBK6?#r<|ݔK .ǻK6?}te6N'6c BI zz6.'7=B;;6p/6zsMf6 60kN6[v!D6 @N1vx6pﶌWMS'6@pavE/b+ 6ru'eDgu6hR<&d@ d|6xQ>!lMp[msd6OA~Nc>I=ܯ6PWгh@j6Չ bb Bu4Ǫ/6Ȯ g^0A p Y6Hi8(roACp"G,16Q0_BEP1@"(% <ĠF姁J]Ds=׊;Jf|ڢB (XFҦV"#bb Bu4Ǫ/? @N1vxg^0A p Y?6[v!DrcAۏO'7=B;;?gIR"q3.*ÿ@;fO ,LJ(XFҦV>g'JNjn*pF Db@@?avE/b+ @:WvZD,4C׾JBoͰw׊;Jf|ڢ(roACp"G,1?BI zz?Y `CG%S;>4Cd'kJ^U*:KrbSx8 right left right0_BEP1@`^02eE{|@B??n͵n5?2#|Z?xf?Iq -4CWAG`^02eE{|@B??n͵n5?2#|Z?-5bACuۚ>te6N'?}ITBK?<ĠF姁J]`^02eE{|@B????~Nc>I=ܯ?!lMp[msd?-1OSM n 럆L<_ї3. GFʠN=00@$}}MinZ`Ez]UO GFʠN=@0P$}}MaxZ`Ez]UO GFʠN=`0p*}} StiffnessZ`Ez]UO GFʠN= 00)}}PositionZ`Ez]UO GFʠN=P0`(}}DampingZ`Ez]UO GFʠN=@9 }}Limb tagrcAۏOZ`Ez]UO1釥GP>a@<rcAۏOZ`Ez]UO GFʠN=@ 1 }}d'kJ^U*Z`Ez]UO GFʠN= 1 }}-5bACuۚZ`Ez]UO1釥GP>a <8-5bACuۚZ`Ez]UO GFʠN=p0)}}RotationZ`Ez]UO GFʠN=0 h0"}}XZ`Ez]UO GFʠN=h 0"}}YZ`Ez]UO GFʠN= 0"}}ZZ`Ez]UO GFʠN=0ph"}}XZ`Ez]UO GFʠN=hp"}}YZ`Ez]UO GFʠN=p"}}ZZ`Ez]UO GFʠN=0'}}CenterZ`Ez]UO GFʠN=0'}}SpreadZ`Ez]UO GFʠN=0(}}DampingZ`Ez]UO GFʠN=0*}} StiffnessZ`Ez]UO1釥GP>a00h@<86[v!DZ`Ez]UO1釥GP>ah0@<8 @N1vxZ`Ez]UO1釥GP>a0@<8ﶌWMS'Z`Ez]UO1釥GP>a0@hP<8avE/b+ Z`Ez]UO1釥GP>ah@P<8u'eDguZ`Ez]UO1釥GP>a@P<8R<&d@ d|Z`Ez]UO1釥GP>a0Ph`<8bb Bu4Ǫ/Z`Ez]UO1釥GP>ahP`<8g^0A p YZ`Ez]UO1釥GP>aP`<8(roACp"G,1Z`Ez]UO1釥GP>a0`hp<8!lMp[msdZ`Ez]UO1釥GP>ah`p<8~Nc>I=ܯZ`Ez]UO1釥GP>a`p<8гh@jZ`Ez]UO1釥GP>a0h<8.*ÿ@;fZ`Ez]UO1釥GP>ah<8׾JBoͰwZ`Ez]UO1釥GP>a<8gIR"q3Z`Ez]UO1釥GP>a0h<8xf?Iq -Z`Ez]UO1釥GP>ah<8@:WvZD,Z`Ez]UO1釥GP>a<8Y `CG%S;>Z`Ez]UO1釥GP>a0h<8BI zzZ`Ez]UO1釥GP>ah<8'7=B;;Z`Ez]UO1釥GP>a<8/6zsMf6 Z`Ez]UO1釥GP>a0h<8}ITBKZ`Ez]UO1釥GP>ah<8r<|ݔK .ǻKZ`Ez]UO1釥GP>a<8te6N'Z`Ez]UOnevG4'@ XJd'kJ^U*right leftZ`Ez]UOR<&d@ d|[AﶌWMS'[A/6zsMf6 ?ݫK^BUгh@j?u'eDgur<|ݔK .ǻK?ÖOKN1CGUܩHMyBone (.;]kI 忞@"h_4W}@O{$`׭ H.(ѻD3Ϳ*.xug!J8uؒIbEM K1gxu8"Ydg'JNjn*pF^CBX@1@?g!J׊;Jf|ڢ`^02eE{|@B??n͵H\0n:2#|Z?IbEM K1g?0_BEP1@`^02eE{|@B??n͵n5?2#|Z?ۻJfHkG/.(ѻD3Ϳ"Yd