Modify BitmapExpression.Pixel values from the outside

All topics about ZGameEditor goes here.

Moderator: Moderators

Post Reply
User avatar
Ats
Posts: 603
Joined: Fri Sep 28, 2012 10:05 am
Contact:

Modify BitmapExpression.Pixel values from the outside

Post by Ats »

Hello,

I'm struggling with a stupid problem: I'm trying to set the Pixel.R G B A of a BitmapExpression, but from the outside.
So some event in a model can trigger the change of the colors. Something like

MyBitmapExpression.Pixel.R = rnd();

Is it possible?
And will it run smoothly if I change the alpha on each frame for a texture appearing effect?

Thanks!

Edit:
MyBitmapExpression.Expression = "Pixel.R = rnd();" ???
User avatar
VilleK
Site Admin
Posts: 2274
Joined: Mon Jan 15, 2007 4:50 pm
Location: Stockholm, Sweden
Contact:

Re: Modify BitmapExpression.Pixel values from the outside

Post by VilleK »

Hi,

It won't work to change the expression at runtime (all source code is built to binary code and there is no runtim eval function or similar), but what you can do is call "@RefreshContent(Component : MyBitmap);" (or use the RefreshContent component). This will make the bitmap run its producers again so if you do that after modifying some global variable that the BitmapExpression use then it will take effect on the bitmap.

Though if you want to smoothly animate alpha then it is easier to paint the bitmap and animate the Alpha of a Material or a RenderSetColor component.
User avatar
Kjell
Posts: 1876
Joined: Sat Feb 23, 2008 11:15 pm

Re: Modify BitmapExpression.Pixel values from the outside

Post by Kjell »

Hi Ats,

What are you trying to do exactly? Something like this perhaps?

Code: Select all

<?xml version="1.0" encoding="iso-8859-1" ?>
<ZApplication Name="App" Caption="ZGameEditor application" CameraPosition="0 0 0.5" FOV="90" FileVersion="2">
  <OnLoaded>
    <ZExternalLibrary ModuleName="opengl32">
      <Source>
<![CDATA[//

void glAlphaFunc(int func, float value){}
void glDisable(int cap){}
void glEnable(int cap){}]]>
      </Source>
    </ZExternalLibrary>
  </OnLoaded>
  <OnRender>
    <UseMaterial Material="MyMaterial"/>
    <ZExpression>
      <Expression>
<![CDATA[//

glAlphaFunc(0x0203, frac(App.Time/4)*2);

glEnable(0x0BC0);
@RenderNet();
glDisable(0x0BC0);]]>
      </Expression>
    </ZExpression>
  </OnRender>
  <Content>
    <Bitmap Name="MyBitmap" Width="256" Height="256" Filter="1">
      <Producers>
        <BitmapFromFile FileFormat="1" DataWidth="256" DataHeight="256">
          <BitmapFile>
