BLENDER_v222REND 1SRdGGSRmodeling1@GB@BZpYxv DATA@GHFDATAFHF@GDATAFHPFFDATAPFHFFDATAFHEPFDATAEH`EFDATA`EHEEDATAEHD`EDATADHpDEDATApDH DDDATA DHCpDDATACHC DDATACH0CC@DATA0CHBC@DATABHB0C|DATABHB|DATA@BIAFFDATAAIA@BEFDATAAIPAA`EFDATAPAIAA`EEDATAAI@PAEFDATA@I`@ADEDATA`@I_@D`EDATA_I_`@DEDATA_I0__EFDATA0_I^_pD@GDATA^I^0_pDFDATA^I@^^ DEDATA@^I]^ DpDDATA]I]@^CPFDATA]IP]]C DDATAP]I]]CpDDATA]I\P]PF@GDATA\I`\]CDDATA`\I\\0C`EDATA\I[`\0CCDATA[Ip[\B DDATAp[I [[BCDATA [IZp[B0CDATAZIZ [BCDATAZIZBBDATApYJ`XEFF`E-K-KdBD0D DATA`XJRpYFEDE+K+K(K(Kț;?B?AHM"dqDBnCqDqD pввDATA =0?]0?H4J1?Q>"@P???A<s02?O;"QA?ț;?ί0B?(IHgϯg2A*>V;@ȾAPA]?J5QE?=p=4f@AŽן p>Bz)@?^gB3^SA B?=CJ^=4=p%l%lZ DATA0?@ zC AzC A #< #<`jFzD OBDATA@@p0DdCDv@CC(BDC?z?DATA@pB@SAVE FILERYc:\Blender\projects\matlib\atDB.blend\Material\matlib_v102.blendSDATARJPm`X@GpDCPF%K%K"K"K= X?o?dDB'KDDUk+DATAU@PPDdCODGzgCC(BDC?z? OeDATAPPA`nUzCAzCAyy A@FB= A DATA`n=kPP?`944?`9??x9 ? x9?= )9L;DX?-"? A9%?TC?5?5 A B? #<Cp.X.XDATA@kB`nTSELECT DATABLOCKMaterial/\Planets_Saturnll&}[00ERVDATAPmJpeRpDFE D=K=K;K;Kp=n>o?}i}h  dB`GP GjcDATAXjE0i M =DATA0i=Pgj??@?????p=o;n>n>k:?A!1A@C??5?5A B? #<C>@p  DATAPg?f0izC AzC A #< #<`jF@F OBDATAf@cPgDdCB0DCC(BDC?z?DATA@cBf(VWLOAD LIBRARYc:\Blender\projects\matlib\matDB.blend\Material\\Text\Organic_Skin0}DATApeJPm DBBC9K9K6K6Kr =%=o?yy  IdB`GP Gh@}DATAXhEa  i?DATAa=@`h???DAIA??qvfy/d/?p ?@DI?r =%=o,qo>IՆ?LAu6u('3DA$5@DJ??MA B? #<CDAIApDATA@`@@}aDdCC0DCC(BDC?z?DATA@@}B@`SAVE FILEc:\Blender\projects\matlib\atDB.blend\Material\matlib_v102.blend SDATAJxpeCD`E0C3K3K0K0Kr =%=o?CCWX  bdB`GP GPawpQpQDATAXPaE{ # =#%ZDATA{=yPa???DAIA??qvfy/d/?p ?@DI?r =%=o,qo>IՆ?LAu6u('3DA$5@DJ??MA B? #<CDAIApDATAy@w{DdCC0DCC(BDC?z?DATA@wBy SAVE FILEC:\Blender\projects\matlib\atDB.blend\Material\matlib_v101.blend~DATAxJBC0CBcKcKwKwKr =%=o?== dB`GP Gzp DATAXzE@u PL >|DATA@u=sz???DAIA??qvfy/d/?p ?@DI?r =%=o,qo>IՆ?LAu6u('3DA$5@DJ??MA B? #<CDAIApDATAs@p@uDdCC0DCC(BDC?z?DATA@pBsSAVE FILEc:\Blender\projects\matlib\atDB.blend\Material\matlib_v102.blend SSCv;SC1p]0ԙ@,Qdd??<d,??_@??///render///#DATA90+"DATA09+@DATA90BDATA9B@DATA9PBPDATAP9BDATA9PBDATA9BDATA9 /BDATA9 GB@DATA90P ^B@DATA0P9@ ^@}DATA@9`@0P ^ZDATA`@9pN@^DATApN9 N`@^qDATA N9}pN^@ DATA}9P} N^DATAP}9}}^`DATA}9|P}^@DATA|9`|}GЂDATA`|9||GDATA|9{`|GDATA{9p{|G`DATAp{9 {{Gq@DATA {9zp{GDATAz9z {GZDATAz90vzGDATA0v9uzDATAu9u0vDATAu9@uuDATA@u9tu`DATAt9t@u @DATAt9Ptt!DATAPt9tt"/DATAt9sPt#/ZDATAs9`st$Z`DATA`s9ss%Z@DATAs9r`s&ZDATAr9prs'ZDATApr9 rr(ZDATA r9qpr)Z`DATAq9L r*@DATAL9Lq+DATAL9@LL,DATA@L9KL-DATAK9K@L./`DATAK9PKK//q@DATAPK9KK0/DATAK9JPK1/DATAJ9`JK2/DATA`J9JJ3/pDATAJ9I`J4@DATAI9pIJ5DATApI9 II6qDATA I9HpI7DATAH9H I8DATAH90HH9DATA0H9GH:qDATAG9G0H;DATAG9@GG<DATA@G9FG=`DATAF9F@G>'`zDATAF9PFF?q`DATAPF9FF@@DATAF9EPFA@DATAE9`EFB`DATA`E9EEC@DATAE9D`EDDATAD9pDEEDATApD9 DDFDATA D9CpDG`DATAC9C DHq@DATAC90CCIq`DATA0C9BCJ@DATAB9B0CKDATAB9@BBLDATA@B9ABMDATAA9_@BN`DATA_9_AO@DATA_90__PDATA0_9^_QDATA^9^0_R`DATA^9@^^S@DATA@^9]^TqDATA]9]@^U apDATA]9]V OBp6OBCamera 0Q;#PA????????Q;#PA??????_?H/J˱?ǜ235_5?d??)d??>)d????OB6pOBLamp Fy@A!A0A???7z4?s>?>?>X > ]F.?¾h>@ ?>?Fy@A!A??w?w/?>?> h>>_F.?@ ?W ¾>?! GC_?Dd??)d??>)d????OB6@OBPlaneP`9L`9LG@??????i!3?i!3?G@?????3,?3H=@???DATAOB@6`OBPlane.001:L:LG"??????i!3?i!3?G"?????/33?3H^Z?|?ARA?Dd?? #=?>=@???DATAOB`6@OBPlane.002x=@???DATA`OB6`OBPlane.003 @>L@>L G>??????i!3?i!3?G>?????m3M&?3H1ި1?xAPA?Dd?? #=?>=@???DATA OB6@OBPlane.004PE?L?LG_@??????i!3?i!3?G_@?????Hk3,?3HA=@???DATAOB@6`OBPlane.005C`L`L`G~@??????i!3?i!3?G~@?????$23?3H8%?Q=@???DATA`OB`6@OBPlane.006ALL }@??????i!3?i!3?}@?????gb3 ;3?<4{>d2?O=@???DATA OB6`OBPlane.007tLL_@??????i!3?i!3?_@?????3WH?3H$e1=@???DATAOB6OBPlane.008rLL>??????i!3?i!3?>?????3WH?3H`x0=@???DATAOB6@OBPlane.009p`L`L`E ??????i!3?i!3?E ?????v3K3?3H=@???DATA`OB@6`OBPlane.010p^LL"??????i!3?i!3?"?????k3K3?3H?E=@???DATAOB`6@@OBPlane.011\`L`L@B??????i!3?i!3?B?????)d3#?3H)2?c@PA?Dd?? #=?>=@???DATA@OB@6``OBPlane.012ZLL}B??????i!3?i!3?}B?????r33?3H@11?b@7PA?Dd?? #=?>=@???DATAOB`6@OBPlane.013XLL}"??????i!3?i!3?}"?????33?3H4""2??8QA?Dd?? #=?>=@???DATAOB6`OBPlane.014VLL|E ??????i!3?i!3?|E ?????o33?3HhD"2?x8QA?Dd?? #=?>=@???DATAOB6OBPlane.015TPLPL|>??????i!3?i!3?|>?????]393?3H1h?x:RA?Dd?? #=?>=@???DATAOB6@OBPlane.016RQLQL|_@??????i!3?i!3?|_@????? k4OI3? 3gNh?x:RA?Dd?? #=?>=@???DATAOB@6`OBPlane.017n SL SL@|}@??????i!3?i!3?|}@?????4\s"4? )K3m@m20?P=@???DATA@OB`6@OBPlane.018lZLZL__@??????i!3?i!3?__@?????2B5?3Uf0?xsFTA?Dd?? #=?>=@???DATAOB6``OBPlane.019j \L \L_|@??????i!3?i!3?_|@?????ҳ廗4?r3|731?P=@???DATAOB`6@OBPlane.020hTLTL_>??????i!3?i!3?_>?????*34?V3:a ?xqFRA?Dd?? #=?>=@???DATAOB@6@`OBPlane.021f VL VL@_E ??????i!3?i!3?_E ?????se2&*4?3Ha ?{qFRA?Dd?? #=?>=@???DATA@OB@6`@OBPlane.022eWLWL_"??????i!3?i!3?_"?????a̮3N ?3H0??nFQA?Dd?? #=?>=@???DATAOB`6@OBPlane.023c YL YL_B??????i!3?i!3?_B?????w$3q0?GHj334"[0?b@nFQA?DOBd?? #=?>=@???DATAOB6`OBPlane.024 a]L]L"??????i!3?i!3?"?????i!3=`?_3<Dٰ??QA?Dd?? #=?>=@???DATAOB6OBPlane.0250._L_L@B??????i!3?i!3?B?????i!3EV(?֦3r};_ ?a@QA?Dd?? #=?>=@???DATA@OB6OBPlane.026@,`L`LE ??????i!3?i!3?E ?????i!3<*'?3fu/@d?zNA?Dd?? #=?>=@???DATAOB6OBPlane.027P*@bL@bL@>??????i!3?i!3?>?????i!3Xz%?3g`x0?xQA?Dd?? #=?>=@???DATA@OB6OBPlane.028`(cLcLE @"??????i!3?i!3?E @"?????!03Y2?3H]!C1??9@QA?Dd?? #=?>=@???DATAOB6OBPlane.029p&@eL@eLE @B??????i!3?i!3?E @B?????3`?3{&}; ?a@9@QA?Dd?? #=?>=@???DATAOB6@OBPlane.030$fLfL_@??????i!3?i!3?_@?????h!3q'?}3sA ?xQA?Dd?? #=?>=@???DATAOB@6pOBPlane.031"@hL@hLа|@??????i!3?i!3?|@?????i!3#G'?30(ǯ?P=@???DATAаOBp6@OBPlane.032MiLiL"@|@??????i!3?i!3?"@|@?????`?3UY3?r4|73q?P=@???DATAOB6pOBPlane.033K@kL@kLP"@_@??????i!3?i!3?"@_@?????332?ì2޴ N?x@RA?Dd?? #=?>=@???DATAPOB6OBPlane.034IlLlL"@>??????i!3?i!3?"@>?????3E3?3H1?x@QA?Dd?? #=?>=@???DATAOB6@OBPlane.035G@nL@nL"@E ??????i!3?i!3?"@E ????? 3 r[?3HA0?1?@QA?Dd?? #=?>=@???DATAOB@6`OBPlane.036>oLoL"@B??????i!3?i!3?"@B?????3s?3H <1v20?b@@RA?Dd?? #=?>=@???DATAOB`6@OBPlane.037=`AL`AL@"@"??????i!3?i!3?"@"?????'~3a3?3H??@RA?Dd?? #=?>=@???DATA@OB6`OBPlane.038;BLBLE @E ??????i!3?i!3?E @E ?????$Eg2<4?3HCh?{9@QA?Dd?? #=?>=@???DATAOB6OBPlane.039 9`DL`DLPE @>??????i!3?i!3?E @>?????03?ͳ?t3yȴ ?x9@RA?Dd?? #=?>=@???DATAPOB6@OBPlane.04007ELEL E @_@??????i!3?i!3? E @_@?????W36*?3gNNW1?x9@RA?Dd?? #=?>=@???DATAOB@6`OBPlane.041@5`GL`GL E @|@??????i!3?i!3? E @|@?????ǒű?$f3Jȳd2@uk?O=@???DATAOB`6@OBPlane.042P3@IL@IL@8????????@8??????L2+?Hc.?A`@PA?Dd?? #=?>=@???DATAOB6`OBPlane.043`1JLJLPG@8????????G@8??????#3A3e?H܆%2?AA`@QA?Dd?? #=?>=@???DATAPOB6OBPlane.0440KLKL~B8????????~B8??????ø233?\p1ܚ?:@c@QA?Dd?? #=?>=@???DATAOB6@OBPlane.045@`ML`ML@_B8????????_B8??????f씳6|d3?\qk1ܚ?sF@c@QA?Dd?? #=?>=@???DATA@OB@6`OBPlane.046P@OL@OLB8????????B8??????q?\`!0ܚ?@=c@QA?Dd?? #=?>=@???DATAOB`6@OBPlane.047`LLE @B8????????E @B8??????3L4T?B'@1?9b@PA?Dd?? #=?>=@???DATAOB6`OBPlane.048pLL"@B8????????"@B8??????82A3L]?Bb.@1?b@PA?Dd?? #=?>=@???DATAOB6OBPlane.049LL@"@A????????"@A??????aB3U2?_1$2?O<_QA?Dd?? #=?>=@???DATA@OB6@OBPlane.050LL E @A???????? E @A??????B47մ &?-{k1$2?9O<_QA?Dd?? #=?>=@???DATAOB@6`OBPlane.051\LL@A????????A??????ȧ?_]5/$2??=O<_QA?Dd?? #=?>=@???DATA@OB`6@OBPlane.052p`pL`pL_A????????_A??????>𲓎&bH?_{k1$2?jF@O<_QA?Dd?? #=?>=@???DATAOB6`OBPlane.053qLqLxA????????xA??????p+4t?Ѓ2 <1?4@O<_RA?Dd?? #=?>=@???DATAOB6OBPlane.054sLsLGA????????GA??????,4_4?Xܒ™?AAQ<_RA?Dd?? #=?>=@???DATAOB6OBPlane.055ptLtL@A????????A??????,%²032?zo$2?AO<_QA?Dd?? #=?>=@???DATA@OB6OBPlane.056P`vL`vLCAA????????CAA??????54߲?9z:p$2?f~L<_QA?Dd?? #=?>=@???DATAOB6OBPlane.057pwLwL@@AD8????????@AD8??????/W3?HX91?c~h@PA?Dd?? #=?>=@???DATA@OB6@OBPlane.058yLyLBA"??????i!3?i!3?BA"?????F3޳?3H/0|`2??f~ARA?Dd?? #=?>=@???DATAOB@6`OBPlane.059zLzL@AB??????i!3?i!3?@AB?????Bt3/2?3Hh1܆e?`@c~AQA?Dd?? #=?>=@???DATAOB`6@OBPlane.060p|L|LBA E ??????i!3?i!3?BA E ?????d3rٳ?3HC:2?{f~AQA?Dd?? #=?>=@???DATAOB6`OBPlane.0610~L~L@BA>??????i!3?i!3?BA>?????m32?3H4"x1?xe~AQA?Dd?? #=?>=@???DATA@OB6ЂOBPlane.0620P`KP`KBA_@??????i!3?i!3?BA_@?????732?3Hh1x1?xe~AQA?Dd?? #=?>=@???DATAOBЂ6@OBPlane.063SKSK@CA|@??????i!3?i!3?CA|@?????43 ?u3T|$x1?Q=@???DATA@OB@6`ЂOBPlane.064KKC8Ax@??????i!3?i!3?C8Ax@?????v0B3?3H𴖲q?NAPA?Dd?? #=?>=@???DATAOB`6@OBPlane.0650gKgKB8A_@??????i!3?i!3?B8A_@?????A|3Z3?3HAV/?xd~>AQA?Dd?? #=?>=@???DATAOB6@ `OBPlane.066KK`B8A>??????i!3?i!3?B8A>?????C3C9?3H Z?xe~>ARA?Dd?? #=?>=@???DATA`OB@ 6OBPlane.067дKKP B8A E ??????i!3?i!3?B8A E ?????ʔ3B3?3H &q?{d~>APA?Dd?? #=?>=@???DATAP OB6@ OBPlane.068@K@Kp`@8AC??????i!3?i!3?@8AC?????=3ؘ2?3H0w14?b@b~>AQA?Dd?? #=?>=@???DATAp`OB6OBPlane.069KK0`B8A"??????i!3?i!3?B8A"?????@3C9?3HaZ??e~>ARA?Dd?? #=?>=@???DATA0`OB6@}OBPlane.070pKK@8AD8????????@8AD8??????MƲؘ2?H421?b~>h@QA?Dd?? #=?>=@???DATAOB@}6@OBPlane.071 K KPC8AA????????C8AA??????:3Fֲ?9z2p$2?e~>L<_QA?Dd?? #=?>=@???DATAPOB@6@@}OBPlane.072P@8ADh????????@8ADh??????r1p~-'?H`娱2?c~> APA?Dd?? #=?>=@???DATAOB@6@OBPlane.073@ADh????????@ADh??????pم28 4I?\F3܆e2p$2?c~ AQA?Dd?? #=?>=@???DATAOB6@OBPlane.074p"@Bh????????"@Bh?????? 3c 4@2?8mm1H2? APA?Dd?? #=?>=@???DATApOB6OBPlane.075E @Bh????????E @Bh??????2 4 ,2?8mb.H2?9 APA?Dd?? #=?>=@???DATAOB6OBPlane.076@Bh????????Bh??????{U?g/x?>= AQA?Dd?? #=?>=@???DATA@OB6POBPlane.077`_Bh????????_Bh??????=3:?ghӰx?qF@ AQA?Dd?? #=?>=@???DATAOBP6@OBPlane.078~Bh????????~Bh??????q2`A4ձV?g"x?8@ AQA?Dd?? #=?>=@???DATAOB@6POBPlane.079 `G@h????????G@h??????kSq2A3e?H܆%2x?AA AQA?Dd?? #=?>=@???DATA`OB6@@OBPlane.080@h????????@h??????۲N92?tf`ELu0?A AQA?Dd?? #=?>=@???DATAOB@6"OBPlane.081t??????????????=3 a44X?@0@m?APARA?Dd?? #=?>=@???DATAOB"6`z@OBPlane.082p G????????G??????3m31?S1@m?AAPARA?Dd?? #=?>=@???DATA OB`z6"OBText@=h@????????=h@??????Z33n3d3J1?1Z͙??@FAA?Dd?? #=?>=@???DATA@MEP2MEPlaneP:L:L`@@P@4???DATA`@DATAP@P/????DATA *ME2xPMEPlane.001P;L;L`yy@4???DATA`@DATAPy/????DATA y*MEx2 MEPlane.002pP`=L`=Lpx w@4???DATApxDATAPw/????DATA *ME 2PExMEPlane.003P>L>L  P @4???DATA  DATAPP /????DATA  *MEPE2C MEPlane.004PPLL D@4???DATA `DATAPD/????DATA *MEC2APEMEPlane.005PLLCB C@4???DATAC`DATAP C/????DATA B*MEA2tCMEPlane.0060P L L0vpuu@4???DATA0vDATAPu/????DATA pu*MEt2rAMEPlane.007PLL@tss@4???DATA@tDATAPs/????DATA s*MEr2ptMEPlane.008PLLPrqq@4???DATAPr`DATAPq/????DATA q*MEp2p^rMEPlane.009PLL`p`__@4???DATA`p`DATAP_/????DATA `_*MEp^2\pMEPlane.010P L L0^p]]@4???DATA0^DATAP]/????DATA p]*ME\2Zp^MEPlane.011PLL@\[[@4???DATA@\DATAP[/????DATA [*MEZ2X\MEPlane.012pP L LPZYY@4???DATAPZ`DATAPY/????DATA Y*MEX2VZMEPlane.013PLL`XWW@4???DATA`X DATAPW/????DATA W*MEV2TXMEPlane.014PPLLpVUU@4???DATApVDATAPU/????DATA U*MET2RVMEPlane.015P^L^LTST@4???DATATDATAPT/????DATA S*MER2nTMEPlane.0160P@RL@RLRPRo@4???DATAR`DATAPo/????DATA PR*MEn2lRMEPlane.017PSLSLpnmm@4???DATApnDATAPm/????DATA m*MEl2jnMEPlane.018P@[L@[Llkl@4???DATAlDATAPl/????DATA k*MEj2hlMEPlane.019P\L\Ljij@4???DATAjDATAPj/????DATA i*MEh2fjMEPlane.020P@UL@ULhg h@4???DATAhDATAP h/????DATA g*MEf2ehMEPlane.021`PVLVLfe0f@4???DATAfDATAP0f/????DATA e*MEe2cfMEPlane.022P@XL@XLdd@d@4???DATAd DATAP@d/????DATA d*MEc2 aeMEPlane.023@PYLYLbbPb@4???DATAb`DATAPPb/????DATA b*ME a20.cMEPlane.024P@^L@^L/ /`/@4???DATA/`DATAP`//????DATA /*ME0.2@, aMEPlane.025 P`HL`HL-0-p-@4???DATA-`DATAPp-/????DATA 0-*ME@,2P*0.MEPlane.026P`aL`aL,@++@4???DATA, DATAP+/????DATA @+*MEP*2`(@,MEPlane.027PbLbL*P))@4???DATA*`DATAP)/????DATA P)*ME`(2p&P*MEPlane.028pP`dL`dL (`''@4???DATA (DATAP'/????DATA `'*MEp&2$`(MEPlane.029PeLeL0&p%%@4???DATA0&`DATAP%/????DATA p%*ME$2"p&MEPlane.030PP`gL`gL@$##@4???DATA@$DATAP#/????DATA #*ME"2M$MEPlane.031PhLhLP"!!@4???DATAP"`DATAP!/????DATA !*MEM2K"MEPlane.0320P`jL`jLpMLL@4???DATApM`DATAPL/????DATA L*MEK2IMMEPlane.033PkLkLKJK@4???DATAKDATAPK/????DATA J*MEI2GKMEPlane.034P`mL`mLIHI@4???DATAIDATAPI/????DATA H*MEG2>IMEPlane.035PnLnLG? G@4???DATAG`DATAP G/????DATA ?*ME>2=GMEPlane.036P@L@L>=0>@4???DATA>`DATAP0>/????DATA =*ME=2;>MEPlane.037`PBLBL<<@<@4???DATA<DATAP@</????DATA <*ME;2 9=MEPlane.038/PCLCL::P:@4???DATA:DATAPP:/????DATA :*ME 9207;MEPlane.039/PELEL8 8`8@4???DATA8 DATAP`8/????DATA 8*ME072@5 9MEPlane.040p.PFLFL606p6@4???DATA6`DATAPp6/????DATA 06*ME@52P307MEPlane.041-PHLHL5@44@4???DATA5DATAP4/????DATA @4*MEP32`1@5MEPlane.042P-PILIL3P22@4???DATA3@DATAP2/????DATA P2*ME`120P3MEPlane.043,P`NL`NL 1`00@4???DATA 10DATAP0/????DATA `0*ME02@`1MEPlane.0440,PLLLL0p@4???DATADATAPp/????DATA 0*ME@2P0MEPlane.045+PNLNL@@4???DATADATAP/????DATA @*MEP2`@MEPlane.046+PLLP@4???DATA DATAP/????DATA P*ME`2pPMEPlane.047*P L L `@4???DATA `DATAP/????DATA `*MEp2`MEPlane.048)PLL0p@4???DATA0DATAP/????DATA p*ME2pMEPlane.049`)P L L@@4???DATA@ DATAP/????DATA *ME2\MEPlane.050(PLLP@4???DATAP`DATAP/????DATA *ME\2pMEPlane.051@(P L L@z0`0\@4???DATA@zDATAP0\/????DATA 0`*MEp2\MEPlane.052'PtLtL@4???DATADATAP/????DATA *ME2pMEPlane.053 'P rL rL0p@4???DATADATAPp/????DATA 0*ME2pMEPlane.054&PsLsLP@@4???DATAPDATAP/????DATA @*MEp2PMEPlane.055&PuLuL0p@4???DATA0DATAP/????DATA p*MEP2ppMEPlane.056p%PLL0@4???DATA0KDATAP/????DATA *MEp2PMEPlane.057$P xL xLP@4???DATAPDATAP/????DATA *ME2pMEPlane.058P$PyLyL@@4???DATA@)DATAP/????DATA *ME2pMEPlane.059#P {L {LPp[[@4???DATAPDATAP[/????DATA p[*MEp20MEPlane.0600#P|L|L0 @@4???DATA0p0DATAP@/????DATA *ME020pMEPlane.061"P`L`L @4???DATAIDATAP /????DATA *ME020MEPlane.062"P0pK0pK@@4???DATAFDATAP@/????DATA *ME20MEPlane.063!PXKXKP@4???DATA0DATAPP/????DATA *ME20MEPlane.064 PyKyK`@4???DATA` DATAP/????DATA *ME02MEPlane.065` P00K00K`p@4???DATA`DATAP/????DATA p*ME2д0MEPlane.066?P@K@K0p`@4???DATA0pDATAP/????DATA `*MEд2MEPlane.067?P`K`K@P@4???DATA@@DATAP/????DATA P*ME2дMEPlane.068p>PKKp@4???DATAp5DATAP/????DATA *ME2pMEPlane.069=P@K@Kp`@4???DATApBDATAP/????DATA `*MEp2MEPlane.070P=PKK0p@4???DATA0 7DATAP/????DATA p*ME2PpMEPlane.071ju'?@~>????? >L?@A ???0?DATAP `~0???????/???DATAP0233?23?233?'I>?????MA!@0MAGlass_Glass????fff??fff?fff???=?@C????DATAPx??????????DATAPL?>L???????;?DATAP\???????=??MA@!MAMetal_Blackv=fff?fff???L????L?? ??? DATAP Y???===?????DATAP "$@@@??????L>?MA! @MAMetal_BlackDull=>fff?L????L??M ???`g^?DATAP`" Yv>>>??L??????MA !`MAMetal_BlackShiny=>fff?L??????2 ???g^?DATAPx L>L>L>??L??????MA`!` MAMetal_BrassDull?L?>L??=?????L??M ???g^?DATAP"Zv>>>??L??????MA`!`MAMetal_BrassShiny?L??????????L??2 ???g^?DATAPx L>L>L>??L??????MA!@`MAMetal_Bronzeq>=?"> #<?????L?3? ??? ?DATAP  x???????O>??DATAP @???hY>R=??==??DATAP=????????<?DATAP ???&I>L=?????MA@!MAMetal_BronzeDull?=L?>?????L??M ???g^?DATAP"Zv>>>??L??????MA!@MAMetal_BronzeShiny?=L?>?????L??2 ???g^?DATAPx L>L>L>??L??????MA!MAMetal_BrushedSilverfff?fff??fff?fff??fff?T????g>@????DATAPUf@6L>tL>????????DATAP >>>?????/>??MA!`MAMetal_Chrome??? ? ? ???????@ ??? ?DATAP  }????????!L???DATAP @???Y?Y?Y???>??DATAP =??????????DATAP 233?233?233?o,??C?~???????MA`!`MAMetal_Chrome2???fff?\????????L?@????DATAP\@!>>>????????DATAP}???????L???MA`!`MAMetal_ColouredChromL?L??fff?\????????L?@????DATAP\ ??>?????4??DATAP\}??????????MA!``MAMetal_Copper?hk>?a?>`>?????L? ? ???@@?DATAP@ x???W>gY>G=??颋>??DATAP @????GQ>??<# >??DATAP@=????????<?DATAP ???y>?????MA`!MAMetal_CorrodedL>L>L>?L???????L?> ??? `?DATAP ???????????DATAPrf@rf@rf@>L>?????DATAP`???L???????DATAP@pf&@pf&@ @?????a>?MA!`MAMetal_Gold?$\?^?p>?`?>`=?????L?f? ????DATAP `z???????T>??DATAP `P??? ?>??]3>??DATAP``????????<?DATAP???Z>B!>?????MA!MAMetal_GoldDull?hn???333?333??fff?fff??L>?M??M ???g^?DATAP"[v>>>????????DATAP[????fff???????MA!`MAMetal_GoldShiny?fff??fff?333????L???nL?@C???? DATAP x>>>L?L?>?????DATAP % A A AL?L?>???Ad>>MA`! MAMetal_Rust1L?M&?t>????????L?>O@ ???``?DATAP?????>Z>?????DATAP`#???>^q>r9>?????DATAPj???^/?&>?????DATAP`??????????MA !``MAMetal_RustSteel???rAF?J?gB??????L?? ??? ?DATAPx???????̒>??DATAP  @???.K?GQ?>O???w=??DATAP=???????? #=?DATAP c??????????DATAPc???&I>???>?DATAP c???OS?>???_ʚ??MA`! MAMetal_rustycopper?L>?L???????L?> ???`?DATAPfff?tL>fff?>?L>?????DATAP`rf@hf@rf@L??333??????DATAP@pf&@pf&@ff&@?????a>?MA!`MAMetal_SilverDullefff?fff?????fff?L????BM??M ???g^?DATAP"[v>>>????????MA!MAMetal_SilverShinyefff?fff??fff?fff??fff?T????L?@???? DATAP x>>>????????MA!`MAMisc_candycorn???????????L?>;????PDATAPP???????????DATAP??????????MA`!MAMisc_Candystripe???????????L?qѧ> ????DATAPM??????????MA!`MAMisc_ColouredCloth????????????ǽ<  ??? g^?DATAP @@@@????????DATAP@>>>???????DATAP @AAA?????=?MA!MAMisc_GinghamL?hff??????????L?  ???`?DATAP`r???????G>??DATAPr??????p>??MA!MAMisc_GoldGolfBall?fff???333?>??????@ ???g^?DATAP"@ @@>L>??????DATAP >>>????????MA!`MAMisc_OldPaper??????????=?nL?ǽ<  ??? g^?DATAP U>>>fff?fff???????DATAPU?@?@?@?????>?MA`! MAMisc_PottersWheel????????????ǽ<  ???`g^?DATAPU>>>??fff??????DATAP`E@???????@?MA !`MAMisc_Psychorainbow???????????L?  ????DATAPf@?????????MA! MAMisc_TartangB?????????L?  ???``?DATAP`??????????DATAP?????????DATAP`@L=??????????DATAP@L=?????????MA!MAMisc_Textile1????????????ǽ<  ??? g^?DATAP @AAA>L>????L>?MA!MAMisc_Textile2????????????ǽ<  ???`g^?DATAP`@AAA>L>??????DATAP@8????????333???MA!MANPR_orangepeel????????????2G ??? ?DATAP ??????????MA! MANPR_simpletoon???????????L??2 ???`?DATAP`0333?23?23????????MA !`MANPR_smiley=o)??????????L??2 ??? ?DATAP JL?~L?L????????DATAP @wL0gf?Rf?Tf????????DATAP@w>L0gf?Rf?Tf????????DATAP @w>0L>[f&@Tf????????DATAP:L>L>ff&@gf????????MA`!` MANPR_techpen?????????????2 ??? ?DATAP`L?L?L??????DATAP @I0 ?????????DATAP5>>>???????MA`! `MAOrganic_Apple&%??>?????????V> ???``g^?DATAP@X>>>????????DATAP`SL>zLzL?>>?????DATAP@X===????????DATAP`S&@@@??>>?????MA !``MAOrganic_Leather>=????????L?> ???g^?DATAPP@@@@???????MA`!8Z MAOrganic_Orange???????????EN> ???g^?DATAP`0@@@???????MA8Z! `MAOrganic_Skin?L?533??Ba?t=J?????L=?L?L=  ???pZ7Z?DATAPpZ6Z????;?C????Й>?DATAP7Z5Z????????*\=?MA !8ZMAPlanets_Earth?~>????????L?2????p DATAPp????????o>??DATAP  2?>>???????DATAPA@F?????????$>DATAP`@??????????MA! MAPlanets_Jupiter??L?????????L?2 ???` ?DATAP`D @@@k?c?4]$???M???DATAP  B???????m????DATAPV???u:><??p>??MA!MAPlanets_Mars?.?g>????????L?2 ??? ?DATAP T???=?>m6??????DATAPT?>>?? >?????DATAP `@?>>????5>??MA!MAPlanets_MoonCt"?Ct"?#?????????L?2 ???`?DATAP`0S???????O>a>?DATAPPL?43?fff?????D?L=?MA! MAPlanets_NeptuneF1?PYX??????????L?2 ??? ?DATAP P1???>>_??????DATAPp0???????ꢋ>??DATAP `@ff?ff?>????==??MA !MAPlanets_Saturn?J?\9>????????L?2 ??? ?DATAPP1>?>??>O?B!=&`???D???DATAP ???????[>??DATAP ???g?WU?Z>??`???MA!` MAStone_AgateBlue????333????L???L?@???? DATAP  ???????????DATAP # A A AL?L?>???Ad>>MA`!MAStone_AmethystMilkyfff?L??????????fff?@ ???g^?DATAP!%>v>>???????MA!``MAStone_AsphaltL?L?L??????????tc> ??? g^?DATAP B A A A??L??????DATAPT???333?333?333??????MA`!`MAStone_Clay}st?Lx?Lx?????????L?> ???g^?DATAPT???????????MA`!`MAStone_concrete^?\?c????????=?L? ף< ???``?DATAP`P???P>p>p>??q???DATAP``P@@?{p+?+?b1???p>??DATAP`P???????????DATAP``P???, ?}>?6>??`>??DATAP``????????*\=?MA!`MAStone_Glazed1???333?L???????L?@ ??? g^?DATAP T????333???????MA! MAStone_Glazed2???333?L???????L?@ ???`g^?DATAP`!T???Iq? ?????a>?MA !`MAStone_glazedredclayvU?q7>,>??S??????L?a? ??? ?DATAP`P????U*?A>??G>??DATAP `P???C? ???B>??DATAP``?\???????=?DATAP R???g?i?o???p>??DATAP `P????w]?f3???R>??MA`! MAStone_GraniteRed??>????????333?tc>  ???`g^?DATAPT?|??L??>?????DATAP`B A A A???????DATAP*???????==?MA!``MAStone_LapisLazuli>??????????fff?? ??? g^?DATAPT??????????DATAP #???=??????DATAPT?????*b??????MA`!MAStone_Marble1Z?Z?fff?Y?Y?Y???????5 Q? ???`?DATAP`P????hff?L???? ף<?DATAP`-@\f&@?hff?hff?hff??????DATAP`???>8>G>?????MA!``MAStone_MarbleGreen??????????@ ??? g^?DATAP !@(T??????7=?DATAPT>>>?????L>??MA`!MAStone_MarbleRough???????????L?+;> ???`g^?DATAP "v>>>???7=?DATAP`T??????????DATAPB A A A???????MA!``MAStone_MarbleShiny???????????nL?@ ??? g^?DATAP  "v>>>???7=?DATAPT>>>?????L>??MA`!MAStone_Opal???????????fff?@ ???``g^?DATAP@Q @ @ @????????DATAP`a # @ @ @fff?>?????DATAP@QhG>G>hG> @ @ @?>>?????DATAP`a #hG>G>hG> @ @ @?L>?????MA!`MAStone_RedBrickfff??>????????L?U=  ???`g^?DATAPT f&@>f&@>f&@?>=?????DATAP`B A A A?????@?MA!MAstone_redclayvU?q7>,>??S??????L? ף<  ??? ?DATAP `P????U*?A>??G>??DATAP`P???C? ???B>??DATAP ``????????u=?DATAPR???g?i?o???p>??MA!`MAStone_rock??????????=?L??2 ???P?DATAPP!й???????????DATAP!z????b=A=a=?????DATAP????????<@?MA`! MAStone_RubyRoughf? V>:=????????qq??C????`DATAP T?????????DATAP`{???????333???MA !`MAStone_sandstoneUg?U?????L>?L? ??? ?DATAP@???- ?>>??$>??DATAP @L??fff??????=?DATAP@>?233?i>b1>??k]>??DATAP =gf?233?@?????:M>?MA! MAStone_Stone1???L?L?L??????L?=d ???``?DATAP``P???&>G>G>?????DATAP`???v;?n7?n7??????DATAP`@#??????????DATAP``????????L>?MA!)MAStone_Turquoise>=????????L?> ??? "0Eg^?DATAP !` ???>L>?????DATAP "#@Q???=L???????DATAP0E A A A???????MA)!p0MASynth_BlackPlastic????????L??  ???!g^?DATAP!V A A A===?????MAp0!I)MASynth_computer?Y}t?hff?????????L?L=c ???0aN?DATAP0a`P???%?\v??? >WA>??DATAPN"``????????L=?MAI!Fp0MASynth_GolfBall???????????nL?V> ???Mg^?DATAPM" A A A>L>??????MAF!0IMASynth_perspex?s? :f?????????H>?~?A ???cc?DATAPc??????????DATAPc `z??????? >??MA0!KFMASynth_RubbereyL>L>L>L?L?L?????=???( ????DATAPk>???????L=?MAK!@0MASynth_shinyplasti?333?333?L??????L?@ ????MA@! 7KMAWood_BlackM32?????????V>  ???@g^?DATAP L>0lf??>???? ???DATAP@????fff????=??MA 7!5@MAWood_Cherry&%?L>?????????>  ???b@Kg^?DATAPb L>lf?T?s>>?????DATAP@K`W????=??L???MA5!B 7MAWood_Oak1W?ɽ ??????????>  ???J`5g^?DATAPJL>lf?T? >>??333???DATAP`5`W????KX_?>?????MAB!@5MAWood_PaintedI?h??Y??????L?L> ???PBA?DATAPPB#K> ףDB?@@@L?>???Ct5??DATAPA"K> ף\B??A@??k?o[???K>C>5>MA@!&BMAWood_Pinerushd?D? ?/h?/mp?Rd?????=?L?"k>?d ???)((DATAP)K> ףDB?@@@L?=<?? O|>Ct5?-?DATAP(K> ף\B??A@??k?o[???K>C>?DATAP(`P???>E">??=?MA&!@MAMaterialL?L?L??????????L??2 ????MA!&MAWood_SpruceL?333?>????????fff?>  ???g^?DATAPL>lf?T? >>?????DATAP????fff???????TE%@#TEAmethyst?@???????? $DATA $???L????q?>?L??%>???>?fff???)?333?L>L??$""?L>=????????????????????????????????????????????????TE@#@%TEBig stucci>@?????????TE@@#TEbig stucci=$=gf@????????=DATA?P>????] ???????????????????????????????????????????????????????????????????????TE TEBlend>@????????DATA???????????????????????????????????????????????????????????????????????????TE TEBlend.001>@????????`DATA`???????????????????????????????????????????????????????????????????????????TE@F TEBlend.002>@33????????TE@FP1TEBlend.003>@????????:DATA:???? #<????????p}??????????????????????????????????????????????????????????????????TEP1@FTEBlend.004>@????????`DATA`P? ??? #<????J?o???p}??????????????????????????????????????????????????????????????????TEP1TEBrownNoiselg>ffA????????TETEBumpMapUL=??????????TEM[TEcandystripe.001>@????????\DATA\????????????????????????????????????????????????????????????????????????????TE[ZMTEClouds001>@?????????TEZZ[TEClouds.001001>@?????????TEZ YZTEClouds.002001>@?????????TE Y@XZTEClouds.003001>@?????????TE@X`W YTEClouds.004001>@?????????TE`W@XTEClouds.005001>@?????????TEV`WTEClouds.006001>@?????????TEVUTEClouds.007001>@?????????TEUTVTEClouds.008001>@?????????TET6ZUTEClouds.009001 >@?????????TE6Z`@TTEClouds.010;=@????????Й>TE`@V6ZTEClouds.011.2>ffvA????????EDATAE>???z?>>????p}??????????????????????????????????????????????????????????????????TEVT`@TEClouds.012>@?@???????TDATAT>\J>?? 5?h?L>???????????????????????????????????????????????????????????????????TET0SVTEClouds.013>@????????TE0S TTEClouds.014}>@?@???????apQDATApQ>ޙ>>N>??P?iM?= W????????????????????????????????????????????????????????????????????TE S0STEClouds.015h|=@?@???????`DATA`>\J>?? 5?h?L>???????????????????????????????????????????????????????????????????TES@Q TECloudsApple>@????????? RDATA R??>?>>????????????????????????????????????????????????????????????????????????TE@QSTECloudsHard>@?????????TE@QTECloudsHard.001>@?????????TE`PTEDark}?$B?????????TE`P@TEdirt>@?????????TE@`~`PTEdirt.001>@?????????TE`~}@TEEnv map clean>@?????? ??pODATAxpOq/Im:?Jm:?q/?|A⚳R3D#?a?=BTE}{`~TEEnv map clean.001>@?????? ??|DATAx|q/Im:?Jm:?q/?|A⚳R3D#?a?=BTE{`z}TEEnvMap.006>@?????? ??@{DATAx@{ 1?391A| AS?=Bd/TE`zx{TEEnvMap_fuzzyF6>@?????@ ??yDATAxyq/Im:?Jm:?q/?|A⚳R3D#?a?=BdTEx `zTEEnvMap_fuzzy.001 F6>@?????@ ?? xDATAx xq/Im:?Jm:?q/?|A⚳R3D#?a?=BdTE  xTEEnvMap_fuzzy.002F6>@?????@ ??pDATAxpq/Im:?Jm:?q/?|A⚳R3D#?a?=BdTE @w TEEnvMap_fuzzy.003F6>@?????@ ??pDATAxpq/Im:?Jm:?q/?|A⚳R3D#?a?=BdTE@wt TEeye>@????????uDATAu???l>?>??????????????????????????????????????????????????????????????????????TErKtTEgingham.001>@????????@pDATA@p-E???????????????????????????????????????????????????????????????????????????TEKKrTEgrain1s>̌@????????C>TEK JKTEgrain1.001s>̌@????????C>TE J@IKTEink outline>@????????`DATA`???>????????????????????????????????????????????????????????????????????????TE@I JTEinkstrokes<>?@79?>?????? DATA >9W= tZ=????????????????????????????????????????????????????????????????????????TE TELight>gfA????????<@TE TEMagic.001> A?????????`DATA`??????????????????????????????????????????????????????????????????????????TE TEMagic.002> A?????????DATA??????????????????????????????????????????????????????????????????????????TETEMagic.003> A?????????DATA??????????????????????????????????????????????????????????????????????????TE@TEMagic.004> A????????? DATA ??????????????????????????????????????????????????????????????????????????TE@`TEMagic.005> A????????=`.DATA`.??????????????????????????????????????????????????????????????????????????TE`-@TEMarble(>0A????????TE-,`TEMarble.0017J>A????????TE +TEMarble.004]K=43CA????????DATA??????????????????????????????????????????????????????????????????????????TE *TEMarble.005>43CA????????`DATA`? >??5???w?+!>>???????????????????????????????????????????????????????????????TE*@( TEMarbleBand2> A???????? )DATA )???L??>C-????????????????????????????????????????????????????????????????????TE@(%*TEMarbleBandGreen?A????????7&DATA&>???1?333????????????????????????????????????????????????????????????????????TE%$@(TEMarbleHard> A????????L>TE$#%TEMarbleHard.001> A????????L>TE#$TEMarbleHard.002> A????????L>TE##TEMarbleHard.003> A????????L>TE# "TEMarbleing}?A????????TE "@!#TEMarbleSharper> A????????7=TE@!` "TEMarbleSoft.001L>@????????`nDATA`n??????????????????????????????????????????????????????????????????????????TE` k@!TEMarbleTurquoise> A????????lDATAl>=.>fff?fff??({>??????????????????????????????????????????????????????????????????????TEkj` TENoise #A????????TEfc iTErainbow.001>@f?>~???????dDATAd?????>???>??ff>??????@????fff??????????????????????????????????????????????TEccfTErust =@????????_ʚTEc``cTERustmask>@????????@aDATA@a???>?>??????????????????????????????????????????????????????????????????????TE``=cTEsmall Stuccish_eye.W;@????????<Р`>DATA`>l(>?????????????????????????????????????????????????????????????????????????????TE=5Z``TEsmall Stucci.001ye.W;@????????:M>;DATA;l(>?????????????????????????????????????????????????????????????????????????????TE5Z:=TEsmall Stucci.002ye.W;@????????*\=2Z4ZDATA4Zl(>?????????????????????????????????????????????????????????????????????????????TE:@85ZTEsmile mask>@???????? 9DATA 9N>???i>??????????????????????????????????????????????????????????????????????TE@85:TESolidBlack>@????????6HDATA6?????????????????????????????????????????????????????????????????????????DATAxH=BdTE53@8TEstencil2>@????????3DATA3????'>???233???????????????????????????????????????????????????????????????????????TE`0E3TEStuccio>L@?????????pFDATApF333??N?333?>???????????????????????????????????????????????????????????????????TEEB`0TEStucci.001o>L@????????@CDATAC333??N?333?>???????????????????????????????????????????????????????????????????TEBPETEStucci.002o>L@?????????0ADATA0A333??N?333?>???????????????????????????????????????????????????????????????????TEP@BTEStucci.003,=33AqG????????L=02DATA02J?iM?{.?????????????????????????????????????????????????????????????????????????TE@P@PTEStucciBumpMapUL=?????????a>TEP@@TEStucciWallIno>L@?????????`DATA`333??N?333?>???????????????????????????????????????????????????????????????????TEP@TEStucciWallOut01o>L@?????????DATA333??N?333?>???????????????????????????????????????????????????????????????????TE@TETartan1>@????????? DATA 9>???D<??????????????????????????????????????????????????????????????????????TE@TETartan2>@????????DATA?????#<??????????????????????????????????????????????????????????????????????TE@TETex?@????????DATAL>䥛>6P>??????????????????????????????????????????????????????????????????????TETETex.002>@????????DATA??????q>???7>?>p}?h B?????5MX????????????????????????????????????????????????????????TEp0TETex.003)>cf@?????????TEp0`TETex.004>@????????DATA>)\????h >L>l(>>?0>??????????????????????????????????????????????????????????????????TE`p0TEtoon outline>@????????@DATA@???L>?>??????????????????????????????????????????????????????????????????????TETEToon shade>@????????p`DATA`? ??>?U=??????????????????????????????????????????????????????????????????????TEйDTEVariation:?@????????TED BйTEWood>@????????CDATAC?=??:m ?????????????????????????????????????????????????????????????????????????TE BDTEWood.001L>rf@x????????WDATAWL>P?HB>=5?>? "?>1>233??????????????????????????????????????????????????????????????????TE BTEWood.002L>rf@x????????DATAL>(!? >6?z?>>? "?>1>233??????????????????????????????????????????????????????????????????TE TEWoodBandBluee.003>033@????????DATA??p>??U>??n?333?333???????????????????????????????????????????????????????????TE  TEWoodBlackg ?73s@????????`DATA`?????ځ>?6>L>L>L>?""??c}/?>>>?jp????????????????????????????????????????????????TE  TEWoodCherryg ?73s@????????`DATA`?=?L?>?2{=333?>?]>???L?>? +??=?@V?L?R>???????????????????????????????????????????????TE TEWoodPineg ?73s@????????DATA9{?[K????L>?V>?(?>?%>?L>?m??L???)??>?Ƈq??9p? #????????????????????????????????????????????????TETEWoodSpruceg ?73s@?????????DATA)\O?@?G!??L?333???]>333??>?.>L?333???7>L?H???""?333??>?c}/?L?333?????????????????????????????????????????????????IM p IM3.jpg\iain_3d\textures\Texture Town\3.jpgIM  РpIM3.jpg.001\iain_3d\textures\Texture Town\3.jpgIM Р IMtoonish_eye.jpg\iain_3d\textures\animal\toonish_eye.jpgIM 2ZРIMtoonish_eye.jpg.001\iain_3d\textures\animal\toonish_eye.jpgIM 2ZIMtoonish_eye.jpg.002\iain_3d\textures\animal\toonish_eye.jpgCAl0CACamera=B?AA?LALALamp????A4B>??? B4B?@@VF@p"VF.Bfont C:\WINDOWS/.Bfont(TXd TXipo_editv2a_py.txt \@@@DATA c:\blender\ipo_editv2a_py.txtEEDATA@P&:59 DATAPP@ !DATAP`PИDATA` P[DATA `0DATA 0 0DATA0urbsDATA0ldhoDATA0Pine0DATA@WADATA@--- DATA@p--- DATAP --- DATAPЕ--- DATAP--- DATA`0--- DATA`tarlDATA`teelDATApPDATAp nd@DATA p--- DATA --- DATA00ser DATA0ser DATA0ser DATA@PheadDATA@FREEDATA@x 32DATAP`argoDATAP DATAPDATA`DATA``DATA` DATAp DATAp ` DATA p DATA DATA0:26 DATA0PFREEDATA0 opyrDATA@=DATA@0@ FREEDATA0@FREEDATA0F[DATA@`DATA@!DATA@$DATAP09DATAP;D NEDATAPP;DATA`DATA`8DATA` LDATApDATAp $DATA Ђp (BDATAЂ 7F[DATA0ЂP'FREEDATA0?DATA0DATA@CDATA@0]%DATA@IPRhDATAPDATA0`7DATA0FREEDATA07DATA@PDATA@? @DATA@?DATAPpBDATAP DATAP3DATA``uJDATA`JPDATA`DATApDATAp 0@DATA pADATA JPDATA0`t[DATA0$FREEDATA0LDATA@0DATA@HDATA@`ADATAP DATAPDATAPCDATA`@ =DATA`IPRaDATA`7DATAp@ FREEDATAp BDATA p DATA `!#z3BDATA0>DATA0?DATA0 DATA@@ DATA@"DATA@ADATAPP?DATAP!DATAP TBDATA`P*DATA`uDDATA`KPDATApp BDATAp TBDATA p DATA DATA0@n?DATA0 t[DATA0 DATA0` OBDATA0-ADATA0LCDATA@ DATA@@ ?DATA@DATAP"7DATAP@DATAPDATA` L>DATA`P+DATA`L[DATAp։?DATAp p[DATA p  ADATA DATA0*5DATA00DATA000 7DATAp#DATAp0\CDATAp CDATA Еp0CDATAЕ _XDDDATA0Е0 DATA0P_pېDATA0_DATA@^ DATA@^ؐDATA@0^ DATAP] DATAP]DATAPP]DATA`]DATA`\ DATA`p\ՐDATAp \ԐDATAp [@ԐDATA пp[ӐDATAп @[FREEDATA0п[ DATA0ZWTTDATA0pZDATA@ Z DATA@Y ГDATA@YDATAPPY\CDATAP/=;;DATAP/CDATA`@/DDDATA`.DDATA`.<DATAp`.DATAp .DATA кp-ɐDATAк -@ɐDATA0к@-DATA0-FREEDATA0,u[DATA@, <DATA@0,DATA@+ DATAP+0ŐDATAPP+ĐDATAP+ÐDATA`*PÐDATA`p*DATA`0*DATAp)DATAp )$<DATA еp@)sDATAе (DATA0е( DATA0`(DATA0(%u[DATA@'DATA@`'FREEDATA@'&DATAP& DATAPP&$DATAP&DATA`% DATA`p%DATA` %DATAp$%`DATAp p$DATA аp$#DATAа # DATA0а#DATA00#DATA0"DATA0"DATA0P"`DATA0"DATA@!6FREEDATA@`!DATA@!DATAPx 32DATAPu[DATAPP DATA`DDATA`DATA` DATAp@pDATAp  @DATA p DATA @DATA0#DATA0DATA00"DATA@<DATA@DATA@pХDATAP te()DATAP reDATAPDATA`@ if DATA` .++DATA`<DATAp DATAp @ DATA pDATA CDATA0@ >DATA0 d=DATA0DATA@P!FREEDATA@?DATA@DATAPp FREEDATAP)DATAPTXipDATA`pDATA` sertDATA` FREEDATAp)DATAp @DATA ppDATA  ЕDATA00!FREEDATA0ПpDATAП0 DATA0П@ def DATA0 DATA0)DATA@0PDATA@DATA@ pDATAP`8EDATAP GFREEDATAP XEDATA`P  gloDATA` FREEDATA` FREEDATApp iDATAp 0 FREEDATA Кp e)DATAК  colDATA0КP |PDATA0 |PDATA0 |PDATA@P &|PDATA@ menuDATA@ menuDATAP` menuDATAP menuDATAPDATAP0UFDATAP"|PDATAPREEDATA`0%|PDATA`DATA` |PDATAp`DATAp PDATA p@PpDATA FREEDATA08EDATA0pEDATA0 EDATA@DATA@P4 EEDATA@"[DATAPDATAP`DATAPo!YDATA``o-DATA`  `DATA`n9DATA@n0, 1DATA@Pn stDATA@n0,35DATAmal)DATAPpm `DATAPP m `DATAP0pPl `DATA0p@@PlDATA@@0b0p@l)`RDATA0b`@@kDATA`0F0bkDATA0FH`PkDATAHD0Fk50, DATAD5Hj=_lisDATA5`D0j7mDATA` 5i FDATA M`pi8pFDATAM@R hR eDATA@RQMh thDATAQQ@R h> meDATAQPQQgUiDATAPQQQ@gDATAQPPQgo, lDATAP`PQf |PDATA`PPfL@DATA`P f+DATA0eL@DATA0`e5L@DATA0 e ReDATA@dݻ?DATA@d thDATA@0d!L@DATAPcDATAPpcGL@DATAPbS`DATA``bJDATA` bXEDATA`a(DATAp@aLEDATAp `5LDATA p0`kFDATA  0DATA0`DDATA0~NFREEDATA0P~V 0DATA@}SDATA@0}RGDATA@|?textDATAP@|KDATAP{K ButDATAPP{= 0DATA`{, inDATA`zL 0DATA`zMDATApxT0, 1DATAp yDATA p@x blocDATA wDATA0w&DATA0Pw=DATA0v=DATA@vDATA@@vDATA@uDATAPuDATAP`u@9DATAPu8DATA`t8DATA`tFREEDATA`0t DATApsDATAp sDATA p@sDATA sFREEDATA0rest_DATA0pr$DATA0r%$DATA0qB$DATA0PqDATA0pN0DATA@pFREEDATA@ @pFFREEDATA  @tREDATA P ptDATAP  x,DATA  P z,DATA ` ~+DATA`  a*DATA  ` s@DATA p  rB DATAp  0 (DATA  p @KFREEDATA  S DATA 0 @#DATA0   DATA  0 ) DATA @ Nd(loDATA@  )XEDATA@ P)is cDATAP'DATAP' DATAP@DATA`FDATA`pch wDATA`0p%DATAp0DATAp MDATA p %DATA 0pendDATA0Ј DATA0lockDATA00& DATA@Ї [menDATA@FREEDATA@bDATAP):DATAP -DATAPDATA`p?DATA`XDATA`PW ipoDATApEDATAp 0 FDATA p 0DATA 0DATA0`r thDATA0o9def DATAoo0DATAo0oo0FREEDATA0ono0pare DATAnn0o0nts DATAn@nn02FDATA@nmn0FREEDATAmm@n@pFREEDATAmPmm0 EEDATAPmmmPhl_raDATAmlPm eDATAl`lmm`DATA`lllR# eliDATAlk`l@r :EEDATAkpklpDATApk kkDATA kjpk00DATAjj kFREEDATAj0jj:DATA0jij`\GDATAii0j GDATAi@ii Ipo%DATA@ihip -g[DATAhh@i @DATAhPhh DATAPhhh ips_DATAhgPh` ourcDATAg`gh HDATA`ggg 8DATAgf`gP & bDATAfpfg P erDATApf ffp DATA fepf (DATAee f ! stDATAe0ee` DATA0ede pDATAdd0eDATAd@ddp0DATA@dcd0DATAcc@d<FREEDATAcPccDATAPccc )DATAcbPcPDATAb`bc@ DATA`bbb!DATAba`bripsDATAapab@ aDATApa aa DATA a`pas_s[DATA`` aP) iDATA`0`` DATA0`/` FREEDATA//0`P5e stDATA/0// ʑDATA0/./FREEDATA..0/?/DATA.@..?ȑDATA@.-.?>DATA--@.>HDATA-P--@>FREEDATAP---=! DATA-,P-=0őDATA,`,-@=đDATA`,,,<ÑDATA,+`,<PÑDATA+p+,P<)idDATAp+ ++<‘DATA +*p+; pDATA** +`;-headDATA*0** ; mDATA0*)*:!] = DATA))0*`:(DATA)@)) :DATA@)()90@DATA((@) 9ZtHDATA(P((8DATAP(((8DATA('P(82DATA'`'(7 forDATA`'''p7/ scrDATA'&`'07 ஑DATA&p&'6!DATAp& &&p6/DATA &%p&06$HDATA%% &5DATA%0%%5DATA0%$%05.DATA$$0%4L DATA$@$$`4ੑDATA@$#$4@DATA##@$30DATA#P## 3@ DATAP###2DATA#"P#2'DATA"`"#@2ХDATA`"""2 thatDATA"!`"1 DATA!p!"1 DATAp! !!@1 DATA ! p!1 DATA  !0 st[nDATA 0 0 s_DATA0 pw O DATApw w0 ODATA wvpw@ODATAvv wO eliDATAv0vvN DATA0vuvPNDATAuu0vNFREEDATAu@uuM:DATA@utupM invDATAtt@uM le"DATAtPttLDATAPtttpL\DATAtsPtL ):EDATAs`stKCDATA`sssPK namDATAsr`sK reDATArprsJ+ namDATApr rrpJ\DATA rqpr0J gloDATAqq rIFREEDATAq0qqIFREEDATA0qpq@Iu(flDATApp0qHdef DATAp@ppH \DATA@pOpPH liDATAOO@pH3+meDATAO0OOG stDATA0ONOpG liDATANN0O0G5+meDATAN@NNFDATA@NMNF stDATAMM@N@F&harmDATAMPMMF DATAPMMME glCDATAMLPMpE TexDATAL`LM EDATA`LLLDDATALK`LD ringDATAKpKLPD HDATApK KKDDATA KJpKCDATAJJ K`CDATAJ0JJ C FREEDATA0JIJB DATAII0JBDATAI@II0B"\DATA@IHIA"DATAHH@IA+FREEDATAHPHH@A 4+meDATAPHHHA FREEDATAHGPH@FREEDATAG`GHP@ _lisDATA`GGG8 eDATAGF`Gp FREEDATAFpFG0 FREEDATApF FF~FREEDATA FEpF~DATAEE FP~R_BUDATAE0EE~DATA0EDE} menDATADD0Ep}FREEDATAD@DD }5, 2DATA@DCD| insDATACC@D| ButDATACPCC@|e.vaDATAPCCC{! ButDATACBPC{,DATAB`BC@{FREEDATA`BBB{ glRDATABA`Bz_d.vDATAApAB`z,DATApA AAzDATA A@pAy<БDATA@@ AyDATA@0@@0yps:DATA0@@x DATA0@px4toggDATA00x HDATA0~w DATA~~0wHDATA~@~~Pw\DATA@~}~v6col_DATA}}@~v grouDATA}P}}`v DATAP}}}vDATA}|P}uFREEDATA|`|}u, toDATA`|||0u glCDATA|{`|t rameDATA{p{|`t4DATAp{ {{ t GDATA {zp{s DATAzz {sDATAz0zz@sDATA0zyzrpDATAyy0zr9КDATAy@yy@r DATA@y?yr DATA??@yqDATA?0??`qPDATA0?>?qDATA>>0?p9DATA>@>>`p DATA@>=>o DATA==@>o0DATA=P==@oN 2,DATAP===nFREEDATA=<P=n8impoDATA<`<=@n GDATA`<<<n DHDATA<;`<mHDATA;p;< mQHDATAp; ;;l?_d[aDATA ;:p;pl XIDATA:: ; lsertDATA:0::k sertDATA0:9:k:DATA990:k[JDATA9@99jF< DATA@989@j DATA88@9i onDATA8P88i FREEDATAP888`iREEDATA87P8 i DATA7`78hDATA`777hFREEDATA76`7Ph nexDATA6p67g> forDATAp6 66gJDATA 65p6`g DATA55 6 gDATA5055f?ips_DATA0545pfDATA4405eFposDATA4@44peLDATA@434e> invDATA33@4don cDATA3P33@dI forDATAP333cP_ptlDATA32P30cIDATA2`23bAngthDATA`222`b foDATA21`2b iDATA1p12aDATAp1_1`a2s_s[DATA__p1`KDATA_0__``M= (bDATA0_^__6FREEDATA^^0_ _^ng:DATA^@^^^FREEDATA@^]^P^CvaluDATA]]@^^ DATA]P]]p]W DATAP]]]0]= (bDATA]\P]\FREEDATA\`\]\<@DATA`\\\`\<@DATA\[`\\#DATA[p[\[ DATAp[ [[p[DATA [Zp[0[DATAZZ [Z_IDATAZ0ZZ`Z leDATA0ZYZ ZFREEDATAYY0ZYDATAY@YYY\PDATA@YXY@Y\PDATAXX@YY mDATAXPXXX\PDATAPXXXPX?+1DATAXWPXX EEDATAW`WXW;DATA`WWWPW \PDATAWV`WWDATAVpVWV keyDATApV VV`V9 DATA VUpVU9 triDATAUU VpUE\PDATAU0UUU(\PDATA0UTUTEitioDATATT0UPTDATAT@TTT\PDATA@TSTSourcDATAS@TpS bDATAPS S bDATAPR bDATAPRDATAЯ@RDATAЯQ scrDATA0ЯQFREEDATA0`Q#as DATA0Q-DATA@PFREEDATA@pP DATA@/"t cuDATAPp/\0DATAP0P inDATAP0/DATA`."DATA`.DATA`@. offDATAp-R oDATAp @-8\0DATA Ъp- s, lDATAЪ p,S= 1.DATA0Ъ,;\0DATA0+G#bloDATA0@+8IDATA@+ FREEDATA@*FREEDATA@p* DATAP0* lockDATAP) #tDATAP) #cDATA`p)DATA if not menu_d.val:ADATA string7='No Dest IPO'DATA  error()DATA @ returnDATA$ text_len2=report_range(this_ipo)DATA DATAP string4="At %t"DATA$ this_ipo=ipo_list[menu_d.val-1]DATA  list_id=0DATA,P menu_string=fill_range(this_ipo,list_id)BDATA  string4=string4+menu_stringDATA slider_max=duration+100DATAp msg_white()@DATA  elif (evt== 4):DATA refresh() BDATA elif (evt== 5):DATA@ if not len(ipo_list):DATA$ string7="No IPOs in Drawing!"?DATA  error()DATA ` returnDATA if not menu.val:DATA string7='No Source IPO'DATA  error()DATA @ returnDATA  this_ipo=ipo_list[menu.val-1]DATA$ text_len1=report_range(this_ipo)BDATA@ string3="From %tx0"DATA  this_ipo=ipo_list[menu.val-1]DATA  list_id=1DATA,P menu_string=fill_range(this_ipo, list_id)DATA  string3=string3+menu_stringDATA[DATAp string5="Thru %tx0"BDATA  this_ipo=ipo_list[menu.val-1]DATA  list_id=2DATA, menu_string=fill_range(this_ipo,list_id)DATA 0 string5=string5+menu_string?DATA00 msg_white()DATAp elif (evt== 6):ywwDATA0 use_slider=0DATA  string7="At Dest Keyframe"DATA0 msg_white() DATA\_ elif (evt== 9): #?? Sliding off of a menu generates an evt 9, so do something harmlessܐDATA 0  Redraw()DATAP_ DATA_ elif (evt== 10):DATA ^ flag1=1EEDATA^ build_group()DATA0^ elif (evt== 11):DATA ] retry()DATA] elif (evt== 12):DATAP] flag1=delete_gp_item()DATA] build_group_menu(flag1)DATA \ Redraw()DATAp\ elif (evt== 13):DATA \ if toggle.val:ԐDATA[ string6= "Group"DATA[ else:DATA@[ string6="Single"DATA[ msg_white()))DATAZ elif (evt== 14):DATApZ use_slider =1DATA Z string7="At Slider Value"DATAY msg_white()DATAY DATAPYdef build_group():DATA/ DATA/ global group, group_listDATA@/ ipo_s=Ipo.Get()DDATA. test=ipo_s[menu.val-1]DATA. name=test.nameDATA`. if name=='Temp':DATA . returnDATA- test=ipo_s[menu_d.val-1]DATA- name=test.nameDATA@- if name=='Temp':EEDATA - returnREEDATA, if not group:DATA , group=1DATA0, group_list =[]DATA+ this_pair=[]EEDATA + this_pair.append(menu.val-1)DATA P+ this_pair.append(menu_d.val-1)DATA + group_list.append(this_pair)DATA * flag1=1DATAp* build_group_menu(flag1)REEDATA0* ngDATA )def build_group_menu(flag1):DATA() global string8, group_list, string7u[DATA@) DATA( string8=" Group IPOs %x0"EDATA ( dumnum =1EDATA`( ipo_s= Ipo.Get()DATA(( for size in range (len(group_list)):DDDATA ' pair = group_list[dumnum-1]EEDATA`' ipo=ipo_s[pair[0]]DATA(' string8=string8+('|%s >' %ipo.name)DATA& ipo=ipo_s[pair[1]]DATA(P& string8=string8+(' %s' %ipo.name)DATA& string8=string8+('%x')DATA % if flag1:DATAp% string7='Added ' DATA % ipo=ipo_s[pair[0]]DATA($ string7=string7+('%s >' %ipo.name)DATAp$ ipo=ipo_s[pair[1]]DATA$$ string7=string7+('%s' %ipo.name)DATA# msg_green()DATA# numbr=str(dumnum)DATA0# string8=string8+(numbr)DATA" dumnum=dumnum+1DATA" DATAP"def delete_gp_item():DATA" DATA8! global group_list, group, string7, col_g,col_r, col_bDATA `! flag1=0DATA! try: test=group_list[0]REEDATA  except:REEDATA  string7="No Group Defined"DATA P error()DATA return flag1DATA if not len(group_list):DATA  group=0DATA@ return flag1DATA ipo_s= Ipo.Get()EEDATA$ pair= group_list[menu_gp.val-1]DATA@ ipo=ipo_s[pair[0]] DATA$ string7=('Deleted %s >' %ipo.name)DATA ipo=ipo_s[pair[1]]DATA$0 string7=string7+('%s ' %ipo.name)DATA  col_r=1DATA  col_g=1DATA p col_b=0DATA  del group_list[menu_gp.val-1]DATA if not len(group_list):REEDATA  string7="No Group Defined"DATA @ error()EEDATA  group=0DATA return flag1 DATA return flag1EEDATA@def refresh():DATA DATAD global text_len1, text_len2, string3, string5, string4, slider_maxDATA@ DATA  get_ipos()DATA  this_ipo=ipo_list[menu.val-1]DATA$P text_len1=report_range(this_ipo)DATA string3="From %tx0"DATA  this_ipo=ipo_list[menu.val-1]DATA p list_id=1DATA, menu_string=fill_range(this_ipo,list_id)DATA  string3=string3+menu_stringpyDATAp string5="Thru %tx0"DATA  this_ipo=ipo_list[menu.val-1]EDATA  list_id=2EDATA, menu_string=fill_range(this_ipo,list_id)DATA@ DATA  string5=string5+menu_stringDATA$ this_ipo=ipo_list[menu_d.val-1]DATA$0 text_len2=report_range(this_ipo)EEDATA DATA string4="At %t" DATA$@ this_ipo=ipo_list[menu_d.val-1]DATA  list_id=0DATA, menu_string=fill_range(this_ipo,list_id)EEDATA 0 string4=string4+menu_stringDATA slider_max=duration+100DATA msg_white()DATA`REEDATAH #Find existing IPOs in the drawing and format them into the menu stringDATA def get_ipos():DATAP  global string2, ipo_listEEDATA  string2= "Select IPO%x0"EEDATA  ipo_s = Ipo.Get()vDATA p  dumnum=1DATA0  ipo_list=[]ir[DATA  for ip in ipo_s:EEDATA  DATAP  the_curves=ip.curvesDATA  if len(the_curves)>0:DATA  if not ip.name=='Temp':DATA(P  string2 = string2+('|%s' %ip.name)DATA  numbr=str(dumnum)atDATA  string2=string2+('%x')DATA`  string2=string2+(numbr)DATA   ipo_list.append(the_curves)DATA dumnum=dumnum+1 DATAX0#Fill the range menus (from, to, at) with the keyframe values for the selected curvesipDATA$def fill_range(this_ipo, list_id):DATA elDATA(0 global at_list, from_list, thru_listDATA DATA list_tmp=[]DATA` menu_string=' 'DATAT ptloc=this_ipo[0] #For now, we are only looking at the first curve in the blockDATAT@ trips=ptloc.points #here we are at the list of bezier trips for this one curvepDATA nmbr=1DATA DATAp for trip in trips:DATA$ menu_string= menu_string+('|')EDATA loc_str=str(trip.pt[0])DATA8P list_tmp.append(loc_str) #Builds a global keylist0, DATA$ menu_string=menu_string+ loc_strDATA str_nmbr=str(nmbr)DATA`DATA$o menu_string= menu_string+(r'%')DATA0`o menu_string= menu_string+('x%s ' %str_nmbr)EEDATA  nmbr=nmbr+1DATA<n if not list_id: #save the appropriate global keylistDATAn at_list=list_tmpDATAPn elif list_id==1:stDATAn from_list=list_tmpDATAm else:DATApm thru_list=list_tmpFDATA m return menu_stringDATAl DATAlDATA,@l#report the range of an IPO to the screenDATA k#entry: ob.ipo.curves[0].pointsDATAkdef report_range(this_ipo):DATAPk global durationDATAk (eDATA@j ptloc=this_ipo[0] #the first curve object for this IPO blockDATA80j trips=ptloc.points #returns the triples for one curve DATAi length =len(trips)DATA<pi a_trip=trips[0] #the first bezier triple for this curvelDATATh start=('first keyframe at %s ' %a_trip.pt[0]) #keyframe location for this triplesDATAh duration=a_trip.pt[0]DATA@ h a_trip=trips[length-1] #the last bezier triple for this curveDATAXg end=('last at %s' %a_trip.pt[0]) #keyframe location for the last triple on the curveDATA @g duration=duration+a_trip.pt[0]DATAg text=start+endDATAf return textDATAf@DATA, f#Paste the source slice into the scratchpadDATAe# Entry = GUI menu valuesDATA8`e# Exit = Raw source slice pasted into 'Temp IPO BlockDATA e ifDATAddef write_scratchpad():DATAd DATA$0d global ipo_temp_curves, ipo_tempDATAc DATAHpc ipo_temp = Ipo.Get('Temp') #get the scratch pad ipo from the drawing,DATATb ipo_temp_curves = ipo_temp.curves #key framed at 1, with each of the needed curvesDATAL`b source_block= ipo_list[source_ipo] #Get the indicated source IPO blockEDATA b DATA,a for curve in range (len(source_block)):DATAP@a source_ptloc= source_block[curve] #first curve of len(source_block) curvesDATA8` trips_s = source_ptloc.points #the list of bzt's DATAl0` slice= trips_s[menu_from.val-1:menu_thru.val] #copy the actual slice####just to get the length###!!!!!!DATA DATAH` #Aparently, we need to use an existing IPO block as a scratch pad.DATAP~ # We will use the block, we inserted, named 'Temp', making sure that it onlyEDATAXP~ # has a keyframe at 1, for each curve type that exists in the source and destinationDATAT} # curves. Then create a bzt for each keyframe in each curve of the source slice, DATAT0} # set the values for each of the bzt's to correspond to the values found in the DATA@| # source slice, and then append it to the scratch pad block. DATAL@| # Before leaving a given curve, delete the first keyframe, which was madeDATAL{ # during the scratch pad's creation. We should then have an exact copy ofDATA@P{ # the slice we will later paste into the destination curve.DATA{ tDATAPz ipo_temp_ptloc= ipo_temp_curves[curve] #So get a curve in the scratch pad DATAPz trips_temp= ipo_temp_ptloc.points #and point to the scratch pad's bzt list EEDATAXx slice_position = menu_from.val-1 # We'll use this as an index through the slice FDATAy EDATA$@x for keys in range(len(slice)):DATA w bzt= Blender.Ipo.BezTriple()DATA(w source_bzt= trips_s[slice_position]DATAPw DATA@v bzt.pt[0] = source_bzt.pt[0] #Copy all the attributes overDATA v bzt.pt[1] = source_bzt.pt[1]DATA @v bzt.h1[0] = source_bzt.h1[0]DATA u bzt.h1[1] = source_bzt.h1[1]DATAu DATA `u bzt.h2[0] = source_bzt.h2[0]DATA u bzt.h2[1] = source_bzt.h2[1]DATAt DATAt bzt.f1 = source_bzt.f1EEDATA0t bzt.f2 = source_bzt.f2EEDATAs bzt.f3 = source_bzt.f3EEDATAs bzt.h1t =source_bzt.h1tEDATA@s bzt.h2t =source_bzt.h2tEDATAsDATAr c.pDATApr trips_temp.append(bzt)DATA(r slice_position = slice_position +1DATADq ipo_temp_ptloc.points = trips_temp #Update the scratch pad curveEDATAPq DATAPp#normalize the scratch pad slice's bzts so that they only indicate their timesDATAp#as starting from zero.DATAH@p#then add the keyframe time of value 'offset' to all the .pt[0] values DATATt# in all the bezier triples of the slice of the scratch pad IPO block to be pastedDATApt DATA xdef normalize_n_offset(): DATAz DATA,~ for curve in range (len(ipo_temp_curves)):DATAa DATAD s ipo_temp_ptloc = ipo_temp_curves[curve] #the first curve sliceREEDATADr trips_s = ipo_temp_ptloc.points #the slice of this curve's bztsDATA 0 index =0DATAL@ first_bzt = trips_s[1] #Remember trips_s[0] is the dummy key from 'Temp'DATAT old_time = first_bzt.pt[0] #the start time of the first bzt, to subtract from allDATA$@ for keys in range (len(trips_s)):DATA one_bzt= trips_s[index]DATA, one_bzt.pt[0] = one_bzt.pt[0]-old_timeDATAP one_bzt.pt[0] = one_bzt.pt[0]+offset #add the offset value to this keyframeEDATA, one_bzt.h1[0] = one_bzt.h1[0]-old_timeDATA,P one_bzt.h2[0] = one_bzt.h2[0]-old_timeDATA( one_bzt.h1[0] = one_bzt.h2[0]+offsetDATA( one_bzt.h2[0] = one_bzt.h2[0]+offsetDATA@ index = index+1DATAH one_bzt = trips_s[0] #return that annoying first keyframe to time 1DATAp one_bzt.pt[0] = 1.0y DATA4 ipo_temp_ptloc.points = trips_s #Update curve 1DATA0 DATAP#Add the source_length to all the start times of the bzt's in the destinationDATA( #block beginning with the 'At' point itDATA0 iDATA Јdef shift_dest(insert_point): DATA DATA(0 for curve in range (len(dest_block)):DATA$Ї dest_ptloc = dest_block[curve] DATA  trips_d = dest_ptloc.pointsDATAd slice=trips_d[insert_point:len(trips_d)] #Cut a temporary slice of destination from 'at' to endEDATA, length=len(slice) #find it's lengthEEDATA0  slice=0 #then delete it to save memoryDATA if length==1:DATA@p return #Dont insert the original key that created "Temp"DATA\ at_loc =insert_point #the index to the first bzt in the destination block to changeREEDATAXP for bzt_points in range(length): #add the source_length value to each move_bzt.pt[0]DATA move_bzt=trips_d[at_loc]DATA4 move_bzt.pt[0] = move_bzt.pt[0]+source_lengthFDATA4  move_bzt.h1[0] = move_bzt.h1[0]+source_lengthDATA4 move_bzt.h2[0] = move_bzt.h2[0]+source_lengthDATA` at_loc=at_loc+1DATA< dest_ptloc.points = trips_d #update destination curveDATA DATA0 DATA0pdef paste(at_loc, weld_z):DATA0 mbDATA40 #First we need to know what keys to weld togetherDATA0 dest_ptloc = dest_block[0]DATA @p trips_d = dest_ptloc.pointsDATA 0 insert_key = trips_d[at_loc]DATA Ph key_time_d = insert_key.pt[0]DATA e key_val_d = insert_key.pt[1]DATAm elDATA$R ipo_temp_ptloc= ipo_temp_curves[0]DATA$@r trips_s = ipo_temp_ptloc.pointsnumDATA paste_key = trips_s[1]DATA  key_time_s = paste_key.pt[0]DATA 0 key_val_s = paste_key.pt[1]1)DATA weld=0DATA reDATA` position = len(trips_d)-1DATA  EEDATA  if at_loc < position: REEDATA0p  weld=1 #flag these as an insert operationDATA  if len(trips_s)==1:DATA  weld=1 DATA  if weld_z:DATA `  weld=0DATA  DATA<  #Now insert the source slice into the destination curveDATA(P  for curve in range (len(dest_block)):hDATAT  dest_ptloc = dest_block[curve] #set up curve and insert point for destination reDATA p  trips_d = dest_ptloc.pointsDATA,  ipo_temp_ptloc= ipo_temp_curves[curve]DATA$  trips_s = ipo_temp_ptloc.points('DATA`  length = len(trips_s)DATA  length = length-1DATA remaining = length DATAp src_index = 1 DATA0 DATA@ for i in trips_s: #Insert the source bzt's for this curve|DATA DATA,  if weld: #process an insert operationDATAT if not length-remaining: #weld the value of trips_s[-1] with trips_d[at_loc]DATA@ if not use_slider:DATA$ bzt_s=trips_s[remaining] DATA  bzt_d=trips_d[at_loc] DATA@ bzt_s_val=bzt_s.pt[1]DATA bzt_d_val=bzt_d.pt[1]DATA DATA,P bzt_d_val = (bzt_s_val+bzt_d_val)/2DATA  bzt_d.pt[1]= bzt_d_valDATA  else:EDATA8P trips_d.insert(at_loc,trips_s[remaining]) alDATA  else:DATA if remaining:DATA0? trips_d.insert(at_loc,trips_s[remaining])DATA? DATA@? elif not weld and not weld_z: #process an append operationDATAL> if src_index==1: #weld the value of trips_s[1] with trips_d[at_loc]DATA@> if not use_slider:DATA$= bzt_s=trips_s[src_index] DATA = bzt_d=trips_d[at_loc] DATA@= bzt_s_val=bzt_s.pt[1]DATA< bzt_d_val=bzt_d.pt[1]DATA< DATA,P< bzt_d_val = (bzt_s_val+bzt_d_val)/2EEDATA < bzt_d.pt[1]= bzt_d_valDATA ; else:DATA0`; trips_d.append(trips_s[src_index]) inDATA ; else:DATA$: if src_index < len(trips_s): aDATA,`: trips_d.append(trips_s[src_index])1DATA : DATA49 elif weld_z: #process an insert operationDATA\ 9 if remaining==len(trips_s)-1: #but weld the value of trips_s[1] with trips_d[at_loc]DATA8 if not use_slider:DATA8 del trips_d[at_loc]DATA48 trips_d.insert(at_loc,trips_s[remaining]) DATA 7 else:DATA0p7 trips_d.insert(at_loc,trips_s[remaining])DATA 07 else:DATA$6 if src_index < len(trips_s):DATA0p6 trips_d.insert(at_loc,trips_s[remaining])DATA06 DATA5 remaining = remaining -1DATA5 src_index = src_index +1DATA005 #Clean up IPO block 'Temp' for the next editEDATAP4 del trips_s[1:len(trips_s)] #delete this temp curve now, were done with itDATA`4 one_tmp_bzt=trips_s[0]>DATA4 one_tmp_bzt.pt[0] = 1DATA43 ipo_temp_ptloc.points = trips_s #AND UPDATE ITDATAD 3 dest_ptloc.points = trips_d #Reassign updated curve to the IPODATA2DATA(2def slider_check(trips_d, insert_here):DATA@2 DATA 2 is_equal=0DATA1 equal_pos=0 DATA 1 next_key=0DATA @1 next_pos=0DATA 1 last_key=0DATA 0 last_pos=0DATA0 next_done=0DATAO DATAO for bzt in trips_d:DATA @O if bzt.pt[0] == insert_here:DATAO is_equal= 1EDATA$N equal_pos= trips_d.index(bzt)DATA PN if bzt.pt[0] > insert_here:DATAN if not next_done:HDATAM next_done=1DATApM next_key= bzt.pt[0]DATA$M next_pos= trips_d.index(bzt) msDATA L if bzt.pt[0] < insert_here:DATApL last_key = bzt.pt[0]DATA$L last_pos = trips_d.index(bzt)EEDATADK return is_equal, equal_pos, next_key, last_key, next_pos, last_posDATAPK f DATAKdef validate():DATA,J global string7, invalid, warn_keylengthDATApJ EEDATA 0J invalid=0DATAI ipo_s=Ipo.Get()REEDATA I destination=ipo_s[dest_ipo] DATA@I source=ipo_s[source_ipo]EEDATA H d_curves=destination.curvesstrDATAH d_name=destination.name" GDATAPH s_curves=source.curvesDATAH s_name=source.nameDATAG thDATApG ipo_temp=Ipo.Get('Temp')hiDATA0G try:whDATAF curves=ipo_temp.curvesderDATA F except:te(DATA(@F string7="IPO block 'Temp' Not Found"eDATA F error()DATA E invalid=1DATApE return invalidDATA E if d_name=='Temp':DATA D string7='Dest IPO Invalid'REEDATA D error()DATA PD invalid=1DATAD return invalidREEDATAC if s_name=='Temp':DATA `C string7='Source IPO Invalid'DATA C error()EEDATA B invalid=1DATAB return invalidDATA$0B if len(d_curves)!=len(s_curves):DATA A string7=('%s and ' %s_name)poDATA,A string7=string7+('%s dont match' %d_name)DATA @A error()DATA A invalid=1DATA@ return invalidDATA$P@ if len(curves)!=len(s_curves):REEDATA< string7=("IPO 'Temp' Must Have Same Curves as Edit!!")DATA p error()DATA 0 invalid=1DATA~ return invalidDATA~REEDATAP~ s_curve=s_curves[0]whiDATA~ s_points=s_curve.pointsDATA} keys_s=len(s_points)0,DATAp} DATA } d_curve=d_curves[0]lisDATA| d_points=d_curve.pointsDATA| keys_d=len(d_points)30DATA@| DATA${ for one in range(len(s_curves)):DATA{ s_curve=s_curves[one]DATA@{ s_cname=s_curve.nameeDATA{ xDATAz d_curve=d_curves[one]DATA`z d_cname=d_curve.nameDATAz temp_curve=curves[one]DATAy t_name=temp_curve.nameDATAyateDATA0y if s_cname!=d_cname:DATA x string7=('%s and ' %s_name)DATA8px string7=string7+('%s curves dont match!' %d_name)DATA 0x error()DATAw invalid=1DATAw return invalidDATAPw if t_name!=s_cname:cDATA8v string7=("IPO 'Temp' curves dont match this edit!")DATA v error()DATA`v invalid=1DATAv return invalidDATAu DATAu s_points=s_curve.pointsEEDATA0u d_points=d_curve.pointsEEDATA$t if len(temp_curve.points)!=1:REEDATA8`t string7=("IPO 'Temp' must have only 1 keyframe!")DATA t error()DATAs invalid=1REEDATAs return invalidDATA @s t_val=temp_curve.points[0]DATAr if t_val.pt[0]!=1:DATA<r string7=("Keyframe in IPO 'Temp' must be at frame 1!")DATA @r error()DATAr invalid=1REEDATAq return invalidDATA`q if len(s_points)!=keys_s:DATA q string7=('%s and ' %s_name)DATA<p string7=string7+('%s have inconsistant keys!' %d_name)DATA `p error()DATAo invalid=1REEDATAo return invalidDATA @o if len(d_points)!=keys_d:stiDATA n string7=('%s and ' %s_name)DATA<n string7=string7+('%s have inconsistant keys' %d_name)derDATA @n error()DATAn invalid=1DATAm return invalidDATAT m if len(d_points) !=len(at_list): #does 'At' block have same # of keys as Group?DATA@l string7="'At' IPO does not represent Group or current curve"DATA pl error()DATA l warn_keylength=1DATAk invalid=1tEDATAk return invalidEEDATA\k if len(s_points) != len(from_list): #does 'From/Thru' block have same # of keys as Group?DATAHj string7="'From/Thru' IPO does not represent Group or current curve"DATA @j error()DATAi warn_keylength=1DATAi invalid=1poiDATA`i return invalidriDATA iDATAh return invalid DATAh DATAPhdef execute():EDATA@g global offset, at_trip, dest_block, source_length, use_slider=DATAg DATA `g weld_z=0DATA g DATA@f write_scratchpad() #paste the source slice into the scratchpadDATApf lDATAHe dest_block = ipo_list[dest_ipo] #Get pointed to the destination blockDATAPpe dest_ptloc = dest_block[0] #and it's first curve of len(dest_block) curvesrinDATA@e trips_d = dest_ptloc.points #list of destination curve bzt's)DATAd DATAL@d shift_d=1 #test this later to see if we need to shift destination keysnaDATATc at_start= 0 #flag to indicate paste to be inserted at beginning of dest curve[cuDATAL0c at_end = 0 #flag to indicate paste to be appended to end of dest curveDATADb merge_point = 0 #0 to merge first paste key with last dest key DATA`b at_loc=menu_dat.val-1DATA b insert_point= menu_dat.val -1]DATAa DATA4`a #Get some information about the destination Block[DATAL` #We are examining only the first curve of the block, and are assuming thatDATAP`` # the key positions and their times are the same for each curve in the blockDATA8_ #Find the amount of time occupied by the source sliceDATA` _ source_ptloc= ipo_temp_curves[0] #Again, this version assumes all slices are the same lengthDATA ^ trips_s = source_ptloc.pointsEDATADP^ start = trips_s[1] #Remember the bzt[0] is the dummy at frame 1DATA^ end = trips_s[-1] DATAXp] source_length = end.pt[0] - start.pt[0] #This should be the time occupied by the sliceDATA0]= bDATA\ if use_slider:DATA\ insert_here=insert.valDATA`\ else:DATA$\ insert_time=trips_d[insert_point]DATA [ insert_here=insert_time.pt[0]DATAp[forDATA0[ EEDATA`Z is_equal, equal_pos, next_key,last_key, next_pos, last_pos = slider_check(trips_d,insert_here)DATA`Z if use_slider:DATA Z if is_equal:DATAY insert_point=equal_posheDATAY use_slider=0DATA@Y at_loc=insert_point DATAY if use_slider:DATAX mDATA@PX if is_equal: #Slider is at a Key value, use the key valueDATAX insert_point=equal_posDATA<W elif not next_key: #An append beyond the last dest keyDATAPW shift_d=0DATAW at_loc= -1 EDATAV if shift_d:nsDATA<`V at_trip = trips_d[insert_point] #the INSERT POINT bztcuDATA<U offset = at_trip.pt[0] #and the insert keyframe time =DATAHpU if next_key and last_key: # This is an insert into the dest curveDATA,U insert_last= insert.val+source_lengthBDATAHT if next_key >= insert_last: #The paste fits between two dest keyserDATAPT shift_d=0 DATAT offset= insert.valDATAS insert_point=next_posEEDATA pS else:REEDATA S offset= insert.valfDATAR insert_point=next_pos =DATAR else:DATA@R offset= insert.valceDATAQ insert_point=last_pos[DATAQ at_loc=insert_pointliDATA`Q else:eDATA0Q insert_last=insert_time.pt[0]+source_lengthO DATA P if next_key >= insert_last:DATApP shift_d=0temDATA$/ at_trip = trips_d[insert_point]DATAp/ offset = at_trip.pt[0].pDATA 0P weld_z=1DATA0/ else:DATA$. at_trip = trips_d[insert_point]oDATA. offset = at_trip.pt[0].pDATA@. DATAT- normalize_n_offset() #Normalize the scratchpad times, and then insert the timesoDATA<@- #these keys will exist in the destination curveDATA- if shift_d:ripDATATp, shift_dest(insert_point) #Shift the portion of the destination curves, which willDATA<, #be changed by insertion of a new segment from 'Temp'DATAH+ paste(at_loc, weld_z) #Do the final paste, and then clean up thingsDATA@+ t(DATA+def error():urvDATA * global col_r,col_g, col_b iDATA p* col_r=1DATA 0* col_g=0DATA ) col_b=0DATA) Redraw()DATAp)neeDATA )def msg_green(): # DATA ( global col_r, col_g, col_bEDATA ( col_r=0DATA P( col_g=1DATA ( col_b=0DATA' Redraw() exDATA' laDATA@'def msg_white():scrDATA$& global col_r, col_g, col_b DATA & col_r=1DATA `& col_g=1DATA & col_b=1DATA% Redraw()DATA% _bzDATAP%def run_process():EDATA($ global source_ipo, dest_ipo, string7l_DATA $ invalid=1]DATAp$t[mDATA0$ if toggle.val:DATA# if not group:DATA # string7="No Group Defined!"rDATA `# error()DATA# return invalidDATA" elif menu_from.val<1:REEDATAp" string7="No From Value!"DATA 0" error()DATA! return invalidDATA! elif menu_thru.val<1:DATA@! string7="No Thru Value!"DATA ! error()DATA  return invalidDATA`  elif not use_slider:DATA if menu_dat.val<1:DATA@ string7="No At Value!"sDATA  error()DATA return invalidyDATA p num=0DATA( for size in range (len(group_list)):DATA pair=group_list[num]DATAp source_ipo=pair[0]rcDATA  dest_ipo = pair[1]DATA invalid=validate()DATA if invalid:DATA@ return invalidmDATA num=num+1DATA num=0DATA(` for size in range (len(group_list)):DATA pair=group_list[num]DATA source_ipo=pair[0]5DATA0 dest_ipo = pair[1]ͼDATA execute()DATA num=num+1REEDATAp DATA0 else:dDATA if not use_slider:JDATA if menu_dat.val<1:=DATA@ string7="No At Value!"DATA  error()DATA return invalidDATA` if menu_from.val<1:DATA string7="No From Value!"DATA  error()EDATA return invalidDATA0 elif menu_thru.val<1:cDATA string7="No Thru Value!"DATA  error()hDATAP return invalidDATA elif menu_d.val<1:DATA string7="No Dest IPO!"DATA p error()EDATA  return invalidDATA elif menu.val<1:DATA string7="No Source IPO!"DATA @ error()tDATA return invalid sDATA source_ipo=menu.val-1DATAP dest_ipo = menu_d.val-1EEDATA invalid=validate()DATA if invalid:EEDATAp return invalid )DATA 0 execute()DATA  refresh()DATA  refresh()DATA` string7='DONE!'REEDATA  msg_green() DATA  invalid=0.DATA return invalid rDATAPdef retry():DATA trDATA invalid=run_process()DATA if invalid:DATA0 if warn_keylength:DATA  returnDATA  refresh()DATA` invalid=run_process()DATA ipo_s=Ipo.Get()REEDATA for ip in ipo_s:ceDATAp Ipo.Recalc(ip)on.DATA0 DATA Register(draw, event, bevent)DATA get_ipos()oDATA`ockDATA ############################REEDATA ############################DATA 0############################DATA ############################d.vDATA ############################REEDATA @############################REEDATA ############################DATA VDATAp DATA0 TXd MTXMaterial List @ 0p@ @ ,DATA@  o,DATA  @ `o,iptiDATA P o st| DATAP  nreenDATA  P n*reenDATA ` @n2767DATA`  m<FREEDATA  ` m reenDATA p  m<l DeDATAp  lreenDATA p pl"nvmaDATA l!0]DATA0k*nvmaDATA0@k2Ta;DATA0j4FREEDATA@`j1reenDATA@i1reenDATA@piE2767DATAPi;reenDATAPhpenDATAP`hnvmaDATA`hst| DATA`gst| DATA`pge asDATAp0greenDATAp f<reenDATA ppfALSDATA f<FREEDATA0e stoDATA0`eor rDATA0d2lsnDATA@d6FREEDATA@ d.s asDATA@c5refeDATAPPc%rickDATAPb2h,nDATAPb#aryDATA`b9reenDATA`aDATA`Pa6st| DATA0`3ockDATA0~`, laDATA~~0_;DATA~@~~@`2767DATA@~}~P_.reenDATA}}@~^;bluiDATA}P}}^ 0]DATAP}}}^1 #;DATA}|P}]7reenDATA|`|}`]2767DATA`||| ]2767DATA|{`|\<DATA{p{|p\ DATAp{ {{\<Ta;DATA {zp{[ itsDATAzz {P[)st| DATAz0zzZ* redDATA0zyzZ4FREEDATAyy0zZ:st| DATAy@yyY DATA@yxy`Y<st| DATAxx@y Y st| DATAxPxxX<----DATAPxxx@X7reenDATAxwPxW1FREEDATAw`wxW DATA`www W8FREEDATAwv`wV1denDATAvpvwPV.DATApv vvU%metaDATA vupvU5FREEDATAuu v0Uits DATAu0uuT5nds DATA0utuPT1reenDATAtt0uS/e skDATAt@ttS*goodDATA@tst S9ps oDATAss@tR st| DATAsPssRreenDATAPsss0R< DATAsrPsQreenDATAr`rspQ<----DATA`rrrQ7olouDATArq`rP)reenDATAqpqr0P4<`DATApq qqO ditDATA qppq`O;reenDATApp qN:FREEDATAp0ppN+tersDATA0pp N7reenDATA0oThe following are the materials included in DATA0`othis archive, with a short description, and --DATA ousage tips:DATAneenDATA,nNumber of materials in current archive: 45DATA@n --DATA@m--------------------------------------------------------------DATA mMETALS (13)DATA@ m--------------------------------------------------------------DATA lShiny Gold Gold with an envmapDATA$plShiny Silver Silver with an envmapDATA$lShiny Brass Brass with an envmapDATA,kShiny Bronze Reddish bronze with an envmapDATA4@kShiny Black A blueish-black metal with an envmap nDATA8jBlack Metal A black metal that looks good if a lamp goDATA4`j is reflected off it, especially in animations DATA4iShiny Chrome A highly reflective metal with enmapDATAHpiColour Chrome A nice coloured metal, similar to the previous materialevDATA<iRough Gold Similar to Shiny Gold, but with a rough surfaceDATAh and no envmapenDATA`hDull Silver same as aboveEDATAhDull Brass same as aboveEEDATAgDull Bronze same as aboveEEDATApgDull Black same as aboveEEDATA0gDATA@f--------------------------------------------------------------DATApfSTONES and MINERALS (16)1EDATA@f-------------------------------------------------------------DATA eStone A simple stone materialDATA `eAsphalt Good for roads, etc.DATA4dClay Good for stone, clay, and similar materialsnDATA8dGlazed Clay #1 As its name says, two types of glazing,DATA0 dGlazed Clay #2 adjust the colours as necessaryDATA8cRed Brick A rough, red brick material, if you prefer5DATA(Pc not to use an image map of bricks5DATA4bRough Marble White marble with black veins, rough,nDATA$b adjust the colours as necessaryDATA<bSmooth Marble Exactly same as the previous one, but with W DATAa a smooth, shiny surfaceDATA8PaGreen Marble A marble material with different settingsDATA4`Red granite As its name says, a red, granitic rockDATA `Agate Coloured, layered agateDATA<_Rough Ruby Not faceted, rough, somewhat transparent ruby,DATA@` with an envmapnDATA0P_Milky amethist Smooth surfaced, milky amethystDATA<^Lapis Lazuli Also known as lapis or lazurite, a bluish rockDATA$^ composed of several minerals767DATA4^Precious Opal Precious opal with a play of colourenDATA8]Turquoise A grenish variety of turquoise in its brown DATA`] matrix rockDATA ]DATA@\--------------------------------------------------------------DATA p\NATURAL (5)DATA@\--------------------------------------------------------------DATA [Brown Leather As its name saysDATA,P[Orange The outside surface of an orangeEDATA,ZApple A green apple, with some red spotsEDATA8ZCherry Wood A warm coloured wood, similar to cherry15DATA<ZOak Wood You guessed it! A wooden material similar to oakEDATAYeenDATA@`Y--------------------------------------------------------------DATA YSYNTHETIC (6)DATA@X------------------------------------------------------------DATA8@XPC Plastic Couldn't find a better name for it, this isDATA4W the yellowish, grayish plastic most PC housesenDATAW are made ofDATA< WShiny Plastic A very simple material, very shiny plasticDATA4V Change its colour as needed, you can even addenDATA0PV an environment map to it, but make sure itDATA(U doesn't end up looking like metal5DATA8UBlack Plastic This is a black, rough surfaced plastic5DATA 0UBlack Rubber As its name saysDATA8TGlass A glass material with an envmap, it depends a5DATA4PT lot on the background whether it looks good, DATA0S unfortunately, the blue/white sky used hereDATA,S doesn't make it look like a good glassEDATA< SGolf Ball This texture makes golf ball-like bumps on theEDATA R objectEDATAR DATA@0R--------------------------------------------------------------DATAQMISC - everything else (5)DATA@pQ---------------------------------------------------------------DATA8QTextile #1 A textile-like material, change its colour DATA,P as needed. This one is jeans-colouredEEDATA80PTextile #2 Similar to the previous one, this one's 15DATA O surface is a dit differentDATA<`OColoured Cloth This is a funny, multicoloured textile clothDATA<NPotter's Wheel I couldn't find a better name, it's sort ofEDATA,N like clay, modelled on a potters wheel.DATA8 NOld Paper This is an aged, yellowish paper (parchment)TXdMPL TXText.001 0M0M0M0M`DATA0ML.txtDATALxteTXdPL#MTXWelcome! L@9LL""DATALK)+FREEDATAK`KL8+ 1.0DATA`KKK0@ DATAKJ`K 8,for DATAJpJK7.}DATApJ JJp7DATA JIpJ07ZDATAII J64 DATAI0IIP62eenDATA0IHI57 DATAHH0I5er.nDATAH@HHP5 DATA@HGH44st| DATAGG@Hp49assiDATAGPGG 4er.nDATAPGGG3 DATAGFPGp37ADATAF`FG03UsagDATA`FFF2+FREEDATAFE`Fp2&ng oDATAEpEF2,reenDATApE EE10eenDATA EDpE@1% on DATADD E0.lowiDATAD0DD0entsDATA0DCD00- to DATACC0D/)likDATAC@CCp/reenDATA@CBC/.reenDATABB@C.(ou wDATABPBB`.{DATAPBBB-7reenDATABAPB-2reenDATAA`AB-1DATA`AAA,/ oDATAA@`AP,/DATA@p@A+-DATAp@?@+, namDATA??p@0+.reenDATA?0??* DATA0?>?*reenDATA>>0?0*2reenDATA>@>>)5reenDATA@>=>P)0reenDATA==@>(0l maDATA=P==(. DATAP===(7DATA=<P='6766 DATA<`<=0'7DATA`<<<&DATA<;`<&7as mDATA;p;<&4endeDATAp; ;;%:reenDATA ;:p;@%$DATA:: ;%reenDATA:0::$st| DATA0:9:p$DATA990:0$.huDATA9@99#st| DATA@99#reenDATA,)Blender Material Archive (as of 08/13/2001)DATA,8-------------------------------------------DATA0@eenDATA0 8This is an archive of materials for Blender,lsDATA07using only procedural textures, so no externalDATAp7images are needed. DATA07nvmDATA86You are expected to be able to work with environment15DATA4P6maps, to the reflective materials in this archive.DATA85If you aren't familiar with them, see the tutorials at:DATA5http://www.blender.nl5DATAP5eenDATA84Also, you may need to tweak the size settings of the15DATA<p4textures, modifying them to suit the object you assigned EDATA 4the material to.eenDATA3DATA8p3-------------------------------------------------------DATA03Usage:aDATA,2To import a material into your own project:DATA(p21. Open the .blend you are working on.DATA022. Press Shift-F1 to open the Append window.DATA413. Navigate to the folder containing the archiveeenDATA(@1 (this .blend file), and click on it.5DATA004. This will open the .blend, allowing you to DATA0 browse its contents.5DATA0005. Click on the folder marked Materials, and EEDATA,/ click on the material you would like to DATAp/ import, and press Enter. DATA0/6. The material has now been appended to your DATA,. file. Simply assign the material to any1DATA`. object you want.enDATA8--------------------------------------------------------DATA4-NOTE: Some of the materials have environment maps.hDATA4-For these to work properly, you must first importDATA0,the material, then assign it to an object, and DATA0P,remember the object's name. Go to the material DATA0+buttons, select the envmap texture, go to theDATA0+texture buttons, and type in the name of theDATA00+object in the "Ob:" field. Remember, the case DATA *of the letters is important.s DATA*hisDATA40*ALSO NOTE that in this material archive, I do not DATA8)have a different envmap for every obect that has one. DATA4P)This is to conserve rendering time when viewing hiDATA4(this archive, all materials use the same envmap.eenDATA0(If you import more than one material into yourDATA8(project, make sure that each material has a *different*DATA8'envmap set up properly, and make changes if necessary.cDATA80'-------------------------------------------------------DATA& thDATA8&I would like to continue expanding this archive as muchDATA8&as possible, and offering it for free to the Blender15DATA<%community. So feel free to email me any material you wouldEDATA(@%like, this will be much appreciated.ny DATA%eenDATA$Contact me at:DATAp$zsoltst@freemail.huDATA0$ommDATA#Author:DATA#Zsolt Stefan, 2001nTXd#PLTXText " p!p! ,3DATA"`"p / LibDATA`"""0 reenDATA"!`"M@reenDATA!p!"0M= DATAp! !!p :reenDATA ! p!@Mo acDATA  !0MreenDATA0p Welcome to the Blender materials Library, v1.01DATA0 elcDATADMIn the 2 windows below you will find Zsolt's notes on how to useDATA@0Mthese materials in your own projects, as well as descriptionsWeDATA<p of some of the materials that he provided for the library.DATA@MeenDATA0MIain@diorama.co.uknGLOB KGDNA1BiSDNANAME*next*prev*first*lastxyzwxminxmaxyminymax*newid*libname[24]usflagpadid*idblock*filedataname[160]totcurvecurblocktypeshowkeypostotelemtypert*data*refkeyelemstr[32]elemsizecurvalblock*ipo*fromtotkeyslurphactkey**scripts*flagactscripttotscript*linelenblen*nameflagsnlineslines*curl*sellcurcselc*undo_bufundo_posundo_len*compiledsizeseekdrawzoomholdclipstaclipendnetstanetendlensdrawsizehololenhololen1scriptlink*anim*ibuf*mipmap[10]oklastframelastqualitytpageflagtotbindxrepyreptwstatwendbindcode*repbind*packedfiletexcomaptomaptonegblendtype*object*texprojxprojyprojzmappingofs[3]size[3]texflagcolormodelrgbkdef_varcolfacnorfacvarfac*handle*pname*stnamesstypesvars*varstr*result*cfradata[32](*doit)()(*callback)()versionaipotypedata[16]*ima*cube[6]imat[4][4]stypenotlaycuberesnoisesizeturbulbrightcontrastrfacgfacbfacfiltersizenoisedepthnoisetypeimaflagcropxmincropymincropxmaxcropymaxxrepeatyrepeatextendframesoffsetsfrafie_ima*nor*plugin*coba*envfradur[4][2]modetotexenergydistspotsizespotblendhaintatt1att2bufsizesampshadspotsizebiassofttexactshadhalostep*mtex[8]layspecrspecgspecbmirrmirgmirbambrambbambgambemitangspectraalpharefspeczoffsaddkfacharseed1seed2mode2flarecstarclinecringchasizeflaresizesubsizeflareboostrgbselpr_typeseptexpr_backpr_lamppad1*renfrictionfhreflectfhdistxyfrictdynamodename[255]namenullscaleselcolexpxexpyexpzradrad2smaxrad2*mat*imat*bbelemsdisp**mattotcolloc[3]rot[3]wiresizerendersizethreshvec[3][3]alfas[3][2]h1h2f1f2f3hidevec[4]s[2]mat_nrpntsupntsvresoluresolvorderuordervflaguflagv*knotsu*knotsv*bp*beztnurb*bevobj*textoncurve*path*keybev*orcopathlenbevresolwidthext1ext2spacemodespacinglinedistshearfsizexofyof*strfamily[24]*vfontmaxrcttotrctadrcodevartypetotvertipoextrapbitmaskv1v2v3v4punoedcodeuv[4][2]col[4]no[3]transptile*tpage*clutdef_nrweight*dwtotweightreserved1co[3]co[2]effect*mface*dface*tface*mvert*dvert*mcol*msticky*texcomesh*oc*sumohandletotfacesmoothreshsubdivcubemapsizertfpntswtypeutypevtypew*defmax**obname[32]partypepar1par2par3parsubstr[32]*parent*track*action*posenetworkdefbase*lifedloc[3]orig[3]dsize[3]drot[3]quat[4]dquat[4]obmat[4][4]parentinv[4][4]colbitstransflagipoflagtrackflagupflagipowinscaflagscavisflagboundtypedupondupoffdupstadupendsfctimemassdampinginertiaformfactordummy_1rdampingsizefacdtdtxactcolpropsensorscontrollersactuatorslbufportbbsize[3]dfrasactdefgameflaggameflag2anisotropicFriction[3]constraintsmistypehorrhorghorbhorkzenrzengzenbzenkambkfastcolexposuregravityactivityBoxRadiusskytypemisimiststamistdistmisthistarrstargstarbstarkstarsizestarmindiststardiststarcolnoisedofstadofenddofmindofmaxhemiresmaxiterdrawtypesubshootpsubshootenodelimmaxsublamppamapamielmaelmimaxnodeconvergenceradfacgammasxsycfraefraimagesframaptoframelenblurfacedgeRedgeGedgeBfullscreenxplayyplayfreqplaymaximsizexschyschxaspyaspxpartsypartssafetyborderwinposplanesimtypebufflagqualityscemodealphamodedogammaosafrs_secedgeintpostmulpostgammapostaddpostigammabackbuf[160]pic[160]ftype[160]movie[160]*camera*world*setbase*basact*groupcursor[3]*fcam*ed*radiozoomblendximyim*rectspacetypeviewmat[4][4]viewinv[4][4]persmat[4][4]persinv[4][4]viewquat[4]perspviewlocalviewlayactscenelockaroundcamzoomgridnearfarmxmymxomyopr_xminpr_xmaxpr_yminpr_ymaxpr_sizexpr_sizeygridlinesviewbutpr_facxpr_facy*bgpic*localvdverthormaskmin[2]max[2]minzoommaxzoomscrollkeeptotkeepaspectkeepzoomrowbutv2d*editipoipokeytotipopinbutofschannelmenunrlockcursenscuractmainbmainbo*lockpointexnrtexfromshowgrouprectxrectycurymodeltypescriptblockpad2*filelisttotfiletitle[24]dir[160]file[80]ofssortmaxnamelencollums*libfiledataretvalmenuact(*returnfunc)()*menupoopsvisiflag*imageimanrcurtileleft*texttopviewlinesfont_idlheightpix_per_linetxtscrolltxtbar*py_draw*py_event*py_buttondupflagsavetimetempdir[64]fontdir[64]renderdir[64]textudir[64]plugtexdir[64]plugseqdir[64]pythondir[64]sounddir[64]versionsgameflagsvertbaseedgebaseareabase*scenestartxendxstartyendysizexsizeyscenenrscreennrfullmainwinwinakt*newvvec*v1*v2*v3*v4*full*headqueue*hq*winqueue*wqwinmat[4][4]headrctwinrctheadwinwinheadertypebutspacetypewinxwinyhead_swaphead_equalwin_swapwin_equalheadbutlenheadbutofscursor(*headchange)()(*winchange)()(*headdraw)(void)(*windraw)(void)(*headqread)()(*winqread)()spacedatauiblocks*curscreendisplaymodefileflagsname[40]*se1*se2*se3nrdone*stripdatadir[80]orxoryname[80]*newseqstartstartofsendofsstartstillendstillmachinedepthstartdispenddispmulhandsize*strip*curelemfacf0facf1*seq1*seq2*seq3seqbase*seqbasepmetastackbuttypestaendlifetimetotpartseednormfacobfacrandfactexfacrandlifeforce[3]dampnablavectsizedefvec[3]mult[4]life[4]child[4]mat[4]texmapcurmultstaticstep*keysheightnarrowspeedminfactimeoffs*obpremat[4][4]postmat[4][4]vec[3]faclenoalphaoeff[2]iterlastfralimbbaseeff[3]effg[3]effn[3]memslowtotytotxxyconstrainttotdefdef_scrolllimb_scrolldxdy*idlinkfasesubfasemouse_move_redrawimafasedirslidirsli_linesdirsli_sxdirsli_eydirsli_exdirsli_himaslifileselmenuitemimasli_sximasli_eyimasli_eximasli_hdssxdssydsexdseydesxdesydeexdeeyfssxfssyfsexfseydsdhfsdhfesxfesyfeexfeeyinfsxinfsyinfexinfeydnsxdnsydnwdnhfnsxfnsyfnwfnhfole[128]dor[128]file[128]dir[128]*firstdir*firstfiletopdirtotaldirshilitetopfiletotalfilesimage_sliderslider_heightslider_spacetopimatotalimacurimaxcurimay*first_sel_ima*hilite_imatotal_selectedima_redraw*cmapotypedataold*poin*oldpoinresetdistlastval*makeyqualqual2targetName[32]toggleName[32]value[32]maxvalue[32]materialName[32]damptimeranglerangeaxisdelaypropname[32]matname[32]axisflag*fromObjectsubject[32]body[32]pulsefreqtotlinks**linksinvertfreq2str[128]*mynewinputstotslinkspad3**slinksvalvalopad5time*actblendinprioritystridelengthstrideaxisreserved2reserved3sndnr*soundmakecopycopymadepad[1]*melinVelocity[3]localflagforceloc[3]forcerot[3]linearvelocity[3]angularvelocity[3]addedlinearvelocity[3]anotherpad[4]butstabutendminvisifacminloc[3]maxloc[3]minrot[3]maxrot[3]distributionint_arg_1int_arg_2float_arg_1float_arg_2toPropName[32]*toObjectbodyTypegoaccellerationmaxspeedmaxrotspeedmaxtiltspeedrotdamptiltdampspeeddamptotportactport*portals*campos*camframe*dynamesh*texmeshtotcamtotfra*sectoroldloc[3]speed[3]oldloc1[3]loc1[3]speed1[3]startloc[3]startrot[3]rotspeed[3]oldimat[4][4]frictrotfrictaxsizefrictfacaeropadf*sensors*contact*collision*floor*oldmeshtotsensactsenstimerdflagstate[4]colloc[3]floorloc[3]links*sample*snd_soundvolumepanningattenuationpitchmin_gainmax_gaindistancechannelspad[7]gaindopplerfactordopplervelocitynumsoundsblendernumsoundsgameengine*gkeyokeygobjectgkey*activechildbaserollhead[3]tail[3]parmat[4][4]defmat[4][4]irestmat[4][4]posemat[4][4]bonebasechainbaseres1res2res3chanbase*achan*pchanactnrenforceoffset[3]orient[3]roll[3]*tartoleranceiterationssubtarget[32]zminzmaxTYPEcharucharshortushortintlongulongfloatdoublevoidLinkListBasevec2svec2ivec2fvec2dvec3ivec3fvec3dvec4ivec4fvec4drctirctfIDLibraryIpoKeyBlockKeyScriptLinkTextLineTextPackedFileCameraImageanimImBufMTexObjectTexPluginTexCBDataColorBandEnvMapLampWaveMaterialVFontVFontDataMetaElemMetaBallBoundBoxBezTripleBPointNurbCurvePathIpoCurveMFaceMFaceIntTFaceMDeformWeightBoneMDeformVertMVertMColMStickyMeshOcInfoLatticeLBufbDeformGroupbActionbPoseLifeWorldRadioBaseRenderDataSceneGroupFreeCameraBGpicView3DView2DSpaceIpoSpaceButsSpaceSeqSpaceFiledirentrySpaceOopsSpaceImageSpaceTextUserDefbScreenScrVertScrEdgeScrAreaFileGlobalStripElemStripPluginSeqSequenceEditingEffectBuildEffPartEffParticleWaveEffDeformLimbIkaOopsSpaceImaSelImaDirOneSelectableImabPropertybNearSensorbMouseSensorbTouchSensorbKeyboardSensorbPropertySensorbCollisionSensorbRadarSensorbRandomSensorbRaySensorbMessageSensorbSensorbControllerbExpressionContbPythonContbActuatorbAddObjectActuatorbActionActuatorbSoundActuatorbSoundbEditObjectActuatorbSceneActuatorbPropertyActuatorbObjectActuatorbIpoActuatorbCameraActuatorbConstraintActuatorbGroupActuatorbRandomActuatorbMessageActuatorSectorbSamplebSoundListenerSpaceSoundGroupKeyObjectKeyGroupObjectbArmaturebPoseChannelbActionChannelSpaceActionbConstraintbKinematicConstraintbTrackToConstraintbRotateLikeConstraintbLocateLikeConstraintbFollowPathConstraintbRotationConstraintTLEN  0Ptdl PPx4@H<0P H  L ,@x(D($p@Xd @l8(,@0,HhH,(lDLP< <@Lx0848l@0pP<`,,,,STRC                     !"# $%&'()*+,-./0 123 456789:; < =>2 !?@ABCDEFGH%I"#J$K$LMNOPQRSTUVW X%YZ[\&]'^_`abcdefghijklmn( opqrs tuvwx yz)ghi{*|)}+ &]"~"ABMN'#/m%"~(*+,fghijAB%%I-%.:fghiYZ%%.I/0 X111/23 %.ed4 5666 5 4 7&3  & &%8. de/4 /!9995 4 "#$%&'(  )#:*+,-./;*+,-./< 01234 5 6=78>?=9:;@<2A{ghiB=C3 > %. ? @ A@B?CADBECFDG H&IedJKLME NOPQ5R%FS&TGGGU &NVWXYZ&[&\%83H]I^  > _ `.Jabcddefghijklmnopqrstuvwxyz{|}~I     HFF1 K+f%%ILMMM&]N/x=O&KO"~ MPQ L HNgIR "~'^=S*SSEc&     RST  !"UUU#T$ % &%&'()*+,;VVV-.T$/+(0 123456789pWWWT$/:XXXY;<=>?@ABCDE|FG HIZ ZZT$ J(K 1[[[T$"L:(MN,\\\OPQR2+STUVW X Y Z][\]^_`abcdef}^ g h iOjklmnopqrstu____v w```_x_ya&aa_x_y_z_{^|}~#        b c$KcccMd dd/ce  opsz tvw x yf fff /dc%Oj#Jefff g   hhhiii/jjj'klllkmm &VWXYn nn/oV %&[WXYmRp pp qNqq=       !"#$%r&r'()*+,-./0123s4s567$8 Ht ttU9:; < =uU>?v:wU.@xABCDEyUFGzUHI:{UJKL|UM}UKNOP~&QRS9TUV:U W&XYZP[\V9]:^U W_`abc& HdUefgh;ij klmno c&CpUqrOj&UF& stbeuvwx Uyz&{SL|}~ UyzPN&R:S [9U &Q y& F   'CCdghiJ- yghi .&&& CCCF ' X %2 T$lk,:UVWXY&[&\%bcddefghiklmnwx& P  >>>>[ U8bddfgh    dfhU;I % U;H  ,T$H](;  %9Uc&&;i&;&;&   ENDB