<![CDATA[78DA9CF755541BCC17C08B060D56285A3C2DC1ADC51D4AF9F0E2AE15AC90067777772F8450DC5D82BBBBBBBBBBEBE9FFAC232FF7E1DEBB67CDCBCCACBDF66F66B6BDCEBDAE01DECA49C94A0190900100A47F03F0BA08900060A0A303D1D130804020262606160ED11B1C6C6C1C3202423C222A721035153925E57B5A7686F734AC604A4A463E26D64F1CDCDCDC200601117E4E61762E6ECEFF2941C2C4C4C4C1C6217DF38694F303E507CEFF9FE5B50D808FF13F9B50906800C8F84828F848AF5D00D03F3BD190FE4F01FC5F82848C828A860EC4C0C4C2FE77A0E62D00190905051915050D0D15F5DFAEC7BF7D002A3E1AC1070E717442951F401A1B224E9F980C0CF0978A7662D5F1335AAE9FB6BE985824EF48C9C8E9E819189998B97978F9F8050425FE9394929691955353D7D0D4D2D6D13532363135FB656E6167EFE0E8E4ECE2EAE71F1018141C121A1B179F909894FC2725332B3B27372FBFA0B0B2AABAA6165157DFD0D1D9D5DDD3DBD73F303139353D333B37BFB0BEB1B9B5BDB3BBB77F707E7179757D737B77FFF03FAEFF71FEDFF2FF910BFF1F17322A2A0A2AF07F5C48C84EFF3B808F8AF681039D405C05F8C3869086D30783E84B4C46453B26984BF58CF8A7ED3816092DF73ADDF9FFD0FE4FB2FFEFC07CFFFF22FB7FC0FE5FAE05000E0AD2BFC743C1078801AE53542489976CC22489AA012A9244388C397F717F213153A40E4278DED8D910BDBF5A6933DB3FD4078534A9148B5B317F914C65461752B7DCF616863D44261FEAE3BC7BC7A71B6E2B73B124A7CFC54570DC7E7DA83202EFB66DC96BE9E6560BE49089AA5EAF85AD3D8024944AD93B75AB276ADEE81A94F0C3D57F3515BF75DE85A75944166DCE2B1313B49BB6845DF6DFA79F65E796E4DF535D8920EB180572D156B2FE12AC8221DDCDB0AD8671CF21BD2563D7035D0CFDF03ACDF2B9376DCA7CEC8EB0A157A1AB8BAB1AE97A9178E2D0A95C3E48EADD4DC89298F75479E1612FFB99C0BE9B610117FA838D22CC0B9957DBF51A8ADAD7F7B80D23779197A6441080EECD850847CB5F01D79AEAAEEEE68931554B70DF1209222194FF880A4E9A0F28E2D818339B10AE39B7ABFF532AFA4F29A5AB054A8314ED6DC95B404E9B25469FF05B73DBA8E481C457C0D78AB5A1800768D48ED1BD976EF80182F52CF9882E149356BBAB0AC7E11560F60A28D3A5C69EFC009FDFE6F81B4367FCB1DA2CCA75EEDC21533CBB9D669763A96BF5EE46AC4437D2DF8E6C23A61F63D17533D4F0AA3A94698135633E7BD90F6659549F3B31E6BDDBA4DECA96EACA85B7AD7F0FC081C377911BBE11E63FA27E5C3641B9043EB124F5284A33CC79A9C9497E9E3D3B0C983E138BE414F4149B6818D8B8D29C2F5E4CD7F71B71233F1AA642BD2509FD3A31F6BEB08172D5F4DCE1C10C9B15EB15A0FA6F8614E1587369E77AC0E96BFE3813EAC53C8D5E11AB2CA9CE3DA886EAB2D8C1183363823558BBD028639D917D228934455643AE1A0D06AA284280676D7C5E9BCB62BA3B3C4AC16C182C64BE536EE99C4A837F9F22E46325196B9DF81034031D3BC731307142D90AD75A247EEA5DD252CFC59E689E2A9EE9F818458EE08D1813558C51BCDE315FA487D93F07D4ECF087CFC4A6F5EE4F25D64F2847ADEBA10390662595CFA702327366981751E7C5CB8ADD851E23BD5D82C711DB9DFDF6342132E0C1E5E660D692118E65698B9DAD73229BBC0413B398B9F2B6D1D27175A3492343ED44B1A457806166AA32A22A79B1DB8AB52AD2BD2EEE3E254C36E557C876FDF4C7D699AF2A78676503623D7F4852C206637B17A35E9A351E1DFFCE926CC864220265BF10BF69BE079E1DEB7D56E987760F7B0467F98041343E57C412AAF00BA14637886688F05AAF1BBBCC0227442DC7CC30EA2ECDDC7047E51510392DC912BB58F1C5805B9E426479EA961DE93DC7C2DF574003CB3745E88249C62B2097E929402BC65355A4E04160395BF7915E8C9D452E466E860696DA3C7815AFA2438E77A616FF6EEC46AF5F2CBA248AAC137CA77861F22D114C41B87F5962E64C3337986F31184DCCEE44F872FB0A286C4827CB44F85D33AAA87F8CD5F3894C169BA86E49E482E8C1BEB98F7F0D414850B8E68BE58856F1607149D2014C9C239CCC71BC1A0EBCF2AE4BFFDB8E2A3B34D8C9276063DF5E26900E31B26256FF1EE434847BE4FD9912EEBC469D5BC96A1F3FF39B7C1FFE8185EBBDB321B7E4F77716F716F53F6D5D8008BB94106E738CC6A39FFBF50A72D30D9ED7D287066311FDA4AA4E9438B87993D7A54652636535540650E8C6374E4CE994A139ED3317560F7E9E03F2E207F4187308CDF2D2CAB76EEA6E8C15EDA0B47983A65D5AD8D6AC24164151458045455E91809954A454442015EE0CD99E5BA8A579ED2DEF47A2BEDA2AC9F7AA7D5F1B11B5D22B7D6D9B0CE1F6F96B69ECE095A0F08DC2166AF5F418220873D890DBF3A436DF2D34D742177A6139C47A7851C5D4B659182DAD3636739F4FC0FD538226B6D826069EC533F2DB03A8E304A79964BDC85D93DBBCFB703FBA3BE649DF54A4765ED27DC96995B22BD6B1CAECB50A2EDBD69E58B1708271B7C87939F0BF020E6722F38C7894EAF71EF2A29E60C1FEBC9D3312CDA363B8C0437DD39C4DB2D374504BBDE58A79475466D4593143E0CC9455439AFAF57D2AD94B6E6947858BC5783E5627385C1D41AFABF21FE7D28153EB213D47C60BD1BDD7C335524D6DED37CE0D0D958361C4FF628A76715891B3E9EC26414FA9E8300C1FEEA416C0EEC218A79A47ABDF881BA556699E886D62C66A53AF85F5896BF6AC68869FD7FA15502796A0D6104E7B234E2C7D5A0E207D412F7264D61C79EBF56FDDC0C270C03D5BA5E8F8C7904E715F165E994101D9700368A6FA90473BB7D5B6B36C0E81D75EF8E39C58247456C2640A7B8C6DC04B70B118BB007B9028C2FBEB795CD46D80956929A24B81EA279BD9AA4DC1BEC23E17DE30445CDC11AB59B66DA7C0C2564777D0F4D68900A845F8852D869E00AFF4DCDBAE9DEC745F87A1A0484B22DBD04284C8AB2B177F4FDB6BB3A7045B6F70588E8282743345E74F02A90CEFB65D1DE198115040F4198367C5D9AD8D57D0C13B48AFE587D089BDBC4D386EB3B6DB2D4A8EB900D36F0566D5231BF4E899978A6CF319040EDB475A8E827B443E346BD6BA5774EE0982EB1C4E4044A7371E7F6641A9BBB4626F86E6C286F1C45544C56530BD898F49AE1910A808B857B27C86FC9D3DCD6B1AFF88C2AFF10BB42DEE73AB60A33942732E326317184111D91C60EF1A70DC607E413B49EB165D36D2E658A0975C0556F2788056B976B50E14EFE4FF3A6E94A9153B32BAE02F9A0AC5194F9163447E5888C25F18CE914FAFEE478A5CF879F405DF2FA2BE9719A38F6CB7597AED981A8A2DDBA0D711B31C821385D557B2FD9E1487034638E2F1F99B9C2FA6B1AF7D22C3DC812D0559B7A3DADE0D9FA34A2F86CC9AC9FB7B0B80B1493B0A55D4FDB1A127BB6DEE841E57A5EF4D0AA250A091236F1FF1908D9845C85276F07EFBC04710CA3155FE72765D84102566A7D06F9CDE4C959DBFF1E337BD34E080FB3B1CCF8A4511A73104194FD91F261707EB1CCF0E44F28ED061F0268C960D705C5171F5DC54AD51E975F13DB87DD9A78E7330C3FF1CBB25EE2F9EA82AA544766FF7ACE4DAB541CC436E87F010FB28D64CA9DA396E670BB3BAE4273A175CFA96AD29689056ADD0F6913445E3A16A0BD4A6BA5F4CAE6502602D6AFA9881EA0BAC15EF2D275AC57776FD88EB9CBB303261D6704FDCC612B81CCB7B3E05B3B94659C9A93168F0AF60C75AECA92068C6F6C2A7FE9BD6E5019163BBE8377C70984A296092BC4F2AA4DD90A65E7B0528ED6B66FAEC38C88C5555B4018CE3546B639C6B275792B525A8894348DF6FFD4B0362CFD26429C49AB4E13FD4918E986B7387520C06B3382B7B6498AD25F50B5DCB9E7C2DFFF9734C093E4E3177A3CCD18AF85B731CE324BBBA5DEAEB0CC82B80FA9F37CDF2BCA8CFBE02A2485032C25F01CCAC23BFFF85F452C85351D53B626A3D164A7EA6014527A72978550EE85CD4FF153059E5B5F7A5DAC2DF4F704BF466F4A9DB4ED531C5CC406318DDBF79C30DFCCF68945780B845BD557793D1738CFAE9CBF39F57405EC08B82E69A58BDEE2AC5D3B79851EF17BCA1249E94D58B4F3222BF295E015F4A28A7217AF675E75FC055DE338AA292A8E9A9B998A0A9472D6E83B491029622D25B697CA6AB18BC1761968C7C1E889EBC07F99A2401E667CD37E0245B9448E9AF6EBEF5AF008BDC3C550BC5BD14651B4DE39B24F49903810E20A35D4DE3B4D55BF30658123974268A67BCA6F91B5BE0977B5B7416BF6A0021C00801CC116C187DD336FBF02354E27D28991EB2505094E31A575AB6DBF7CBD9853A8EB81BEB9BC4E6C825415BF7A49A1E79477B2F21D53FD407CAFE15E6184851CA79E53BE27025300FE0DC33A1E0CE15AA625A172AE491096100F491B5ECA98DF9BAAD1951860E9C1358C498DF461B305752A8775C360ABC4750BABD021E2AC15EA82B77A56716BA0AE1D8B923C261B6C61A8BDB7F158E703107D91539654729C7BF64E7C9DA3652C815EF0F978C070B4359E3FA1B068810EDCB0426B0F0C8ADEB761100710917CBB13DB4AF8D3366093FDA8B79B3860AACEEA703A5ED6CB8A1F960F2D57D95570ACF5A5C2D6E84A5F45170A19B12E3E5674F060A68A30DC5696C5637311143BD809947A046D7E3564A6325F6966F67DB72E5ADF207FC48A54DC530898A0884B0A9D9C944EDC178664C070FBED1E7E00C757BC0772C07A20CD9BFA8D979F78ADAF9527D68C1BD9F85A6EC718709BEF8CA6E4A7DCF486662A855D2BD4EC39D595140960C1472FE631667C15C06E050C61560C09EDADA1581F47D0D232183310813D8180EAFFFA20F92E16A2AFC51FF433033FC37FBDF72DA9B51B10833556695AAB97CDEB471D882665B3F6D9B1FFDF97637427837D62EEEC06DE76FE3F4477B0A83F23EC76CB885F039F79CE6C819F127D7CB58E725371CDCC03329239D84A97CFEF57A94FD3B87D3BB9D8A94F5131EFEE0F5F76A71511BFFBE6B29AE4704BE398B3D45F3890B6E86E3C561926EC372B78387E3221BB89636588D429ED2DB69D39BA39DF641AD24F3112D5EEBDD4431D4DABA28BC020B4089DBF4FDC156A0CCE4533B5DC7923C14CADD99358CD5E8C1879F3E533F4ABC7FB34DB2B3D23323A0FA4EDB510AF005090CF86EC4FFEC5292C59DB949DD3A1B83C5342CE7C6BE3A095A3730EA4C718CE159A9B2DA6695FE54D3E1ADF71E1D05EE6A2F9AF7774DB3E57C267583A969D0B6C8223BF34B56FD81DED26CA2AC830B5BC7B2C87ACA8FA7AFFCD46DF6288B39BA13A5E030FD9ABA448CD5DB3E1D998E5A8A168E6E7B25AC4D6AC89FC2FEE688D08242AF3EE6C3977ABE8B22072D55B249F6D6C3382FE636E3BA61EF7F37E1359137C16AF991FB6C2C5713FB07AB3F0C4D1978FDDE43C131E5A3FFEFEB37EF156749C6A43EF90F1D33ED4FA1313DCCD44446AD1729610FE77416F9FFE94DBCEC13B06D4241883909FBA47B42F44D9909B6E53302F1B0F9ED041C84C7A63463BA3F86403535967231AD517D386D9BFB9EF91FA69F35BBCC672FF4B0834B3594083AE6355F01222CB8072E250E2C7AC1256F46C03158469136B38B170F3358062A63B35290C330649DCFE5BD58440DE16FB3584552E9820FE7CB3D9861C0DB6F212F0EF0D585D951BC858026E59E8176C0521B0ACC52E0B787F6F4A1DD63D5CBA5179796AAFEC8D66414738528447403926AA04B91EAA6957ECBEE0F9CE3B40987D73DBCF5E836CC66A07C542751AE1EBF1EFEB185103236AFBFD80C1B623950470A6068C455B2EB2FD1C9885DD00C34368EC125D3FEEE77C20CCFD99819634715D46F356B8CA8B7A61842357EABB4BC389BB18B42F3374C7FA646815D66A3A6A125B975685CB78898AEB2D7139BC0EE6584FF803F7722F22819C190F971A7E11580B25FB9FC2D9721917F7BB559451C4D8B326E04572F5208A4BBA9DC5FEE52516D8B142445CAEC1635D2FC6EFD1A7679D488CAFC994AD0385A064C0D3B797A3E64CA619C3F88F8617FD2805D6CCE3B69A1C8909C171BE4171E4E20E16D2BE46ABF19BA5BED16A12455E1625F742C2A22B8A1F4A9D365874B82118531C3E5FD53D3EE7BBBF0EBAB120BFE17F3656F85BF9F8CBCED9EEA4A8534620FBF86D08CB199BC8CA2D8CCA5CE3A2ACA13C80049B7E0D6A27E8244EA3FFAE0BD509242754B8FC6B9352809C44375E37927F254B33EBA6A9094863F443860F93826CE9BC8686A668A17DD6D2AF239B31A378770D8A395036835384B117CAC1AD44A589C34EEA212CF1AA91C6F2965DB85F3D458757DA8DF3C93CF7D789F591E203AF6E9D8C59AAF8235A345630D97D4D68B799EC52DAB0166C0DFAB347C5F359E7D561A67F49B9DA1E9722003AB020C8D69A484794A4C5EAE9F802FD8698361F1B6F5D7EDDD5A35D3A7A574AF00C596C41D554E5A61020F5C3C50509E45A22CB90EB9B480135D327C6BD28C4A5735F798ADCDF86AEBA6F4FADAEC6C2A03CACDDF3D991141EB1CC20ED8FC85927FFA308B8CCB3C1DBFD0929375C89B58F5CDC002F26915077AE111DF7360CBD56F1A4DE9B00B26A535D2902DB3DF6FD7CA93ADE1B7D3AF293CD08D38CE4E5F48323723213BA7D71A023FC36551A27EBF9066FE06AB3696E2BC021885B2E2B684ED7C3962165376799641865535E48115CDF17DE36997E8D02EB368CC1E9BC5C97DBD077B25ABBC4EAB0F74EB925223FCDFB3ACD7E01131B3354471AAB2E53D1B26C10A0BFD24E040C6108EAE6025D542249EA53BB75EC7B7F3AF00938337DB83C801B8329DA5E8781528516DD43B75A119F9DAA9BEF4C11B1AA40FA147DBE1D531BB529A661E85CEB35213F827E0448164E3C20CB4280462A6F0570B788A5DF3E150B9D69C4DFD5D3067F0161AEC87B43B1ADB942300DFD02177AF129252A873CAD1C37929B70445119B72B8E1D9A3A69CE46E5693850B197CE6AEF0D69C36FE10EA133D2F5C2B819270BD75A93D9B26CCC63754E6D534C391A0532412D930E05C4361553D2F631C6E3DE06C2CBA51EF457AA83CBFF8F154B94EF3628A8FB50BFFCE670A3ED7ABD6D31A84EAA8DB542BDF6CE426C1CB57B16D202EE2B508F2A68E6F58C94E719F90340353040AADF013E3297F1AEAFA6E6C54468B8BD4ED82CDA168FEE5CDD2D1436D527CB1F3AF3EAB89E28537B32AB19EFBC07D03F4E6BFCB103BD13C8F82CE376DCA4DA573BE91DEF07FD505E48A8A857CA0C34DE03F2BF20A778C14924B12432FFFC8A6C834C8BF268FD16D60683D9E203125CBF66FB3666CC70637455AD6F7BF4EFC05BF4679A2234367BB540DEE2C59303712C146F829AA48DF0BF5C85885500E2745CE643A1B668FAF6EE8976445D6D46832D96D7AC405F69F7A8144D72F63B11C79E21C35F205595F8EBC0B12F82AC15127B1C331A3FC6B9BC03F33F66ECDBC2F1D905CCE95A5467D79109AB22F26EA65DCAC18BB90FBB47F41F7C0CE596A4D5803746BB66A795448CED851D386E584B9CB387CCD6E52181722D1AC5B3BB6FD966773A90DEE4C28C3F047236B54B2C7F6B37293CFB0C6FB93F776917525CD38861BEACA1E3DAF008FD63F0542EACAE909ADAB563BE6483C0CAE5C9200D1DDAE895CD8B8FEFE0C1F02FD6843A078E3621A7957481D25FD8F9ECDED6DA99DEE344F84843C9F1561FB77DE8E2264D2751CCFDF8C7B7A652D220D0E0B1EB5F97FA6AF166D5813BF75687F4C89E8FC3B8A103872BD266D746C880ABD66C1B0FC1E2A4454A7938BAF8F49C1128EBE0908AF758D9C1FE1F2F327AA9DDAF38B0BD31218C458A012C5483FCD44E3BFA64E98BDB3EBE6FC9578D2C4696CA9B84BD60EFA038AD0A4C68FD7FBC2FA91CDD2DB9B5FFB9BA31492A4E2898C8835B0F5EBB6BEAE42EEAACBBB18A8FDFB06E3B7D253D610D3EAF2B36923CCC7817357AE799293C52EDE9FBBF2F1A3165DC6368F88DEF77E7D07FCFB9169763AD456F3D74610CBBF12C8EBD986E8FF0ADE28B9A23CF3911D36669610B601F3B28FA9B8FC09D9CADAC6466088D7AA544520C26E3D2176510F11D1A5D228C9EC1E638086FAD47A39A228F06D109C875311ED7F8F5F7C3698A25F2659310199E41989E2AF8FEE2707ACF289883CC01CCAF01BA915A62A7865A518655F016651FB86191B45B90633337C72A511B1C8A72C7B4A9F45AC5D447CC88877CBB20A192F73ED847C358CDAC50C6DA245B3AE89E7BF94556B05F6D44154A14A4E938E2A55526E01E09332FA9AC2E66C3C2BDC7E52AEADADFC3651F82BE0A5E1186A1F8C1F3AAFE351D0034CB7E7FBF8F5441D6889F1DE7768CD6F4C4520FF908699E9E7A1EDA41EE5704E45439A9A73846CBB23AACF1D4076734C4B3E439B0AAC15A6A6A0DA878FFD9F7B63705F5D44A4634355113D9EC082A2730F60C8151EE7C1CECE90B29EF6A9B0A2E30B14D4866A811C75EB3C228B1E7B2983A8A996B502737E5DEDDCF15677444DA4A83890BD02229727A84F8F846A03C92EAEF55AE02942AB5B3A0D63DCC7663A91281B8DD043AE91F230AFE8C6EFDEB2969F1F6CB94E354ADDD99CD607C368A77C154C2F3345062AE6DA10C3305B5CAEFD945DF8D2F2C8D9A2386D17FB5EA63481EC3B205B1D01B1782FEA0DCFE481D4CD1B7437A1E62F564247CDA21373CB88319899E8B4FD16A2229033A9EAD6A5CCC931089204A79C50BAF96D27C99DFA192E136FF2A9973A4FF4595110ABD74D669D76C9824485F1C46449E6BA63EBC561179A971DB1FBC58E71EB64D769EABA60E2F018B777E7637A2A18765D62A4BC5BE66F3FF1FBDA0B534F57963ECFC6C8B62A7903E7A8506BA7F33BCEE59499E85C6995E2594F94C39A01C5A3380910511EF4EED78A7ECC935FF4AAAAEB6D19CBD99BED25DD43DD8515B6EAB80F1F8CC305BF6A3118E1FEC56F8CB61579D02A9D974BD1F4CBED2F22A49B52A61187902EFB16222D08218A6048F042CC51E25F5365068795DFF2257BD2782E0584143E6A4F3CA940D8A62F5B603F63494B1982A03D3D0B8A2736E39F3091EAFBC9484BBDD46637A28683BEAAD0FE08B9C47C9EA3BD1CD51238F0AC17284DED56F02A5E94BDA9BDF86E8F4D95AD30C98A6E10B4227C05FAF8B80C899AFD114911184A8C4D0A0D2EE4C76AC2BA29D7F94D533A1D2546189ED8D7FF86AE6B432F845C0728E5B5FE80EB7756A67CA747DC24A1DAE86CC485EC43BBC0878B7BE28603ED7F70D34AFEEF938D8155108FCBD5A1A60F9BA51902AEE91655596BACF1191620E2793722D03BA6A528149B48D51C331CA45AA4616127731449A65D84122DDE0E8AB077A4269DB264DD6C6E98A60BEDF82A18A61DE3E40B58042345664725534B37DB09946EB6F3EE1EA92D499D549269288ED4516E9EDF07E57D9D4D3DF648974F7B194D2F09C918E3BE2279F8D9CB5A6EA0506BEA82FDC9A07831F0D33B54645E9FA852E6F007DCB41F653B908253386763769DD0A2D5B75400E06FACEB77B8A282E5C1BB9B87AF1F7996BB34430602256AE61C7AD6FB4544F78091D7DDDF0E9C049BF06C721697248D2CCBC08AEB0402751F12245062C585D3BBCC88725C6AE7956F35A299102D535F998C9C38A27FF8AB1EA972C0CC50D39A707CE66E760AEEC224CE76FEE0A5511789C002557B30E974B6586DFC0244CA976DA66C6D46198A0E3ED2A711C39CE25C62072BC6F5035022EB7A3C38F9D7A6C674173B62FE868AE403D1A4C1022F09301BC23CB3A51575B09E096203922DFB5688DEDC674B6E7E30B2179E2EF79B21E815E03C15B4928550BDE0C4316E415704F29F406465118E76D989C1756C0CBF9EBAC2FB529D0841C3D546AD799BFBBA899A33BAFAD81E258BDC3EC11C7AB4D9325A208F382BC564341F30CC7EC4F06F92A6AEBAD7214DAC5EBED15A4CB37BF728B8102EE8AAB1FA76398407B8B4CA7C3D2C89E9F6DF5203976C67E28C8015F1DD04545741E077702D0485BE1FFAF25982B84D59F0E3200C748A7FE2E8CE917F8750D6881E8AD14DBFB762D531031D45725DEF3F1551749213BDB355C8572032652CFD12C56DC2EB93C8BFA7E8180E078C9275BBF2FEB14E19B29C79F7B69AA3B637FED36FD0E7AC7B18AEBF6968C20739E16BAA18FB7526A1FF4266B059CA6ABA7FE144C7B1FED687FAE3A5C2A20140474E8CF61EFEDDB4C673A217B0F6169CC47FF124CC88C31428BC05CF3B4359C89E66ADA188C03D01C2E4915A13DC6F497F0D343217DDCC794AD421555F936ED94D4ADA642AD0F947E66ACF25996C515E8145E78A0B36B234AA8334C333E3CCCA9D2DF452218FF4DA740D8838C5984CFB0F7F24848DA5BAE0BC31EF51E1EA004EF1FC279963BAECFE226CF51A9BC73E6966ADF1ECDF1ECE58D2A4F4552F94875A490DFFA53814EE38EB27C567FC7C7BF109E87EB275F6895F60233DD8D2BE881FA4DA0C3FD927D85B2CAEC88F41E0C398F89505FD10E1332AED1351A70C45DF76E7F6726109DBEC1A77CF3DB4B39663CFF0010E22A1303232DE48AF8626B3560614D8A502224085F46282974F88325174F7C96721AF3576F69117920CB5FAEEA6DFDC6577FCB1DCA77A8D17287DFAC470D698631E56602EEB8536E8A28AFE819A920F35DCBA77A2194BE343FDFE8FC3EFF92CDD8DB7906F6D4363572212EA75913B1760682E81FC908E4AF02EE932FC6E97B44C31489CDC3310DF004AEACBA67CE2F4535116BAE4038319F94D1600879BC005837910A7E82545B347565F495F33211C4873723E03929F0BB4F7BB6BF8AC8658E8C6CC354982AA540CBA238950BCABDFEDE7FD51FD17874181B200B889200FE8F4C7AACD0B6DC354B5F3FA45298D233BCEB9E45B21303F0582E0F3818008BA220B6C8A7EAA626721C71F5DB5753FA57A5CC0D8F45EF7BDA8C60251A23EE125D225554D0D7D0D9488DAEA0FFE47B015E3B6CFC01905D9928B5874A9AEDB218700C9CDE39FFE7570EF8EA2D8A8C5AE9DBCB12B51796C19C5486EBAD79A9293C94651622854F473057AEC7EAD3F63B177E934CA9D81DE2FFDB4E17E2CCC52239D996B0FA9D163D591761262D96968A82FD23C0CEE8A2616226C445CFBBDB526844748E6A5C3F78B70DF56CF66F59B0C755B2543FF29D3955DF5507EABA67EE10E6236B07E924812F6A0111530CF467732051EBC5D223EE1A4AAB81A32A0A7B4D3C35BE8B34875606F5A5DA7171FCA0418D98A36368E925BAE3A4BCCB0DA70BE1A34F8D015BE585B9488D38C39E2987F2DF05434C91315D8A0511A094C316EE9D13E01709C007AE508DC67A4AE0F5413888F0D52EF9F468911AD29AB3A616AE1CC0A9445CC8538ECE2231CFB86AB394388BDDBDFF71018B1E941BE2258E96FDF66FD4FD7B874DCBA8955B9D6FA6A5B3DE37416EA1C19542F610FF132D331A8AAD59BBD37C46DDE8BD56A0DC74BC65D26DA46F0E3D95A8E18036E93C1611347E71AB01BFD1553EF86360F4489F70DBD7DADB9673FD5F0D280FFD012A3061970A75760336E6E33A82E1C449813B074CBB62BC5102A19CD4B1C09E8C4FDE47C6A507F06F3A5409D71D89BC0A6A18B806E22699981778C623F1F01D6B4DED9D1F61AA41C60F34B48FD67D3CFCCF11D98AB08D88E0218934F62325FD33EA77A89DDD13B07C861AF4AABBD02300C52709E0BB7D20B5F0101B23F7E2E9020707B6337F8B61DF358127E4736F745C1815445302F42C8FBB595DD597C7AB1845FFBE42319F9DF8A2910F2B4A6B4316A09A88122FC2F20B9FDEE1F2CD3D9EB2ACB5C8970FA082637991295919993B032858CFDA424FC7C8F26A8E59F1F010C7BD2079034970DA5669AA8DF33B5A9C60B2DC93789432D264B1DDC1FDB3AD6E2AEC89E5946F2AF0CF3AFF28B107B43107911ABAE1526B7B4F1256E1C6A59F6B3F1C25D6FAD3A516F4F03C8C4F5600089ECBB014F7D4A76A4E3C989BF934D3C397B9321C51B7553568E097C18FEF9D780E7EE27458FFD869CB4E7457BDF39579915A3A8C24831FA12FD2C2AE323D3B8C4DED8BBA0AF2D492AB137C3D407A47A9C6F9B8A8C8D093CEF1F8C1F2EFBEBEE2E7EC6D8A2E48B743B24A568CD0BCFF2D936C5316A7E265686F752D92D0A945A4AC9869F85A3A0ACBD753D1F3D4CD928117531A0BA021F4DA7AB9C7A61796BA775217FA67A7CA941E5B3A2DD6171FE1A05760F6B4485D9171FE622C53F84FA0A857C48A00F771F2FB7895BB2D3636A31C0D56967AAAA9DCA72B94A55E2E4226AF9D9D777208E8BD10746C80DCCBC2C747EAF8DC9A9A375F73723ED073390F5CA2D4C956AAAD7A41A07AE5AF461A0B0CAECDF21739DF62A4360F5E734B21BCDBCA43D2AB0AE7304AA158594EBEDEF17E2CE2FDAA136D546598285CC4A3A228AAD8A8DE3C5EE74AC0F6E56714A08278E01DE7E426F2546CF7D865635786E896496789EB9E31BB48E798BDA9B7DF23EF4532180890190BD7E54515A455BB725E3AF2C1435A5733135783638A33F09B4FCB39503A48F576202A234581EBA59C08DA38DAB63D5CF889542295868EE2DA0CFE5271B5D2960F9E6D9CADEF9D005CE94D6A35A5E2E8D709D9DB9B939B4118EE577E10B173BDB4429E31F15CDAC7BF35D910705FC74C81924B51ADB7972BDDB10339AA391C633D86C385C93DD1C65EF5D501F11FDFDADE2D867EA3411497BDD99003B173BCA4327E258FE1E13FD2DA43D4E298EFDD5312D557FC681B1C8C72A3201F588C5C58C3977B216DECA838A26ABF73FA839DA406E023CB69792F535BE2CD84C59F8EDEEB3BC3BEB1CDB05B8A4E894B1D8C8B84894971AA244E66526C44F17FAC261E042F7D5235FBBC855B7AB9261E9DBF1618AAEDE58B7805700D6710431BF0B3C120F4DB1D8611966DCF0B92648BDAE7E5AF504FA39DB8AC8A6122F8965D646C83111149C5355973231CF76BCF5EBBB62086840ECABA77D924AB11AB13E5278B83AB2381C0D2295E25B357565BEFDCF0D789C76C2BF11E92DCF275FBBBD794C08821D943CE6BEA02FE1A15EED09E2CAF28C2042781223362FD7241D7116D97EAAEA3DCE63C31E777956AB6D0C16FB21D65C944535DEFC6241CD2E35CB8D0BCB83560CAB110330374A4DED500BF6435317ED23B1CA7461FBAFFBDC6C86076F90CD4CCD8DF9ACEAB77ECAD269159C1AF0C639E4F61699C72D35A9856C61738292714A39A59551A087FAAB7E50A3D6896B161D7E6493EF1E98C0F4896AB627166127BDEC06715281A53FCB8B17A53A136A4A439B91CCC5347F7332F75C75F5CC3D41BE1EB52B0ED383355D9A93F531D078EF7A815183AC03A9316BCCAC0E2D5D6835C269962F5ABA4089D1973709B30263E45DA5DF280AD902579CF604DB66F14244972AA7DC90BCD1A92B1A9522006034395368E86CA4DC5AF98E77A6ABB79A6AA8DD1AAFE2FD0CB36A780971A6C8023F2B4B278F60588A2674D97CA6D7CEC1C6C384A921703FD3E9BEDF5223A94E340DB8AFB350165CC23DE73959B04CAB3858471BC98728A7525AD7A7A4269D2D7172D1B2F90F4F5D67CEEC0C856A74571FBD082A4C9EBDB1AE631079A24DE937B6D370BF75AB292C38E7AAECB92D09563CD57C599C3EB54C70CC3D7B4B5DB7FBB0D3ECD48EF40A58A7AC36EDC100D38647936E46898F79881C7655ABB3D9095BF0912C7A0B303CEDB4F88E977C289F38FEFD944B2849102424B7B509FF4B6936FB0A283170D628324BD7D98BC10B2197C88586210D96D1DA835E9A6C56EAF4FA48301AA2B3B68102E6A41736074AAA90F11A46D1F1EF07480C735A708BD8FC468F55E1B08B42940E9403D7AD075CA51AD73BB39C28C186A9DD134E41EFC2D60E41BCCB030B05C1EBE393CC141EA14CEB0319202A65643344E991C4FCADBC751EAD8951CF271119D0E02543AD7D79B2591B3F28BAB488099C80786717EF42A6879485EA801A2BBDC532C13D8CFC0A506A3E5BFA1D234F36CF3D678380D4CABCBFBE57FCC495EE7A1955D54F5BC96D23E4DE75565F96CD7ACC3B68640CEC87207F7860F6F906A62D29B8B28ED3A3A4AED854F07461EF425E586937B1AF890926A8D3304592C2D834A73C8FB64929CB80D81E0A064CFB77B7CCFEEEA6FD695B2C0E8E7C6E6631D3BA73B0A2FE7B9B0EB18D108E958A68FC6D724B00588EE49AC399E26DF84D6EA989866137C830207BA2C05C9593B93AF925BFC7EDC8CCD9D7AB5C2E84199DD69813FE5C95EEAE090A7AE27933BAF0713E2A3EFBBDC68F88655B2586D61F0624CD79545FE6932CEFC9C8D418EE2A7A0F43BF053ABD955E1F3628452E761C29251B0594BF3F3FE0C51B4508A8C753544A6AD8EAD6DACE3E18C6D1750FFF71819E40B3CC9DFC9A49A14060DD56A497E22683FC04D4017B95A94C59AA6CFB5F271566046247C1B1DCA40D5F3BD7B42C93EF7771A2384D5C8F51217A0510F2AA7B003A3D00850F1EB17AC9C691768434E145C81402A73D9FACDD6692ABB3860AEC9F867E09C88DE4A94DFE3C5B4EE889FA6964552D41EEE2964767BC227AB396FD7D2BFDA555F7A259EDBFEAEAF3435930AB63F45286FD777D34528602012A0FC8EC93A82E04B23F2B44AE3D228297C8F5CC32F0642877D85014D96284F454F86BCA81494A2AC13C9F37820AD4254A8408F8D1C0CB569DFEA7581E346AC6C31E55B03F7997F95C3D18E6B88A0B25C0C0D1738C4A2666AEEFDF6D4177D54A2851409D581C896B077733531665FCEB74F54BA743C22A8EC82D67A73383541E55BFE02559CC2ACA0F7E68174EBF954641C923160B2BA14AC18E1695FCC6BA59851373BFF5A2B1052DFA362A6CBB64A8C4D59B96AB836D246213D70399A9F6707B34EB1C63DB32FC3D91211B259EC0BF7A7D7A7D55BC2432A269910BAB166CC5A0695FAF4900CB3C8D69270C5A8A704536790B3D038A07074F7935C5E937F0967F25E30DF294B9BF133F3B6E8E05E8482D6D5A7A288A8C8A45B96E9AB81833701EA94DA1CC34EE2F8BD37B2822A7840B04979D4DA03B297FEE992E3C6F075FA4333ED85A289733EDC8DCBA9597348A90DCEC4B4820CD49399100BCA2B6BF1EA733CFE8927ACA86046EC8DEF20C3A774C85CD955E26C42053BBE2BF0266C4721C5312B267E28EA2233A27199E58D2CE551327DE46E3D2A2E22FFA49CAACC4090F79F030AB3E0E7DC339B0CA1559FBEC2FA346E7C3DFE38657B6AF592AAC563CC811B94CA30F03BCDB79B6D321D75CAD1E111050762EE10B64FAF455A15E51C205E6778777A82F73AF55BF7C677A7270298198A6F7D97550DB190647318BE48C7F2953B6EEE40775E1E598EFBB763578056AEBEA8490AF8B03229123BADCB3481FE70F20A967B97F3C537886BB5CF4E8D2F093763A2B800CA5B89C7F5F014D35D3F7861EADD17681A4DFDD9E81D73CFDAAD9592CE0BDCAA53764131A16902D9BCABB2A4DAEF4145AC0F37454D42CCFE05D70BF8D0DDAE47B94C18BB932C7A5DE7BD004A2E6501231F587C35B9185F945E4C13DA41F6C4E695657F24140487FAF778D510A9683319F6367B6AE1968E5AE209AC3EF5039B941D0E88B74C9F55843B62980FA0A6883CC406F0B8C17D460E5D8D59ED88B6785708AC920FF271EAB9C2FC8867CA7A7B428312C4817510A5928A2BD5393A53568BE5C97B6AE2937D66716A2795DD329B6F5AE07EB1F6AECD2532991F4736AA333CF4F4B6B83FA99F1FE7B051C4E0B1D43930724D68DBED82AA93AABDCC39E918A67CF290074091BBF3D6612CEDEC1F985B14E03F850AF054CE8182AE683C170E48A887CAFF0B215D1F95242BD6A885B268630754D45AEC52BE057D2B0CBD38C0825AF9448A3FA0BBD8F594DE4BAB4CA3054F12C013E3452A81AF1486D92ABB30C218F484CA71CFA3A41B356DFA6E2BBFA97E7AA241A592F2C714D6E8B49D4FB15903ED0E275E671A4AB59669E3F0A842FFA4A600DE477CF7DE71510F2388F72BD79B6BDD01392C1FFF3DFDF378B82662D225529F71687894C2D7935B297BC316221DF2C61C9A3436B5B6E5E0F8771EF5B748B979C23145AD8D5AB59068D4AC51E96BD50B4B2AA7C8AC3A311C9C5F56A072C010347C7A1DB52448506006579CB35AC2D56A8E47075A2750C7D222210128237B85BE957FB49AC015D96A1F1ADA0F10DF349156902F19F0B6F90A7D8C36A84F2CCFB896A91F7BA3DAA2BDCA87F25E9B6DC6DA53D9D77C7664D49E4F8207658E3B6168F942419CED2C1A5F455E1E2043271D21700F721BC54EA7AE0539C4152A030835999B991C694435D665778BAE907E52DA3C3C3E7850D7603C31D2929D6FAB5989986D5A0D90677C18021F2785579EC1E2A624CD027E15B2AF167C6D205BF586A6A660775130FB777270E7E194BA379BA028FA0F418E64D3A6240FF129E0930DC56C912361B7E1563E566C3081BB1541B9224C5C5789C37AC6B63F0798AB0F714ADABAC4FA46816ECED43E8B97CB0FE84F99B0475330F29D06E5FDF347FFCB04ADEC3161028F00A70FB40A703465DB364B6E6B4459F113812BA5C2F3487A4CD1DC83189EAB99E58E3F09613B94D2F2BCEF6C5F262FBBB27DC77FA8A66F9E954F5A9F09F1AF4C6CB45D585DB13EFC1D11894DD2834EC91297C28CFE37CC72A96B4BDAA45AD0C81352ED5402C3457B18E5F5F5BE8EB7EBB572C70119EC8286D83411D308D05A96AA3511570F3B97FBBEACAFC6724353AE9DFB3247DC576D59E1A8D1B90B2EA83CA68E71134A38011F4CFFD3DB26DA00807D97433B45F8763A59FA34E9E6FD68C10CD8E9E5833E4428193279838F964120E8B2F5EC985B50F896946BFA37386BC18B70A18185E90DFD836EC34D552B3964F1D2F55EBC9C9B653246DF7ED5E3EF8E8D8E92CDD23FE3424977CABBB4224794D5D814817F39DF31423EB4BDF75B1B47E8EBFA5F0BAFA60701A4CA9F477BE3FDA168FA7D3427E670F21BF4F01EA337BD05C6C2F03CF1790EC2DF6970D6D5CC5BDA46CCE7C3C34680D6C1274F80377FBE3399CBBB8B6A48F3FE6E5E0A1FD0A80B75D78BE9B64987E92841A598ABAF818F46646E6449503D23B9AE5E45F01E518C7DCFB743535B56860E56E9DA87321A3BB90A706C732CE1C4575E73A1CD40A0D90B1A573A0BC9007C1CCE4D700D16E143CB635EB01C18BE54E5B5B3C86F77EEDC441261E973F9267447A4AAC4C03FA50E66DB9EEF075341F1606AD4F3607A50450E16836B55B271E26E4DCE553CDF1F0C0A470B6B6469D296B97D199B4B5610E1E2A5B017AE5311D14FBB52B681DB3D83B66D13F4582F98FA661444189808C27966FED8EAF809F67C5B7E1BC354B8F9C5EF5A4A32FFEAB77C78E3FC0C7B499D6A6D71E91F883A5AB19794EF901668396BFB72A4EDC52B6AE4514B28D2E5557BF059962388F120708C38D83E040DD87FC7671FDA705555B47A683771DD88E895F6446B1D39BDCBC74774EACE81AE3EC608C8FF9826CE46977CD8DCFF3CF03266AAB53D3CAAE1E2C5DDD1B54B2FC7919873FF2F3A54EEDCC3E4FBF09D893FE2DF1A17D5452B475F35FAE2A530969ADE666021FD23A6CFCBD2AFB7C16D8F0A27D29B018BCB59BDF0B3C6F7F2A2A4232A839821F6ABC48910EC87A9E3B2CF9B53DE0CC1AB24F983501AA06D8792B7A907D07634EABD75C71AEF6F73D691A2FCB748498BA6D5AF1CA707336DB9D9816C0BE5A11B2275FCA76FD1E90C6B0F6797C29549380623CCECE21228422CCF811CF939CD0163DEE20FCC244BB3D407FC1134AE973A15011A62299763FF9030BF5E707C287D0F67385DBF9EAED5A89C7C1408A8A7924B2A711E0AEFE4D427E7F8E85B5A134AC67F513A8ABB9775B4531899B82B9444F013C79CD38F44E3C3E66097FA11E8FBC296E1062FD14D744000475461D1A9466EF3B40D086BE925149A053B513F73BA7D027C998AABC144C4889860DBC02F888F26B73633434F66B6D122AD6217BF6A7047306FA5E05B29F5E018C9618E08CCD6623D3F059889626FF26BB0EBD2BA2EB8DFDEA9DA97646A4CC66A4A4A50C002566C06794564BACC4FC15F0FBCEC371D0B28274EB72D6EF32E171B9BECF4CECA5618BAEB901F613F2279B3AEA034D0386BBEABB4ED9DC7EEAFDB7442BB2C05F234B4665AA9F64A8F08443B7229863AAE21A852C6673542EDA6DB30673D56E7E2D92A22DDE6399A4854C59FD07BA1A4E3DEF0595B21819549757052E6093A5FC7C2B5C3CE85BFCF9DE839FE1EAAA5B753C6543E816F22B51FA22B89317404639AB3BB59118F855669F8505577D6DB6E4890EC1042D32C41F217EFB8C4202BABBD0821DBC1DA4BAACEECBBF78B3ADBC65EBF5307D248A574E0EF4314AF9A9F92FFBC5629222B561714CB91796BC0290416A3574A754F3BF050EB348AE070DEA852F7510EF58769E936DB79DD24D46C4D22F8A560F8D9D4651CFF59B87E39D74A77265E93A7B404815ABA4FB93000D05780F34E4C65E80E4E2A92125200157C7F7599185A12B074B0F9A48FF5DFB6D2C3AF8BD43FB4DC1E47FE56A71D81CB731AD3D715A15E5B5E364993EAA36CCD1EDD2CBFBB325C6EE854B5787B2C653EE6896274829C414BE2FDF9E5D776334B5E1BC7B6D7E5FEF1C8A7D6F75F52B7704A265412248A43FEEACBD04112E2873AB4D1FDB4649F70DB88D53A4677F981D334A7D9B4D86535488E28FD13727A34DF3A02EC0CBDB0FAF6D911E900E759C048B68085B516A315E0178874A3374D1B4C689C6285116EDAF00DDAF959723C490FE2245C3F1EE34FB655612EAC39D0E2DB77A9C58827733A94CCFE328DE40A29D9FAEAF808782888118BD8E94904BFEA50EE724936CC54EA97A3E43500ABA109C10063AD96810D1B4CBBEFBD9A9086291C49DA18EEC757B91ACFD5F55E473B693CBBDACBA600EF825CF98A097A17F996E593373173F68EDC4F17340D6F1C76D322CEE6ED6D1409CB932F5D330171EC42F4FBA70753BF309D726A78F1681725DF84EF51899633A50FBD1557D3FC81A1360160B11554F758F60AE605E34A868133E7F000D34DAD4C08C061AE0ECE429B68D7BB61511C55A8FC592F291683C3D8BF5B313124FFB76862C4BD73FCAD700870656FE609FBCE6B061BC86B1AFEA4C7DCC36911E7C663CFDA6354D7C2E37207C9D46748EBE9E771A64B49FDA9EADBDB01A54B753CC4405719DCDF34F8DF2EFEC84DF1418E8F7D06AF95265315553AD8E9E3C6AE9B1DC573505DD454208E526F524268543B6C20F0839EBE55D543F1754FF5094F9E0C300A64E10CD70A0314F72530EC2A7B47CEF4678E7502A771E9FEBA41C1B6E69B3307CBB784D960B6404FDF46AC005EECE9E17D6E7DB3DB6DEE1BF38B0430A9907FAB62C4F8E4E9F400514CBCC069C52CF5B204EB306D099D89066D842C942FFAF5EEC4F1C1C2F27CE40AA336B2F247DBCA05D679E45010285F4A64ECA6BC3CD733290216CD6DD14D38E22296AF77D025A3D75D0FB9FF585AAB1691BF693F930176397EEE9EA1927D5457D29A31406261A3E8DEFD692122927EE4EF90B16241582FB67EDFCEE2E8781B15FD03F8D009638AE054E6785E92105169166B97EF9C37C3C3C307391E326CE7A99AD18956423664C00DCF9693FB8637A8AC95144CF526C745DF5CEF37DA502BDD4179FFBF4971AC7855D1F283BFB2549BEE65B22E6E7E4933DA1C41E25FDC72BE47C2AC14EC94A780FE33657920ECA80D4E5947D2F4A194AA9F828115BCFE43693F8FA7D93C4860867BF13AD138EC676EFB2E4F6E21959E96EB7AE2FA6E6C814F3E750E4CC4822BC0631241F03A7400721E0198EA7AA246D4559FC41A5FB780BBA9B255947BAA2DDB13EDD4A7CAC3E17F69380C0224DE0E858D99D6674BCC6A8165B995CC4FDD5EFFE1425FAA9CB4B3194270806CCA2FF14091487775E0255A691A5EE4F544A4265FF940D2A13CB9B0C87995390A7D55F4B831EDE3009C1E623191667264D32B9B9260A214DFB048FD057C0588036304773FA05CAFEE365C44B45664D8AFE8F1B4FC0D03B6B5EBAE040EAA0B947EA84632E8C2689F543E81762301669AD20DE172FA512677D862D50845B8BDF0636E8ED9DEDA86C1567F5B854A8913972AFD5142EEF165CD01B2852A5865907CF2524564DD84473FB0394D43B1694292DFDE97F2D056A7A06DE4D79928F1D8F5BAEB74662CF25E32383137F6E7ACFABB51DD8C4C0D44C1AEA64A991C138C552BBE852A8AE240CA0849F834507BC13FD9671F15A23C6925827227D2FC9052574D95B3582FA150993792CDAC32DDEBADF140074FEBF3FD37E9F569B48A873A4F69F300B355FD63FCFA3D6E16FF195F214BF2ADDFDDA007F0574FE625709D6FC6514FF0AC057C6150374D4C98C0EDEA5EF1A20FCAFE5C9B8478FC286B343168C0906F6F29881035AB0A766A12D57CD2BE647A66F190972EE073D843B2B6B45D6280E4790EA29D3402F342904C922033698898389962054F0F671386EC44B0EE144EEE0BFB14D531DEC77BB68F70AD81BC2BF264E2D718E7DF3656E71A16F92E4FD3007292A6E685624B014E88EABE8D0F553A4184AA4804559256765376CD9B3FCC5E6046FFFEBB0FECCF1D0BB174B3127CE2D90CD94D7C7917CCB52EC5575C73A4168FB152D3AE2E94381CEBE216365634B842EFFDCB1E96F8C255FE228E07BC27DFD9303594CE6CFA8E916241B8943376E0562D56C25A7A59921A574D53E8B5B1D89BFA6A3A83886BF437259E44D4D7CF8EAE73E29511AC3286735B7254B522BA3EE2E6AC5EE91587CCE352E3C2A596C570F26DDBE13FA2EB7BE1713DCC8608E2D1A58099C36229DD839F9B17B6BF6BCF974A06CF1A73140BDC09DC0E3CDC71B7FC01A875880AB26BF7CE1516469B846FCD65B6BF1EBB2FF263F9A364F40D9C9CDD8107897F87DFC0CE73D5EE4179D051230BBBB68B11257BC4EF3E3EBBA8FF69BFCE18BE575FD2FEBA44657A8788F07F51CA18623E7CB14EB0B6A559C4FCA7589CB21FD743D4A15C59433A711B47ACED02DB5D65D1340FAE0BD16A903D94D223E0EEEA36C6147EB324B80C3630FC4347CFA57767C57AE4CB2A80025DE8E39E2DD1B223DDFEFBBF5C07BF2FD0A9F8262E730BDBACA28CF224735B44F74E03C4B31ACEE715A102426C794AE7DD08176826E515F825B35FC4D63FC66DDBFF6D7ECAA702656A677200CFBA053D85383C5F656BAD27CFD77131A7A87F4E209DC747916BBED19509CCC6E466D3CA12FF75359C72F6D73D52FA531BFB1FDEFAFC43F027AA497E99A874FADBA3BC252C6E4FABCD12D38C5BA5F9D504829E1BBE9776F785D2FB67382A67F6B36D5BBFDF93A8BE31D899C0B204EE2AEF06818AFFCC4E76B3749931524DE946CF2B3C1682F3A71745B137C66DACA41CF46FF546674A323D6917FCE6792DBE0CF88EC1C45251F2952589AE160C506AB90A6E160FCBC5BD0AD1DD5464DEBF4ED2EDED04838D0BF547AEAAA84E80EBAC1F7D840B47AC6A4FE2F22E092302E31A21AA5AB1880FC6AE827DC657FEF7CAEF8EA1E227064E3774709EA406CDEE96C68BE7F0518FDD77AAAFFF715B0906029E6FFF2E1C7A5DE829407B9B257A2C5EF881F1A1D72F21965659DDB163FA18DFF75BA6C669C3E44CDD4BFD155880CCDEFF9BA05EF686CF6EC389995AA95BF956E0C0026EFCDBF69EB1F01DA3CA46CF28827A3300319BCED2657722B9BB9F67E0D0B1838488B78386C0D6028B534D6F3E7979CA4FC9A0F87761A6DAB4A2BE96BC9FFBDB3C5233C401ED9381172412688A035F1A3F44104525E1AF88B01D703E422ACBE0B47D7FAFBDDD767C6E9171E9DDB94DB94B0F10997CBF5B7075A3667D1C7EB7346773071E2BAE87B095ED7DC49E6ADB9A4148FBE6C61A56F6AD2DC8965C40CF7E4BE024E2A915E017F3593A4E9F3C20C882F7157802AF0BAE394547918992E8D6B41B7EBB7504F0ADD5F373F1FBA06E99A7EFDB7A1A53A388A8A141E69ED16296446FD83FAD2BE921955438CCDBE474E85C3BC478BDB12ACB748F6E147ED672E0A57BE3B6AE94DF8F4A847EC17B1D95C0F8457807D8F317E868CE2D1D390B6DD9D69335FBBA057604D1AB1A107FD8ADE5E884E8ACA6D7D1FFF83C36D9960EAB625A7C851479230D8904A65BD63F8726848BAF25F62E3D7F109AF0E021DE17A9D1F3C980B8BACDFBDEC04E5F8BD020CF35787C86B533C228AA134DAF38B525976826D31DE4081353CB995C38ACDC6925191BA48213D0453A586FFBDD8A7BE855646944580064B99DFAC60C95152D5C1A71ED34E28D6889637475A1BA5112840D28E43F9002F45F6432F65DC949D61DEFAE15E59358500712A0B69480F6627633B65BAC5E559895D55E3DBE62E179817725C3A97AE037508E415303F9DDF826E9E3F1FA7069738C58ADAE96956B3451A8FDA976D101DC7F1AA19763280394AA7E6B543F1459F97C76F95FD1EC8CB4541E670F2883256F693F0C816B5106354A8F01596507EE92BC0153786615BFB85B13EF223AE81700E4D38D1E05B74519B95CC425B3FC94E597A979BA4BFFB861F6671D30BBB4EC23013C8BE9D7E02473E7D4F1F68C8BE3359FFF4C9FE3EFB15503B229660AB0B0CAF7EF3512756A7E6EDA3CA661486A77EB4EB26E9DA6D994EE49A02B94C78716446829FF15BD7B71056918D7AB777BAC397940BEE826795807792FCAF004B17AFBB867238CAD9944404C9EC0BEAF62BE00F4F6BEBECBD9AFCF9D8ACE47C44CC80B35F5B0AD56C50D9F7EAC992E33C8E139D0F7EF6E94C6F024E647B3862669AF83ACA777BC95D650AB586D9B62B03DF04B01202FD6046E765DFEEFE6C409AF9BE0A42C37146ED0831D3945BBA848D7C7A5C0E17EA3E065183EAA6DDBF5A9642B7434969CC64B1363911D8DED20C45DFBD1C53168E26629B26781C4A24CB78089950D7A2ADB301823866FB9A9E20E749C59A73B4ED8435ED97D94A7EF63FC1DFE2F8D5E690758245EF442AFCBCCCD9D38B46A11C3139A1A611A9FC7BAE9B17FCA5B2C5F41235A51BA95680E3EF73D477AF0072A8FE49AFBA2587BCD141A592C3D37EF66665544713613B1CDC32CEFE03B2ACAA51EE738B2D732B2483B782C2AF2C5ADFBE857B7DF0601651C203F3F0C576309A101AEC96167D54B37966D615DECCBEA4DD6F3E3F7E051C64E1B812A664370466042C5B19814AE7FF9C8984849B5D15D15C482339D5DF503121F1C5F1BAA8020B36FE36C1D94427E4530B12F9B3C87E5238ED310DD63724A89C4812EA2E2CB79DE993E606F490F322C53F8BFF8578286277E9E6A66EBCDFE8D9900F40FC1F0165089AF78F2E81761273C1E792A327F1AF3EBFDB1699332B14D833807D3AD7A178BE3D1345845A697A759C178E3E79618950AA9FE1CA8CF3C1FCAB8BB0862BBBDB7B3BA20453CAB1BB161D19B0793D3827AD68A3786A7AB4EA5A09C55AC7236774E6E516D60779F3F28524B0F7AFA5B4ABE96F349B4B99E18E19A5895A441860AD8E79E7BE6BCEA7F0EFC3BD326612EAB7C1E339DBB0B827D8F9654D35FC6BA0C5098EDAF7C4F95E113CC8635FCC741F8566A096C79F56BCEABBC8F51F31FB4847D38A61E792D935E51FF091DC981E792E3524880661B7C51096381D0205C93EC2B86B8F1E6B6CCD19D5B52C742A6E1CE7F3356A09EECC1BB743BEF895E2B8C95D26C2E4B2A64DCECF995CE4617DF0464FBE3D2BC91A7955CB216196C9CE36D2CF3DC48BB9ADE5C1E8C50E2A834571212562607D3047F3ADF9A3156898B8CA4EECE82CE7558C19255249E79ADCD03C4234AF10D9BDB4725C379801863C92C0F046067279E3DEB8AB6B69C3832ABA8F6C1FEB5D8F85EED74D998DB7866D352958821A4B769645C7F7719C7E55CF522A72E63B2962674E93A5D0F72D6AC6F2FB4F686C2F5ACA6278947A7E1CFE46BCFA5F87FE2DB90E937882DD91815C99656C8F7045751A5788759BC0BE7F856EADC1206E33A0007A90DB4FE40D74B907B734B546128465BA3C3EFF00C11E35B8F9E4B7DAAC794B7993AFFDF59AD2F0DF8A8781AD5F487D2DDDFCD325C3BDD02DBC800E005C0E838FCEBD91ED2D594896589F3D8465BF9E2AB8B0D263C14B1563ED1A27F434A2A315648B6E4F76705FF0B76CFBE8F37FE048FF00E26A193E2EA6088B4327D0B5DFFF00615D75EF86B4ABF99A49A39C8391B3CF65403D36AE07E750C3E0ED061FBBA7C47F307F318356B949D4E126F89BAFDEBF9763676D113C0F2E3691FF00538FD29F059F8875A51FF090D97882F2D89CB5A2C1E4C527A64923F45FC6BD222D1F4F8482968876F4DF97C7D37135741EE42FE5436BA20B33CFACF4C5B3BA8CE9FE09D3F4F75394B8BB59662BEFF2A139FC6BBB89AF24542F35AA607CFB2276CFD3715C7E20D4DBBD87E1DE8DC07703F0A96C650B93AC3498B492C9507FCF62CE7F40B59F709E312B9B7D47494C751F656FFD9B766BA0DD8E7BFD294B0EE4517038EBED27C6BA95A35ADC6BD66627FBC89088FF0055506B06CFE2368FE0BB25B0B0892F27C7EFEE8B10EEFDCF23A7A7B7BD7A70954FFF00AAAAAD958872EB65007CE77085413F8E28BF42E32E53C075FD7EEB5ABF9B54B74919676CB3AA92171D0138C67E9535A595A5D4492DCEB5A7DBBB80CE8D1CDB949EA30B1EDFC8E2BE8066464F2C80C87E52A4707DAA1167689C25B5BAF1DA303FA509D82A4E537A9E59A243E19D3668E4BDD7B4FBA8D4E4C474C67CFF00C08AE47E55E8565E20F0E2C0A6CF52D3218DB90825488FE2A7047E22AC5C685A45D2913E9764F9EA7C85CFE78CD654DE02F0D4A0E34ED8C7F89279063F5C53BA641B435ED308F9752D34FBFDA10FF5A7FF006DDA15E2FAD197D04A847F3AF3EF10784FC2DA341E6CEFAB26E1902DD778FCCAE07E24579BB60B9280EDCF19EB8A6A370E6B1F423789B4B423CFD5AC383901AEA318FD6A297C6BA3F9C19F57B0200EAB30623F2CD78BE95E17D5B5A8FCCB186295475FF488C15FAA96C8FC4565DD40D6B7325BBB2B346C558A9C8C8A39177173163C41AFEAF7DACDC4F88589909DEBB4AB73D8FA5528750D53ED30CE4C31BC6EAEB8F507233F952739A920B896D651246E15C7424038FCEAF9742BDACF6B9ED1A04DFF00090DAA5DEA1A1E947703BA78DE3943B7B00091F8B55C9FC1FE1DB862F2695067D10B20FC94815E6FA55F78DB529A3FB2DCEA2F1E40F30AE500FAB614FD335E856DA6F889154CBE25572464AFF67463F50D59B4D0AE98FF00F8437C3A1484D31547709348BFC9A99FF083786F391A6E3E9732FF00F175B16AB711C58B9B95B87CFF00AC58F60FCB26A62C3A719ED4AEC2C8E7E5F03F86DE3751A6441D81019A491B07D7EF7F5AE5E4F84AA0FEEB59C7B35AFF00F675E91B875CFE14871C645352682C8F2D97E155FAE7C9D4AD1FFDF564FE40D6D59E93E34D26DFC8B3B8D116318C88A2099C77388C64FBD76CC5477FD7AD071DBFAD1CCD8B94E35E5F8849D134E7FA15C7EB8A864BFF0088B1F1FD9B6121F675CFFE8C15DDA42F21DB18663FEC8CD5E8745B87C191C463DF93FA5171D8A85871D71EC293CC07B671F4A66F5033E9D7B504F1D80A43240CB8E074F5346F19385E7E9D6A3EA31FCE97676383400FDDCF2280F9FE1C1FC29A31C1380682071BBD7BD002EE39C8418F5CD1F367920638EB4800E828C8E3E51F8D00017D481DBAD285503239C519C0F97A74A4DC08EFCF3400EDAB8FBB46D03B014DC919EB8A4CE72781FAD003F0A7E5C8A360E7D3E94CCE7A9A303A8C927A66900FDAA47269085C649A6E541C02290B727AFAF1400E93FD5BFCFB38FBC7B578C78AED27BDD6E59ACCBDF4400532C36854023B121406FAD7B3741F4FEF571DE24BDF11DFBAD9E89677F03062B24AEB1AA38F6627FC2AE2ECC523CA6DEE26B1BA49E190C7344D956C72A7F1AEEB4CF06DDF8AB6EADABEB09224A060C2373103B1E005C7D0D63B7C3EF1236E91ED632E4E70674C9CFE35E83E0DD3751D2B48FB26A10EC656F941B812607B0030A3F135527D894BB8EB0F02F876C141FB18B971FC77277E7F0FBBFA56E4163656AA16DEDA08147411C6147E9527CC0E0014986DC338C63B56776559126109386FD68DA99C71C9A60424E4918CFAD2EDC0C823340C52A8C38FD2976A838FE74E8EDA59C011A33FB8E47E75762D12663991C20F4072680338E0F51F852C56E66F9638CBFD066B7A1D22D620372990FAB9E3F2A7CB7D676ABB77A657A2200695C0CE874599C66429183ED9357A3D26D63E5D4B9F563C5529B5D63FEA2300762C726B367BD9E6FF005B233E7B6781F85023A17BEB4B55D89838FE18C5674FAD4CE4AC4AB1FE1935921B27079A6F9848FBBEB9C9A2C33FFFD9974AE783]]>
          </BitmapFile>
        </BitmapFromFile>
        <BitmapExpression>
          <Expression>
<![CDATA[//

Pixel.A = rnd();]]>
          </Expression>
        </BitmapExpression>
      </Producers>
    </Bitmap>
    <Material Name="MyMaterial" Shading="1" Light="0">
      <Textures>
        <MaterialTexture Texture="MyBitmap" TextureWrapMode="2" TexCoords="1"/>
      </Textures>
    </Material>
  </Content>
</ZApplication>
K
User avatar
Ats
Posts: 603
Joined: Fri Sep 28, 2012 10:05 am
Contact:

Re: Modify BitmapExpression.Pixel values from the outside

Post by Ats »

Thanks Villek.

Then I'll use both: the RefreshContent to change the colors of the background once before making it appear with the RenderSetColor for Alpha.

@Kjell
That's a nice effect :)
Post Reply