From d0a840da47c2c35959641c26d74b1498df0ed6be Mon Sep 17 00:00:00 2001 From: ddennedy Date: Sun, 11 Jan 2004 09:58:26 +0000 Subject: [PATCH] 4 new tests, bugfixes in pango, pixbuf, transition_luma, and mlt_frame_audio_mix git-svn-id: https://mlt.svn.sourceforge.net/svnroot/mlt/trunk/mlt@53 d19143bc-622f-0410-bfdd-b5b2a6649095 --- mlt/src/framework/mlt_frame.c | 28 ++++++++--- mlt/src/modules/core/transition_luma.c | 15 ++++-- mlt/src/modules/gtk2/producer_pango.c | 4 +- mlt/src/modules/gtk2/producer_pixbuf.c | 19 +++++++- mlt/src/tests/Makefile | 14 +++++- mlt/src/tests/clock16ntsc.pgm | Bin 0 -> 691217 bytes mlt/src/tests/clock16pal.pgm | Bin 0 -> 829457 bytes mlt/src/tests/dan.c | 11 +++-- mlt/src/tests/dissolve.c | 72 +++++++++++++++++++++++++++++ mlt/src/tests/luma.c | 76 +++++++++++++++++++++++++++++++ mlt/src/tests/pango.c | 78 ++++++++++++++++++++++++++++++++ mlt/src/tests/pixbuf.c | 73 +++++++++++++++++++++++++++++ src/framework/mlt_frame.c | 28 ++++++++--- src/modules/core/transition_luma.c | 15 ++++-- src/modules/gtk2/producer_pango.c | 4 +- src/modules/gtk2/producer_pixbuf.c | 19 +++++++- src/tests/Makefile | 14 +++++- src/tests/clock16ntsc.pgm | Bin 0 -> 691217 bytes src/tests/clock16pal.pgm | Bin 0 -> 829457 bytes src/tests/dan.c | 11 +++-- src/tests/dissolve.c | 72 +++++++++++++++++++++++++++++ src/tests/luma.c | 76 +++++++++++++++++++++++++++++++ src/tests/pango.c | 78 ++++++++++++++++++++++++++++++++ src/tests/pixbuf.c | 73 +++++++++++++++++++++++++++++ 24 files changed, 732 insertions(+), 48 deletions(-) create mode 100644 mlt/src/tests/clock16ntsc.pgm create mode 100644 mlt/src/tests/clock16pal.pgm create mode 100644 mlt/src/tests/dissolve.c create mode 100644 mlt/src/tests/luma.c create mode 100644 mlt/src/tests/pango.c create mode 100644 mlt/src/tests/pixbuf.c create mode 100644 src/tests/clock16ntsc.pgm create mode 100644 src/tests/clock16pal.pgm create mode 100644 src/tests/dissolve.c create mode 100644 src/tests/luma.c create mode 100644 src/tests/pango.c create mode 100644 src/tests/pixbuf.c diff --git a/mlt/src/framework/mlt_frame.c b/mlt/src/framework/mlt_frame.c index 3b11fcf..ba59ad9 100644 --- a/mlt/src/framework/mlt_frame.c +++ b/mlt/src/framework/mlt_frame.c @@ -412,10 +412,15 @@ int mlt_frame_composite_yuv( mlt_frame this, mlt_frame that, int x, int y, float format_src = mlt_image_yuv422; format_dest = mlt_image_yuv422; - + + //fprintf( stderr, "call get_image on frame a\n"), fflush( stderr ); mlt_frame_get_image( this, &p_dest, &format_dest, &width_dest, &height_dest, 1 /* writable */ ); - mlt_frame_get_image( that, &p_src, &format_src, &width_src, &height_src, 0 /* writable */ ); - + //fprintf( stderr, "call get_image on frame b\n"), fflush( stderr ); + mlt_frame_get_image( that, &p_src, &format_src, &width_src, &height_src, 1 /* writable */ ); + + //fprintf( stderr, "mlt_frame_composite_yuv %dx%d -> %dx%d\n", width_src, height_src, width_dest, height_dest ); + //fflush(stderr); + //return ret; stride_src = width_src * 2; stride_dest = width_dest * 2; @@ -698,16 +703,23 @@ int mlt_frame_mix_audio( mlt_frame this, mlt_frame that, float weight, int16_t * int16_t *src, *dest; static int16_t *extra_src = NULL, *extra_dest = NULL; static int extra_src_samples = 0, extra_dest_samples = 0; - int frequency_src, frequency_dest; - int channels_src, channels_dest; - int samples_src, samples_dest; + int frequency_src = 0, frequency_dest = 0; + int channels_src = 0, channels_dest = 0; + int samples_src = 0, samples_dest = 0; int i, j; mlt_frame_get_audio( this, &p_dest, format, &frequency_dest, &channels_dest, &samples_dest ); + //fprintf( stderr, "frame dest samples %d channels %d timecode %f\n", samples_dest, channels_dest, mlt_properties_get_timecode( mlt_frame_properties( this ), "timecode" ) ); mlt_frame_get_audio( that, &p_src, format, &frequency_src, &channels_src, &samples_src ); - //fprintf( stderr, "frame dest samples %d channels %d\n", samples_dest, channels_dest ); //fprintf( stderr, "frame src samples %d channels %d\n", samples_src, channels_src ); - + if ( channels_src > 6 ) + channels_src = 0; + if ( channels_dest > 6 ) + channels_dest = 0; + if ( samples_src > 4000 ) + samples_src = 0; + if ( samples_dest > 4000 ) + samples_dest = 0; #if 0 // Append new samples to leftovers diff --git a/mlt/src/modules/core/transition_luma.c b/mlt/src/modules/core/transition_luma.c index f5be459..a3ae3dc 100644 --- a/mlt/src/modules/core/transition_luma.c +++ b/mlt/src/modules/core/transition_luma.c @@ -34,7 +34,7 @@ typedef struct struct mlt_transition_s parent; char *filename; int width; - int height; + int height; double *bitmap; } transition_luma; @@ -313,7 +313,7 @@ static mlt_frame transition_process( mlt_transition transition, mlt_frame a_fram // If the filename property changed, reload the map char *luma_file = mlt_properties_get( properties, "filename" ); - if ( luma_file != NULL && luma_file != this->filename ) + if ( luma_file != NULL && ( this->filename == NULL || ( this->filename && strcmp( luma_file, this->filename ) ) ) ) { int width = mlt_properties_get_int( b_props, "width" ); int height = mlt_properties_get_int( b_props, "height" ); @@ -321,12 +321,16 @@ static mlt_frame transition_process( mlt_transition transition, mlt_frame a_fram FILE *pipe; command[ 511 ] = '\0'; - this->filename = luma_file; + if ( this->filename ) + free( this->filename ); + this->filename = strdup( luma_file ); snprintf( command, 511, "anytopnm %s | pnmscale -width %d -height %d", luma_file, width, height ); //pipe = popen( command, "r" ); pipe = fopen( luma_file, "r" ); if ( pipe != NULL ) { + if ( this->bitmap ) + free( this->bitmap ); luma_read_pgm( pipe, &this->bitmap, &this->width, &this->height ); //pclose( pipe ); fclose( pipe ); @@ -393,8 +397,9 @@ static void transition_close( mlt_transition parent ) if ( this->bitmap ) free( this->bitmap ); - parent->close = NULL; - mlt_transition_close( parent ); + if ( this->filename ) + free( this->filename ); + free( this ); } diff --git a/mlt/src/modules/gtk2/producer_pango.c b/mlt/src/modules/gtk2/producer_pango.c index c1bf1d3..6609ce9 100644 --- a/mlt/src/modules/gtk2/producer_pango.c +++ b/mlt/src/modules/gtk2/producer_pango.c @@ -288,8 +288,8 @@ static int producer_get_frame( mlt_producer producer, mlt_frame_ptr frame, int i mlt_properties_set_double( properties, "mix", mlt_properties_get_double( producer_props, "mix" ) ); // if picture sequence pass the image and alpha data without destructor - mlt_properties_set_data( properties, "image", this->image, 0, NULL, NULL ); - mlt_properties_set_data( properties, "alpha", this->alpha, 0, NULL, NULL ); + mlt_properties_set_data( properties, "image", this->image, this->width * this->height * 2, NULL, NULL ); + mlt_properties_set_data( properties, "alpha", this->alpha, this->width * this->height, NULL, NULL ); // Set alpha mask call back ( *frame )->get_alpha_mask = producer_get_alpha_mask; diff --git a/mlt/src/modules/gtk2/producer_pixbuf.c b/mlt/src/modules/gtk2/producer_pixbuf.c index f1f1f45..3bfe553 100644 --- a/mlt/src/modules/gtk2/producer_pixbuf.c +++ b/mlt/src/modules/gtk2/producer_pixbuf.c @@ -197,8 +197,11 @@ static int producer_get_frame( mlt_producer producer, mlt_frame_ptr frame, int i // Obtain properties of frame mlt_properties properties = mlt_frame_properties( *frame ); + // Obtain properties of producer + mlt_properties producer_props = mlt_producer_properties( producer ); + // Get the time to live for each frame - double ttl = mlt_properties_get_double( mlt_producer_properties( producer ), "ttl" ); + double ttl = mlt_properties_get_double( producer_props, "ttl" ); // Image index int image_idx = ( int )floor( mlt_producer_position( producer ) / ttl ) % this->count; @@ -213,6 +216,11 @@ static int producer_get_frame( mlt_producer producer, mlt_frame_ptr frame, int i mlt_properties_set_int( properties, "width", this->width ); mlt_properties_set_int( properties, "height", this->height ); + // Set the compositing properties + mlt_properties_set_int( properties, "x", mlt_properties_get_int( producer_props, "x" ) ); + mlt_properties_set_int( properties, "y", mlt_properties_get_int( producer_props, "y" ) ); + mlt_properties_set_double( properties, "mix", mlt_properties_get_double( producer_props, "mix" ) ); + // if picture sequence pass the image and alpha data without destructor mlt_properties_set_data( properties, "image", this->image, 0, NULL, NULL ); mlt_properties_set_data( properties, "alpha", this->alpha, 0, NULL, NULL ); @@ -292,13 +300,18 @@ static int producer_get_frame( mlt_producer producer, mlt_frame_ptr frame, int i mlt_properties_set_int( properties, "width", this->width ); mlt_properties_set_int( properties, "height", this->height ); + // Set the compositing properties + mlt_properties_set_int( properties, "x", mlt_properties_get_int( producer_props, "x" ) ); + mlt_properties_set_int( properties, "y", mlt_properties_get_int( producer_props, "y" ) ); + mlt_properties_set_double( properties, "mix", mlt_properties_get_double( producer_props, "mix" ) ); + // Pass alpha and image on properties with or without destructor this->image = image; this->alpha = alpha; // pass the image and alpha data without destructor - mlt_properties_set_data( properties, "image", image, 0, NULL, NULL ); - mlt_properties_set_data( properties, "alpha", alpha, 0, NULL, NULL ); + mlt_properties_set_data( properties, "image", image, this->width * this->height * 2, NULL, NULL ); + mlt_properties_set_data( properties, "alpha", alpha, this->width * this->height, NULL, NULL ); // Set alpha call back ( *frame )->get_alpha_mask = producer_get_alpha_mask; diff --git a/mlt/src/tests/Makefile b/mlt/src/tests/Makefile index 448e44e..3c7dd78 100644 --- a/mlt/src/tests/Makefile +++ b/mlt/src/tests/Makefile @@ -1,4 +1,4 @@ -TARGET = dan charlie +TARGET = dan charlie pango pixbuf dissolve luma CFLAGS = -I .. -Wall -rdynamic -pthread @@ -6,6 +6,18 @@ LDFLAGS = -L ../framework -lmlt all: $(TARGET) +pango: pango.o + $(CC) pango.o -o $@ $(LDFLAGS) + +pixbuf: pixbuf.o + $(CC) pixbuf.o -o $@ $(LDFLAGS) + +dissolve: dissolve.o + $(CC) dissolve.o -o $@ $(LDFLAGS) + +luma: luma.o + $(CC) luma.o -o $@ $(LDFLAGS) + dan: dan.o $(CC) dan.o -o $@ $(LDFLAGS) diff --git a/mlt/src/tests/clock16ntsc.pgm b/mlt/src/tests/clock16ntsc.pgm new file mode 100644 index 0000000000000000000000000000000000000000..61e64ad3fb834f1c08414c1d8419182318a6ac0c GIT binary patch literal 691217 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 literal 0 Hc-jL100001 diff --git a/mlt/src/tests/clock16pal.pgm b/mlt/src/tests/clock16pal.pgm new file mode 100644 index 0000000000000000000000000000000000000000..4d7b0fcd8031f6eabc877d2e2c86e0e287e52f1a GIT binary patch literal 829457 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

fu_-$0n!ENO*?N-4XIY^F!tvJ9Y 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

_UU)Gmc>C3|E&C#$-5a49hvDxSOQsl>n!) zW{71@5B(>HVPuDWV(2$5q-zeSmBTbA)Te~z8DU{K)Cr*~pegxWygr-lhAKC($sjft zgv|ynHh5lxHxKlm1^Uea%a{SyclNh&NoNz_yb|;@Qc{?d%CHI}X^{ z3185F;SheKA_xv{KFhsGMLwI-x#&Yu-G*yAn>Agv*<404H%=}$y;LqMp9}L5M1A3pEr&&N$c`gzGiiQnf z8;YnkcveG~8j#b#lm>1zY(j&gGdMQG&1LwTj50LF2gTild|rO}m4k&_PErRmA3oZH zD?O;nBNZNpxwdy;wgYbMfEqhg*AbhJqcPKgi4N3r7&XVZ?uq6|EQdvM$c`i3suHzv zL_1Y-#Swo&XWLXn!%?(wWG~P^T^Hx`4a9stF>BsPU!PBnzn)J|>_+7*7w%=+Fr*{Ejer;Q;bEd4cBSvuNuIyHUtGTRN+%j+V|8O;<%W zbCrf~GMAaljh4!rlys>1{PK^*4Ia>;%!jM?;7Jdf@~{aH+;R$dpI0gNsG#}$PMXi} zOZhw!$>)i2KBui4X+BR98aFbxF(r2!McW3THUzVgZAQ_=hQVuKT0^!PHmLzQ4OnR) z+fK|v!|pSvHiPdn{7gnzjX_r!738z{Exo#M%Q7EpRNwBwksdVVVG|y>?=ad9n(IJS z2W~nF(NQ#XNS;I5wIXPa#By|iEQcyN6vv@`LFbC2*rt*ij_Laq2D%U&KOd6j^S_dO z&bANc`uVPOI@m{O-smUTjr;T0jZ|(3U(bW3ujj|5whc^eJPWjJWMV^T*nrwKK&>HL z4V%=^od&ElFr#4-8us=Ks?FfKjQ6}uMp%vEpfDWH@Z`SidCJotA=HPP_uxnmit?}t z58QXa%^i^J&|OEYI*!7cI&jkgiH^*3NbMYg=8&5?RLk+v8Ik2kB}dxGkvWd6jYCo# z$rtp+@C(Pxo|525gsvNBrM9DWI{IA}rHDK8w^3p6>Ov)>NN zwoa9Gh1@W!I(j-|n$D&*s>){fWG*9@>z~SvkjV0R>4!=Jx(xl{t3F)XJ*d)yvaiJ? zJeayemmR9>P`9v%sv|ZX^9rUz6CFiEhw3?G&5>JsJVX_*s)X<&A?|{<)jRr0>Ql0TfADh8*8LlQHl*TAmVQl&r z>2mY=rI*`FxBPGE;QGT?eek^pReIQ!M=CtlG3btUX}Uvi?a()|$gTrZ9cIy?dJaKz zXw4jv<(SYhvK&P#MNFsw0UHfmXqa^d#b$6^hO5a4 zqcJ`x)nN=T?xtSnCFQ()kaWw=>frjrPknH;2UU95m4``qV7`N9J3!ZARUN44$UMgh zqUT67$C#5v&7oS3qLm|(98n_&>Nrxx5${t;x2b%0S@Oa${mSeGdUmf&a1;$3Kt3Or z=krNP^M+tIlGY7LZU~JVs@ss&M$xp9n2jqlvmuC$tYJg<8j#iyt%lsHVRIU~(twQy zE;P(O!)`M;F2l`agwPmeDhyCx_@9@I=jH2^TV_@V)*n9VgWK*wbsje5VGZWeg$rt7Q(Ya)1*+J z6Jk?BXhxVB4tYXY2MD8DQD7zeb+;ZCc5B$>YpjSsgy9-GzsHN}FAWZ$@L9gPzcdvlA6ZrtC7qQM7QV zf&3^;y98v4pDI= zO&s4YpBj#7(^pPgI8?zQ=JR_>K95TFrlfXbLTWcYj`KN}8%5)W;5J0HQ8aA;WspS~IO=>w1 z$q_Yj2#!Nm97z*LY&fRvo4-KMntgyMIK+IOXP$X(7xOu7-sqdZZVX6YHy(&zHy+A% zr4*Y|gtm=LZ4^x#h1p0pqa=G#WU( zA-WDxbwH+L#Bqt~$Qn8X&ynw1Ni@gUQzFe#SdLV3oDN8i!f_~yBWdCg3`g9;G3#n! zLa62Qyz|a`%%6@G^ErNf?w;6AsY6;s@f2mHVU(Wh>gr^WZO{8 zS_6|Bs?$)F24pl~p>d1BXP9jU)n#x^hL6SwuP{oo7l!jc`EG`umnu4COOR0Z!%cnA zwFgCdn3P83E-ojzX=UCTm@|R8L+f00Yj_pRr^y_*1LT)6D8-?3Y)P~%&QJ4)# zY~)@eYu7Mn4bf_dQbTqcpwb`-4P0lKZ3fL{a7~7f#t5x2DzF#AIZnQtk9qOHk+JA=wz-wmm4LMn?@e%`TXK+ z_0}Pv%XA?A`r{`D^+9jI4&8KQq9beQNIXZ<&XH)2 zF|8xbfmx1RatMwi*{Tw^aeO&tsi{k+`Mlh>%X{YYxXf;(ts9x#NE$a(w;`&H*lfgV zW12y1%$ByHn6yS=HE^e)DhYr1_|62xDB@YM&^d)TChNqNA+1M(fJ?T}kL9{0`(T5&x@q<(t+BoGOtUKAiny8Z$4<+!zMj&vL!mn=srIf_P(#Bs!J9AA8SeyTX)CXR0}l?;dU1^sJpT0W;=&u0m8 zBiWR4e*CtPxD8Ql=w?F_8%e{4;59O>p<4}DYRFFGCdp~&MgtNWn9eZS47<#rn+!LN z5lUfHVK2zuqCWWyB=)u1t&aq00R17Dj~l|Zd)TB0W;|fwq3aIScF3|rZtN&rN1-}0 z)1iuvtf3?K9FpcJnmIDdQAm!wkt1;&pHChf?^OA6%HvaqeDy@y#9?^h0P;D~8=JS< zqV<*wY}IP(1v|ucW80*4Bb6Ij<3{2((zXpzZ3t!~*^E+%jbtZEw^(fC?HZZZP^?BF zH4YV|hUhd@rJ))PNNB)5!(=mTGJ|e1Tr@_QHjMI{FPyzaqvSJ?*v(|JSmi9ye}2fD z9df6J@WfD`7sAs*cvh%ej$%%j{N7uh5~f>Y^BEy0pV6=9G@pycjbt)d{GMB!3+hur zeI|%a1kKYx&LogN1@xH!mOJ-rDwDp=8s@xM;%N?f-Bgmgyp#@`(S_!qBy{2IimoIv zq16eYn9ruyjVzrLxsmiCQPNoz8?x63mCg2Ku3s+KCzI!%JdV!h!YMPK>mox!OAvSc z!80Ee?O~E0nDT&x$M2f&fNTfQ*imd@iA~2mqUiucN8&l=6WTch&5>CSS#l(e9I@k= z^!XBT8^;%4E*U9~bf1cx&#TRDgXHrEN8HAUt{K%T=fTMzY9fsn4|}$JRsqr`VP6d1CSk>>&R3`W;$fiAvAQP?HtLjl~i+N zmP3{tX(PvHJ5Aa-avYO)jd!XfU(kDgz1KILzuo)0eZ&`zSa4|hEKCRQiJCX$ujju# z7|V^UaU*jZN!y03Hl8iaMjc?;wDP`{g7&Wm+ERmu>>fgDs1{XthB_I3}G^njH|Dm)G|`3_lkh^-xB zV~4IfGSiW@bR?o9Y3NWq$LOq?BeERhPaS{igwrORmPn4gkt1^)pHJ@b#d(q9n0jIH z2L1iz)2^6)<&3Mc7wDg^OY`}rG@p;o^Z7*Sbt7us$mK@bxRJSyq-~>68<($mdA=Ft zs@QDwEE+b1Z78zVP_0JqTxy6;LsJ??p#k{}%x0Ke#_c4N!P6LiZ5U-WU)0T88@oiC zQc|~(v~476BWl{n&4w&C6t9u&LdlvnRI33w4OwZ(+fG!W0c|(IY=+5YP(%htWB4eH za_mKYy~XkR-8|44HtfZQKTT<}Sne#*b$&>l9h&Bb@XS!37|QcPaast?3gt;*GA9&& z@10BuWyJwa2%&r~UZ0`apgb8A=Yr5wP@M^i6G3bq2+aablR(N8&}IG?dhXYFlfK58 z=Y>AQ&@*=@cD>R%jP~H`7GKEIh_+%SF~-I z)49-eA+nj9%=}z#oK$X3dAxbW2hZnWv*6nh0bRZf39}o9uRmz&!`AMBNe@VQ=)%LG zJH*xw#dQcx9kS_2L`TxlQFx9_bBtYJ>;i@5NF+zHTSasn(N2{_aeTdOp3f_%`P^2? z=l9}#9uepB=ro^WyP@Rs7qQ#O+BOokQJ9VCD^Fi##ws&botcP@$ZN!6qtF_d)ySkq z;WR|0AsG!-Xy`rzwi&p~u!{`3#&B)J2-|$2X^Z*lCM)J|pnS%@tJ{LN-e1%u%MgDF z!qp!%^%|8+kUiN zvRfs09MTtbVL0Lzj#;y3$N79{me298Q|^qXgMH%H=Y9+Jk6$+iF8V+&Hy%mdM%K2G zsExvGfv8dl_xy@3B_&N}-{-CH2llH)*hi*Jn;gRZ&!*$!C$quQlBT*f)>BvP# z;WDTkQapOkhHZF+YHZIE5M$)t)wruoF8#a0=?HY;JNUVk+H58{IDh<(S$U;Nc z8IaAuT!zhL&@_gd!U$zAs?`>OWJS};XEe930dKRCA%44Ic>2R`K1|vJmLAZ)7FBqN zzC*MfMQcaV*pa!8M0LofBN82j=ZLngWSXO}97!ujDmgy+^r6IYL~R^jJ~rj?_zU`} zZ=a4|IG&GQIAUQ3(>)*PmU7T%!a8DVUoQ^6tTbEY>kTbIc?dpfIPgP+a(WTxk`e=64_kz2CZ zmcsaHtbA?&F%n*exH}NK{;;VJ+>uGRPjCoB|Mj!1IEjT~7%XNu#iXq!qcpI55o^Qwv9sO9sTNmd{b+M&>p|wUL^QxMd>}8&ShXG}P@Ty3K%HhRI~uH3nB<_}Yu|wM8Sy3QGpJGTf${&m1w*wkgUG*WEBw{b4g7 znD&6AhpIee;UW5tqPe4J?T}rE*wmqjj?8n68olM1t;TGXG;?H@Ba$4M<4D>#zU(w* zO5DWpO=LKx?>A${tZtFu`1z2iVYHUdx5oK=*L?G}YSsGQR;^;YaewXWIhGr>ujkBd zh-xD<8_`~rykR5Vh7z@FB+VMR)essrGN+L#4bfHZF=?}qt971pRfTV}4JY?Yk>yFHJWQ`q( z>WEE8syYhM5jAu~o+E1Kh<2@vIXP+ONH(k_l0$YJiQY2zR+n4pB}YtWO8H4C6~G&Zrg~|#-*{^$jn9}Hll`&UTu2CUL(>Py46Ue zM&>jMrBN6SQE13ML$w)@%fLm3O=Hj%hEMZFdETNCZABmaZc+MqAwI);S#HzH?aIwa zC>g?cAT<49QXjDQ(4~i}JVfCE>kdhFB&y?fQFY{^=&a6VV=(${%PZAI@r4P0$VNEq4xE>ZSCth zk{e0m#%{UVNcN*dW+U2+l8TMkYeelDsn$@eMj|ybr;#a*!e|siLvGJdZ3g5rFq2`{ z7}PclcY9Hew`eR|aRPR?sOx!wbcQv9)AZ(yWy}+~Q$*YJ&^9-OXNJYZu=oXdGA$G} zM>Z+U=7h;BbfGw61^s=}!Xf5!rZ-x*PV7cB8;s;eHW|$3f=L5^F%?W^g8D>IoCm_Q zKxhtVo&j>Ee_c5Rt1=`0GK42VZ2IFTRDHnOLzNz~@(_hb;X6{>k+pURu0v2AQAC}9=FhhxOL;x#V0NCdFD2j zePX$960@=5_p#YX#YXNmqIQi)YeZJ#m)L4(PD3;rh0qXnhHNu*mjRm$Tw~A_hD-BB zNN-X9)`~E0qS@uM?fbfo<<5m>#7~BB9EeSSVCn;E_fVyWXgpHkv5x3F6x)$Db|f&N zXzGaIKs5Z1#`7aLPue*W%@J7+QF0`XS6Z#u_@V|qLx{PE|Xg?zrd)jbRJ zU9kVc1ESWA#U6?pH!`=e+>@EvSb5*bY^*voY1oL{H8QOcSq)KYBu?Xv)M;c!qYxT} z&ya0~>M~%HfolxA!rRF=Fi8)ug~2VI_!DomzLv zBXS&38^@H#zk1@Ery|2KW9Y0|KfWCOf-uVGNY~B3dFw3~TyWuq7uhb68@b!KIBD95 z%tkCWdPZU+@fvZnMr1W2sc~p5H4>+hD2>c$WJ06R8KTXQUB*#>$$&M6O<{2Kg|D}$ zQdXSMsB*&doJhM{TFwj2=FBa#$Fe4i+*zV|ehAGD;i;iKF)ZeVndc~e_dR}mGAGQY zgpuNiW`xlTM>HW6^ErBbj`BH^8=2e4e#@Oq1+$r8G7-$?fvVGxCxQAD5TF0i=YAn4 zeNAbaw?#8OTLwBW%r&R^=6027%}r`sN~^A;$mm3LWS#>`=tyxy%I>@Gq8I2$aAf%$ zO$QUZ5y_3n)nVyu&SrBmb8?xV%GKm?OA6N~cU$tgp@m6UGs2Z2l-)3x{(#hn>ODm1 zQ7Dg0cx1XGZth5AN7C34xsFJ6q^4t&SafWbc#cSO#FnGu#BD!b)XAj?K@+}?Ab{^&ofV?H(K8t*^NYQ{A2J^k1aD~ zxxJQuDt>p))4A=7?GB8z#_9*BRwI%ck<&<&Mq)G)p^@o~!e)prLp2$?#=zS!?DoP< zTa;xhnwFawMZH@#=ozY<7xs6$b3=Z2tCukeAx7vj#Oy#|{h_K4x!t3X9)vV?zN3$-eMhIJW5jW>ijF-;`VD>BM}Pff(NE8wbnfIHU!Gt4g1+SY%V%6Q zyVpl}HF_SepF>*~<8DiQE1L+S{eTd$pkRF-x$b?7YJ0jar%ji^gym$NiN56kZtnOmb zktFn(lgIWOf9iw*AD!{ZS)ZK~IlI~y^u^y@HvRco!+w1EmtW$1-lX=Q)LSpyanbD; zJLm7aEP4LY7shJivf8)vm8)Epc#YbZb1j`?t8qi>G$N&u7>z_|Bt9dv8HLM`O@^v5 zAcbMJ7d&kd&Q>&{n+T*Hn$H$t|dh+BcQ@;NCyYFVqNb-5!dFPvNfdv*?XwgL%Up#Re%P$|9jYw?3*(@hBC6|3N zxymeV$=#NGuKdh!xh=xP$&A=!2eRqTSJ^GI5_k~eg^r-nq-#fP7_ys2}{P6>yJv@2vl*hk$YT9$N z5BT}#T0Y+~f1g(U7TIpG9sjZG(z`GF^$L5h)Mb_ZR-GBWI!C_`jDH*WTKwMp#yW?s z^X9sTulv?||E^{85wXlTGIbe+$S5?1sxaW@3!AralND7qPBeM-Q1>%B)E(M#OsT$q z)AB6ggbCe@;4(y)AhP}_)JLv8eu*vh*)3L2iT5x>r>v`v;IxV~B^4~`3 zyxRVebgrfI&yjGBoyPC$+?;+j-%|T(zP0wvoVbk4WE2`hR2Y!GFnJ5EtSHw_%r)wP zeeMl=w+ePzGPsmnZ&1(TD@u3{al^K@&gfe6M~pySeXk zcdNPPw4`E7s+X7F^u&hJT1{#(r6bqz!3QHoj2t<7^tf?RLQk3U-FH9yFlWwu^DVT{ z;)^e}RFuxEuG+S3md!;ntGTRZvOSNhN#T|>Z8^_R_q{C%ITv}BnM`AXn-SH8v=bai z`&52J6UCq6S>n&>6!D+&^zg9gz2luD-o5SpJBHu&;oYO}9XIad2PO~x=91Y5%$YNP zpGCI&$F9pQw^EnYR%?5}>IbiRX!NGB&dt%UwAa6NgWHnX-$wHm6TeOV9MAVMc`-uv z7Pzc%Yn&jPhq|eUtriG;TaJ4^d!M1JHi6r6D)KB8VSnDD2Jf9C-aG33_eYEvHER4epYAwi%FI>g%xOJl@x_-JveHVcy%2pl z*RuKd_@(*Q*vuUj|I)8`SB`QydPUBxMf7T{+6t6VA%je8l=(MFe zt<g4(Zth zZt0puNbA&;h>2bMvOe&o1LN=NALF-=SEHBdH*bFX-|x@!;oTEDPTgb9oW&km@tJn* z*8Fvyo7cN#gCjSZH~KwE`ht;sBWKP{%wUsxm}{&+%W28ymeZvF4ypUxQ=L6Vlf`I~ z`1J z<=^O*!#U4QtMIO@-)FmI_nFJ1`}EUKee=}vPwq8j$YY%zKDX}zJ$iIqwbNre58C0Z z?H|}~k!@?I<7pjF+vdLLb{Hq!1!=b>BU(;NKDV6otkT%`Ik&Si^*(!ra94_MlEY~l zfBW=hPhVC`mR2e*Hqmed2cTcnoOe~oUG*KuZ_DqbbKg}e3G;J4+poR)ls&VG%4pKJ89 zugiV5I9>4j%y+fBPjPE$9NoR2-aAg@Z=SlemdTeqdC3zOKXLJpi-s)o_|mmx9{k87 z5AXEA$M=oD=cL;(9&))m@+~=}ApV)o(-FDk$mz{Us>6{(U-r=m;7xkI7 zyXbajL|L7sbuF(4#CPH7Cg0ie?a-fi$!F_+!EeiH$!E&Bs0odqww&J)hWf$R4#^-aSg@N0%J@k3o|j`t-pE@4vr) z|9eilqAh%R6`8bI;wE-tCKB|FO&8cV1$r&vyKD$A@-! zF!`d6zo`e-vigi|@2}m{lN%@XY4Vl7vz05H4&BK&_}TiD;J4*8!+dTDy{2=XE#*8z zI8TG;Dd9YspC{roBtDPV&SQ@~T07BK^PoWwKm6c>0|yQm(68S;_uP5sfB$>kb(de> zqsOVI9((NJhaY@!w{H9HyU#v*?X|}qyYJqq({8)%x@-I`T{}C*XNTI^K0VtBXItfT zG@NamPKPFNT9UCbPD@U;ByH&YwI#8d#&RNOnJlJql*>^v4<4K)^Ft3M+1$T>-@bkN z+HD4a!a4jcaH_CDz4Zo|4>)#cf}pYHtBo?q=T zWcSBAeYx8gyH4J9@-Cn6JgIh<*y*#K7T;;{9Y5W1u^kuN;gj0^TXeVoc>6_*o4i&R zHxB5(>Q@Qqh4D)c=!IyvNd)wQp>In*w;YeNvdb;~^LHilC43UE2wmmlcm?&wpUBJ0 z_sQjo8>Mn`qg<{f^M!FTUr@{C^J{m>!RI~F#F;%+-0S` zSLnR_o)_(L;qDi7I=|ETyPdadk6nB0@}F8ppS$z9wUj=mmeJ8YJ5K3Ob~vk+(dpgp zBk69p?L_5f-_#R;3x8XWN3Yv=_BirwPG976g{x@^($d93m8XmOGM*;(fiLh>vA25j zM~lwljh`;|D((|cMDxDn4%s8QwJ+w~AK$(9#oXz!PLF=^=x&2258m~W&mZ}G(4;{- zKm6H4pT^nz(ftz#Ot|l~e%+&V{@?L;9CPcDH@$KFE4_wY@$ALR*7Et|?&D6};+Tz( zxaD6r9&-Ib?Ymvw^{V|=>9W#3D|WtQujTe!c8_Ih{})SlT57jPcUyATf9(2?T^`xx z?>i5weM>(a-5noFZZtd%_{L5 z(ABhv1#huX<)P>Z?g2Fg`fz-idZlONOU0W$Ctp(BS|(py+#wfbxAwgp-`W>*?Z)5C zyA3|Cmd!mL*=5jwYT115!#h2+WAdtT|F#1<-nUS{t?%9Po>q6ycjv~pZSdc9Z(QrT z_E)cVd6$bW>e1t@2TtvO(mlrxKkB{1-}>k42mf^7OWlTb9lGzdF3;}sOy{TedUDSv zYJU-2xclR^zXHy$W%PNw4z7JkKT`Xa9u$8|KfKd9(cSUv^zInRyyV6{FS}7zpCR4s zz4~aW+Q0oVSbO;RLbPW>cGGfRALN7FJ#Yf9&t63)}C^OW&C37jXSGekI#=jXBX zJo;#&GomSAGzW|(fzd25ng%}bz`%j`-#=i$efLE(!F%uR)8~KxyYtT5Z@=Z1n{K+{ zhHI|5>Z;2wi}LyGvrjwi?4?gg~Zr%3Zf4}`A&$0L3ojXVK z!f0Z+`|gqK$mWL0r*e(*s#oBQ?a+xMP(vUI-n)|+qc-TS)hdiA>U%1bZ3@WLpc zPe1*XQ%*eb*kg}6>fis)68eAx_TRs2*M0Zx(k092M0F(kF3D&yrPZ9qlN!ouJgupD z?VH*4&+e8aZw~ofZ?RBu{yOOhW)52{g&~arWuYbV*U~K#`77xrsXR5mQ7%tO@8ges zncYXfNbcat(T!f3pSj=keW!K#exL95{`ZOL6H zN3YV+Z(5?e^AgFe1@z*{jRShI?8X88x8mjjEea6%Kpq4>b|qpz{)!~bX-*cUY36fd ziiIlAN&$QX=TIyKeqd#xA6Z?9M-&*@Syr$Z(OD+Dwa?|HlUw^>UMjhfnoHzdbRYTq zBYz+CpFvARg07a%i#>SugMWMAtbu3N()q6gPQUN8{-^fq-uIMRI-hv=33nZL$1%4Z zb;}VqAKv@d>kql+z^i6l{{1E2#QA*AnTwpd;K{8|nD5v>9d+9ge>m)>fA&7)`dUI? zQ%mTcU9ZX#dhbg+U$WQNwS>NCkEykUo>EKbFL(PQx{<((3|@3&hgZ8heU{#xQt1)h z=u7&O{3hShx%&{lr4<39d{0lrL%LpvGphFOyxCpD@7(zI4R2llzw6$#_6@II z*S=Sqt5&&u#Y>jEaOpUo&pdVf$zx6!dEBN)zklQg|6cF^+q)0%J*zrh_*QhlCDxhq zIygFlqN8J(u@55%iaMSb6p}#bgc_tKBvg6zDCvY6T7VEpgAhQ#5u{fI1`q*<=GewL z9>t-)(gestui8_?9Qr4dX*?++@g%USQzU%BB!OeGEiB# zKS*7eKU-jQzfNK_zs6%!zeZ&gze;9YR@#ig-yoU4Rs0pMxsc7p-^Jf7eDg&|4$jR- ztUA0rIe&5Gp~cC$N#~`XE6&b~Kf7q(vp#jkCrk|Sw|oJ zzy4R1&(qJFy6nJn_h0;tvj!*V)Au-ax0820Y3EyZI(~;62MIkmLvK5Gn>iC^7YSXS zqOaKM=&ygb(9wmDu7q@9qz8ZhZ{eg1DP8`3wGbZV-@jDKWAInx^bwu*D3iJsAMFjb zBR`C^1`UXl*Q^LhWkjMB$+S&J@;A0E%GGOry|i=rI=qlxPuB8bZ6DP7`Q2aF{&fvt z(*fE&VATXRPNQf8i$1Vw1iMaf>C&PVJm;LE7d-2%GtM~u^ixkg`Q(#MI^l%ljyvWU zJD(3Zm zbcc3-=yr&HkBGO4e5)ANFsAPt$3hpmIyIPU@^>ufa7Y?U5?PbUZYsmM+$HlRm%z!4 zWwV{mXP;fA^TLIvop#D83l^Ms;_=5Hd+fY^LLzj^rKha56(+LS2=9#|;5 z$&>fm%TDMWcIYy?Na#v**csjFJ2$06avDzR6j>dU*L`I6>X6*S%<*Bk>;&0V2i?0KV?*l8XQF)E!YcG4l()-JM=ld4FZqZNAy8FymFTC^gSDbqL z$+w>LqZ4jE?#B7o&zm>0bZDn;v2)S|IHwv-}$w7Zn<9Z zSICYn{(2D5?cYz_$!&wzxA5RnlHP$I#K zq<2Tsn?y-tQP${)oR&hNDPom{TwNdn!!Q`0#juXcoyVwtoyz#WAv20!qcbk8ea0n) z(75D(435oz)hLa^Xt-IolWje3382dH=K5 zTJ+jN)h&GGsV|-K;(|Y)_}uZ&9Q&tZo|^l_?AbH^_}%YT`FzCN4n1`Gx(Baa+;Hr- z);C_W&#Mb(xBH8e{=Dn+rQ~>ehd&kCZsL>MKC$iG%5&7_?vGnNQksrGeC_weU*S3i zr|91e{W;xFy7V38DY`ZuSRhJ%8`uqlXe1&vPMUw(G-cUD&)$7aTmnZ1uQT;iP2gNNMzV5qxv;6<1#~MG(O{! zT4;Q)Vh|T!Tsn=53j9!!hstUcTBH1ad(*NJe6Z>Sm;Cd&8=dn{i$8nzXBK_>tWTYB z*TRn%&EP2?UGU)(KXm-x9sB-c-ZyuH+3%S#qs`|d4*kXS=?5Qt(ESJeY`=TI@zZ_o z-utdS@7UwtcDrrTt-JoXlpHseP2u$uubX(?w%2ZRP4R!QvMnq`#}AADH06JQuNVJ= ztN)obJlUeM9fOpv{)hd~+IL)1=5%d5%A7Wwhi^S#@zG{AB0mrV!ry-=JxE_lBtns# zw_4qp5c=e0r6UqpiXcsqMp=;R0(2L=z`!MjD1L>|D1L>} zxVTUnmD8xD#;V$C9Jcb%LTgmgxw6j7rY@b*o}KqwwC`EpICGzcd!N47X?vcs`^meV zwCf2wAGhQD`Ni$?tXX9~Z&~GYAvg|RK4ocPIQCssDULl)+x?W?PM)-2*OPWWVW;DF zJZ^_$x1Yb=^^N8zJ;$u^v&PLVM90=MwmP~p9hK_%+Sdx#F*r$=vSX0arR`{RM|me* z3lGzHlsRoU56F68;)9nT8UYgTLHbo9qqRmd%-_qgof}4nm!{X#b$oo=N40)X^XImI zb^~bYjIIZ4nn1q`tlGe)4{RF2%4<}eU}rX}UhvE_3%7CFX@%TqxeTXvW4}sq?6ub(d+fgZZo5sIw976{PuMkuRae-wg(M6`r=c~r(@5-KjKaBoeaYf2Z)}=C?%d%vaWpkI#OP2WQ zT)2%>Pc7s|CF_nowy<@xXBT?oJKu5hxiTF4?pr91!r8eA-C2%K+|e0r>N`nFhvsyA zQirB>>bxF>%pSYhJ+^hkuq{PeWg%a?KrGV~@n3Z^*FwWF z8nx0G{9RN^jSCB@G05iHY7El(=Yw>9c#zJ8*LZN*1Ir$$#71d0?mhdSQf>U?jJp=z zdHNlv-hRq$h1@vtmg8?a?zs8a&$|}N=R?0ZeY1lrth$g zhwnUK>p_W+FQJPcn@1UtR30SXlE}-_ktBUvV^n^*EJb={L8=SFT}TB6Eir!JEoA&F zqB2~W(dvx)$o&7bLZdSprP3&m&4tpqsBjvs)L7M8jg>3kyza%L}nlnvJ#3 zJ@?$dIOp|?UstJ(Ghbb}jniLo>ZvEcu;9;w)AO^(A79vwdGqExKI>64pO1X|;cq?k z(4rxn`i6tnKHz};UpF{Gmx^PrSG11fxt*Wg>6yV9y0#p(=6GV8#|LNV+H(y4#%=w_ z!5R9I!QWPe>KL4&3)k_r%5^ldqq7~I?r43-Z|hUEVLTw`0b37Bd`RU7Vn8(K>1Yo! zY$Gyu9mxp#h*7Z=d6Y${x{wPDd=-QC7_iE4WrnRYI-hZgVKgkI(K?OdS4fRjt<_jr zX^qBf6yI=HVxuw}rrJ33lV^OQa2u!nL-9@bf)Ahc_a}U?v>V6Fdv9_3JoDW~J|B7b z;e&ks`N0oOomv=<{qNiNo^SkgpMCbeYp*-^ykn0&YRB=Top0Ic=EibtzkR7WCKj5b z@f@A#7-V$uAA74#bqq4P`VX~bBRe|V(dmvdr(56Q8V|^MSk~hrFR2mnA(tQW6_DH> zWHgM(s5_D|lEe8eMJ{EbU%Lns7@oxNEC#fYfvXHxX1F@T^ck1bD;l-YD3wO(G|KDd z!f9MsNDa$stSq(0`R5;U-g)OuU$J7vw86=_5gSWNvvH28HqMw_xs6lzIA!+*3r^bg z#9fX*zOWm|Y&UoAoNbDB@aV1Te7?BM=auCR^s*^a4m|gO1NJ+6-+lKvbMhH`FWhUd zJx*;L$1W%Ce8SE}T!uVO^$2X#5kkLmE{ z(YTIUc2qagwe2uLSSslN4YTEbm-EqX%Ra&(%b>k7NJ z(CiD{#<1%Q&DPND4c+F@?GEAokm?Y*9#PjO#9CLS(Ymzu`8i(ewCX>Tc zS(eMPWOkKClgxHDcUr^E=FZbqW}{2zE}yG(KIx=F)>U?+uysW{Sbd#h=W}@jJ@uf2 z3d2z-yGn6L657w`apT~O4oT@eIW0+QeO9MP>pt>&Y-F}RyGP7Y{CCf3oJ3i~stcXK zpjRzdx{cHR?bO?gd@kh12{#W;&o|7!{+MItUNdLTtSe{E zJo<7opO5%*DLAH2+jQ#GDH|7tWB-3DPtc#5{K>sP(KwFXK04_mrR3PTUgg-KupH$w z$Ha;68wB)w2LZjoAfVST7CKtdv9)13ieIHV8rRXu4%2p+y2BS9uJM4K2W35Y@u8I; zn+slo`Qi{o$S5n3gs<8ROH&NxaGXk6gsxr02n_6fk{{qA12`_P2e^#ZW>`mNQ)gUi zENIw5qgm3Zl}70_E~=e|DK&~;tu+P*=R#|oS9y(MVWSZnhS^wLtBtb^xAD>`FIIA6 zaC&~`xTnk8jVI^ME!)AFM;~qFb0O>w9pv-0gV&xi<)F0>{ENW}daZq5TPlw31pPuI zIR+=_a+Ra79D_6TQxl(THOJ!<9vl2k82{+t4Bdzh$8@aPIsXGke(Ve0l zA~86TfvJq|Tkn}zHlx)U zxX`GTMt!AGDUFLNbl^yh;@4@7^UvRGkj;hHSh3>s%a&t>nguA1ZG*-amiC;`VvY`jy@Q^7-fG4fF%$4aa@^-CNy3*NWrccE7#8 z<0vJ^Afa#G@unSjY%Iri+f|xl+ikbGW}9sq&oRj8;{QnFeACgWj?Q(MvZJ;g&0U9~ zJ6zuZ84t{P(AGmHJ^=Y4zxjwTAbp9Dv7Yany?A^gT~&9LFG` z4aqS`=-P4&5_;Ysp)1YNd5%hS6nD|C>1b4kY4}k%Ry|2#bK}Ky!Bz-<#IfB0*X8v6f{kvTG`+?~9ujKFh$nUbtxDL>60kI~q z>jJSh(AOGvCup~VmD#9z!Om^?`CN2^MLrj|8%;ic=R0OT7XrFz2phvub%cfDuv8KEBH5@^+)v8)iNiUwAiyqgvr8Za7S3SLHL8 z(7xty&0Ukwct)p6X?;$oP3rKhPM_Ap%Ijfd_UKrOzLiDT8zX52hE!ru3mKfsfMo`x zGi;xM8;x#F!R z5gD4L7>2S)sV-21AwDWgBnGvR!K(~dWA8>_&!70*3C|w?Omn+YEN{$ytk4_P z*C}p3ANuA)-c&S%gA?>Rh2c2h_00{(KChnqs%nj+a~y*cbS*imRgS?4y0jdF6ZDgV z6Z8{D0P;hBnoeXu zhT}oRMkJ9E8G0J$R2FI0E?9vfG#GM;!Fvo^Wxz56))}_X0F8#JG-{{OEowAU!?hZ% z)-b(>EjDViac*HY%B797&;Cq#xACdsZliP?r=ND3Ave0)jrY&r@R;`%%Nxb*^B|w! zRp;|N>U{onna@Q-_;7OrU7VozySH58xVydM=p4tbyZ(5P(6!_kB=k)?+*n$U8@9W? zdS|889F^xN?m4b1?>Vk4?>S1*(U=ZLbvUlWmL0b3aCHYPJYeHNIS>35mr(JcUHnM# z63l3Nkeo_nHB%NbZ;YfD82tMrnuQErWneM`(i!f8hP|R;8x36Z@8n)J` zyhgpSVTg?-mDwm?M_Igh|3NzMw`fthwsB_THtNNV`fj6G-8ftYtty|7Jo4~WRX$Ije(>_C%cd-CZ#b$GbgekbmaudjgM?nN>q&!zt|iAHp-am# zI7QDNoT59;(XDfsp2H9wjp=BXI?9x;Rfp+1OxfYu4p(>h3m%m5pq+=rdg#PQto%r` z0y0`2B$X0b{d&FB9bZh_r)&LW-5=im;SHeQ0dhT{-2|FlVAlp>eW2Y4x}6}@3O2o< z{XKWn3_{&tm(Nu@=;m`Jpz9mx`YZ1)pP`np`rfkhg8P|_gkd&Jl_F<+}V3jLzCaa^6!IDI1bmC2G+PM6DEGGj^uN@gsZeXr4p z4M{pTZo`xtem>W?8-jf942P-g8fRxZ4p~CSW^|5}4$tYFNu46A^QQG^<+YvJS)D~c ziJU}T#0m_p#NZb)c$Hz<3_qD2n_>72L}<85qg&H3okk}$T&rPe4c}{YV#6{U#nMKh zHU{Z@_nAMb);21)QJ$V}JNef3^nCO2H??--+PT-vxthx7!@qRc=2$+rier$^Ez zpDV{P=_7{Z*lDK^4g%V;9IfW4);TKAF`@Jvjp)Elhp9SD*RiGHI(*yV>yFxYc)|lS z9-Q-#Sr5JV@Z?8CK&KWUqzCC$gpf*POgM|!H%4*^4B7i6x`hmx%7ET8v22E;Gkl-n z3Jr5f!(P)c7d1Mm(OHcPYO7&u4by8BZ=w{xMr@d7V{xrE7L{+LoLRVy!QuIp<>~pQ zQ(i1j&!yaeZ#T?*{`T*ze69t@^mV7b@!++mzM(N3`@e3#wVD%jsW^%g^h>+HSUHZt z3EGhygA;UTIb6-*c#cMNRPU}prlVFJnCtkRaf-HVhp#)J1rOSIaLz+&Jwn7s=;B9T z0%WvANcS62XOT-?q!1XM#1L2vsmS0|1}-z)cTI4gQ5y~GLZdSp=9-4RsL@G{&T6UKq2k4q<351q^LpR@ zwwKTN4aZOSxqI?Y$~)*g_q?OLgRUJ%vB**0akP@7SmhWb^bO`RN2NKcbq>RG0HVV& z9hcWBU8@e;b-1#_wH=V|fPDvLJb33JwH_hjBbEF}zXCFfB4k9IMf$ai)B+RdAkk?pVdW}kK)MjIl%?H*?8>ZSgt5h3joH4m< z2KOrOp7%Iq_u_72!K6}d)TifTcbLEZG20c(8*{dqJ)zJWGqyf@t7?5il+TOzJA2L8(O$5AbE3=-Or9G2xUHAm|?sux#$(b1U>SasO0!pxp(U zZ6MSKVvV5R2|}%)+Y46Tb9c>P^G$arH@MpkX+E1BVWT+AmazNY+wTdxrjY9j{kE{{ z3nh)A+Zp<;A=Dd&b%&DvP}3oX_K4})#C}@EJ{rbRNaK8YoF`RsLs%^kGm?5KpcEeD>^F&UjZrTfn5QAz4PvpQv7_vb8ftBX_u1CSWM zSLCw5V@Om6B{MLc0WD}iMx$057h6ihb{eMCaIA)}HL7)u#%okBqL^Z%TG_D7hNU*z zwT;qkl+EDn<>~p>1wSrN&$pa#bA5U)?S?j=r*AfG(}O>6=JWplwBKh-2VE$R!r7H; z9ObJjh2z+*UF6usk{pKR@HI!Z&e3=dM09kf!%-cG>u_aP4O41ZR>RR6 zp4afiM!m9OnGI8I6l)u2mTMcO+bCX28Km=zC%;gho}aHz&(9q9bbES!a_$qdd_L?g zrQon`I7-7&ouFUaDvsig;}zuzx^x`nw<@LM7@VLx$zfQIYMH~-9Mw8U<2kAqS8CBQ zt`;4R=`dA?xz=I34qtZEw!=O}1G)qA9h~uyI1iom2p1n|TZ6MSKVvV5P3Hq&|{VliI3;NBVDL0yKu(KQX?K76oenSWu4pVV-Eurl=?4HoI z9C%kKX$#@LkZuh9&Jb!1vEGns4!Q17+8^pW#JCRR6uGeV9#G`Jm^n875>#jE1 z!OOXPKI98sK2O=WK0$BPE^!nm=tgnu)xN6II*xjgqm~@qDo1NMs%4Jqos~v&wCfy> z=NMmm4pVe&-HHy=bhv9BuIun+2V^@i-GMK7NQ_78JOly#mrCssCqDAXk6{@QNj~RR z7wH9t{(X|rg$%%DFb8HzX3#nV_8GO&@Q%&4(Ey!>Ej1Xc;cJb?YqSd+p4g~XHY&5x zEp1q8qkbi&b{oawM)g*TAvc~aPtT3rc&feKc+6-A|6u3yQGaFT^Pz8UZ#aq-j>d45 zHyqUx$2VTnD2`^0!*Cpbwk1cm$^lvqTXQs?V?ymYtc4C(bl9fDRvoqLAY}(+J22fr z3lH9S$dretJv1lj2=S5Ptrvv>=`Wx2tBV{0BTiz3hzvtzFfN0W8I;bz7Bpa^;VTW= zY1mQ&wi=z*Xx23huhEE&GMg*0QLSv4W}{o$@YKc`pXl61vAE&LjpBCWgQnd$=6!8D z_?}L0eD|GJKAQsi7wrx7L+uT8WjOBJ@7`*OqrBlL6vtiFn<|5ZZXJiQ$WcpPd);X@OGy1CfmV*=>_ELwfI$GJWr6W7+j0S86raPzw51H|hDi6ncT%=0sDDjcY zedJ#ON&d!2p8_Lh6(eLJL#Hx$nL+CeTxg(1!%-Tp)36scY^h;djSE_<(P<6eYqSd+ zw%G8^2B9{Lo9Du96mO-Na-&+^IDV(vZj`qh^CmX8&!*nM^0{pYSF|_KOUfILbLx(; zTH-jfP#onQbfGv-s~v}V3vEb_Zk5Bd9Mv*M_0Ec`IegFIhz@V115_QH>-e^l(tz#2 zbqD1;WX40PJan(Pq!u5k7eDeEkiI&;JZ)cm>!)x2|ovw`)3elzIG4fDHhza5n4vvC7m-Eh?3d3POQr#PUN(C!J{Z@!_X(A6ANTL^yv zu5ApV&Jb=5@!pVY4kg{8ygdx>5YzOCdE3Mkt>ViylS5Kjp3AYxe90x6WQMYtPUg^T z#xxz~>F{)R-A1>#(a8-{*4efW(i>1d`+@^99Jb=Hon2T$!%&9!9!|1WNRLA z)+3epNcq-F!k1u1T42PkVuUSZ=v9V9X0$p3Jv3uJ16t95mNfiVPuxWfU{#~F8rHH# zt2NGVwT9s}K(T?D4OeYcr)S7*ylBad>b;a_%G2|o47<@RZ#-JJgO3pT>(=P z*69q#{;zA6IBLZ)xl$bE8VBGw0Lf9Wa+H?CS>`Cu(3a-#J%=eex_4J>(?P2a-*phO z<9`FEXjFI5zC&g_w9X^cdZZH{c@{syRzOBjV1&O<67Ml|DnlkSIGus}3|MIR@16Ls zp13cc)KUXn)$p`No6Vb{UZW8k%NntPmYS+~|#?w{r6N zd(HyKN=tAo^9;w??U&xI;xJpn`WE`+Zjr;49Ju8GG)Lz-nw#iZ?OpWD_7pt>TIq02 zhrib0yAD`(V77zO9lY?684tbl2)7<7#YaE#!!;nI()Oil{ldFHP5UQn06CqZ?*U~> zL(>MDeIVTkVx6Gf3R1nG{XI99&-LlK?FLP|VYh>=ezx-2UEr`ALf>%M9igu{s(iM; z_jY?izA2P+g;-li_l1(i5bg}I){yQE`Q}j89qRkTxDGLGkJwk6xcX#rXe#H(<-U?R zPc~CtLz~Wv7WwJyx(!!ubg~Y(-Kf4z0rL6V-=^}}UPj(=V5#?q6V}lNezO86he|CNp@Q5h67F_fDW!Pu!PJIH_S;4O45dUc(g| zw%KshMqxH8wb89@0B)mL+_=?{8{O)LVK@AIo^gdXpQmkF8oNzO!|}N$pZEW#_5}Uu zPH{AA9G2s#q}@lFd^RKpWI5Vp4p(zPo`Vq`wCV6w2jn_n*@4*(T6gfiLux$q&LiX% zmwe(Q>*7am0wbNoi18R&l_8ZGyw0e71|l@z6%9;jTX=kQEIi(u5DOu13EpIa^uxbE1u|}OoyvF7}o*I4%~Lox})_S zza>x6BI6O_JmRcJYVnaneqDo;;W!O#(A~Y=w3u=-bCrdM!T{BnT_^+6jNk{DDO60xv}8G&E0dE&wtn4Zp`1X zynTMJ(GHsV{7xdDO~LVSna>ZlHyoYexVOFGxEod+^&Lm;IJ!j+UvgBd9IoYPmN_iV zL3oZ*baeL|sOfN3hriYVxei!%;I@O-9sGia#(0D{k67!GUVNmI9~lHjT8R<5kP)gf zq%xz`8RRuH?lUN(@jbw3Kx-Pj)S#?}sWr}TwT9(2Iwv?47<_ZZp_)H(;G9kHoxw+^7$e^pUWHQ<>d|Z()KHrbJ~t@QT?7u zqc|2iYaFMTj-y-TKqQB4Ihth-OLKJV9H{4*X=L;a<1X4V9lYv*Tn8pQaNEJ@4&HZY zj7OOBh_xO$#7E3qFQec3#Wa8V_D|jb@*N=60#Z$&ybI*oK&lVq8bQ7j@_2LG4dVbop8{P7T*AD(clh4!FZ47kv zl1gJZ4tPC&!(py*bdJMaoTI+ya2PQix z+rjA$$%2R0c!W9+%X<7e>Li_9eBkn<=l4lcEo6kN48vxKa+%i|;X(sj(ty@9phXS; z{S((};93Lq8m!o8RyG>5;V*4iYNK4+Fx*DFxKZA1m~x|dFQr)Bs9#Jm>_+u!N}12= zdwQeD=k?fp{*SgHe5k#FzTf&vTgxrMGjkXz?K8l9L_oi;W-e| z!J7_9b-=CzlO2@p;B|-0cj$~qsPk~NN8Fu92JvCb51qtFVliSCGGbJQ>^&2W&ZvDx zkkEjaG~hK2$Z3>PgR~l?)&RXmx3J-hjb>%TH5(GO;ku3L?%9+ZP&c@vX*bGz-nO}Y zuJwlVbvKgF7qkuGdF>7Kvi1i0+}dy~22Rk1;;36f#Bo59!(QcREQhtIQsqfA&P4^el{^=S( zNe9TafK(5NHGyy!C}{)TK2YBXQk@{y3QBrGw;A;129(cTH;A=^vV86Yhj9ble&r2+ z=UwG9)e^dn1L_IwZ@%%Skn0NZwouy_${WMb)=<(LN}EGncNo(jrs@#W_lRRFl}9C) z^CWXW*(~=Od^#^)jHR=?wgIIxC+mD$*WEsMdIQgASJ>J4Y#TdT+1btxb{ruIO=}L! zbHrw}CZ)qNI;HOzt2vz}sdKGjq*=&_Q5ia!VdxAlnMt3~8VxL)L8Ae!X~2sbzSID% z2BI}EuhA`RG;g9fV#6{U_UkCN+GtPDKWSCnosHY5o59=L)3YHrK>6I*jcZ%`d=-_? z-?|jb=fgH{8^X=Ze4etgXE@q?wiHL1&+QtA=QyfG4nT6Ws~nBxa9&vfH3#cC#v7ia zG#yqzbEX4c>wsMcBRf#rk(8>&{&ft6oZ8UJD zaWSYgAgAF=4ccmWS_AVM-NJ?^HjI^x#%x%xqu6Q#a2w^}xpW)NODWx3DaPr!S>1RB zvK!s#0F^SaY{w$qnpw<9+7xMw!ol+uS~P`WemVU-^QgUEz3ux#6f4M|}rfuW@v*suhrAlwQ1-*IDR!|ny8ZiAN_kljd=&wfKF>j*o=;kJZa zPY8eWO*MslSEy+V{k|}^F{E3=6uqIQIn;NDvHfA%4w35-MT{|j1JLvd`72F z>D3{pp`;$hLPo60(8~Fa2)v0gMi+sdQGKV;^-W7t2nwf4#RQmZa9uQpDoD&uX1#j!&v43G>5s)VS0`U zmgn$92V*+qssnQ!lJ zL*_GRp+PH+ixH&(I}J!`@K(dt8Zxgziw(eRSW6p}+A!}n{;_>2rF$!-lN;6TM!mXG zyqLn>J{Njp=DWRo{%aDXFpI%?ISbsgVFQ<||IGTou^9bv{J-g%_99>p)?LWZX@f?S4PX4E!Aq%$Nw zgA*F~k_Nt}0WWI6Qp2|z7dTeK(;5P=0gH`pWrH&tu-d3^o-4PpaPPJm+_PQWsP3Ly zxlz8CVx68%yK&5RgLs};EpHU>rp%t;wuAP1ot4iQx%u1*jurJgD$DAZR2;)$bcFSL zDwg7~);Ms-0ZR_ta#+h8u;u_ghxy_PFFItV16%9BT?Z{Yc-tY<9r6W_aN`m0JW^VZ z{M}zn`xnvxYC1qk3&{0=R1=7IfpV$g_ko&5P|^v8w1RLi$Tx$K+|bw!c|O|<9NrCd zKu5^8gtp^=dqPQ57}phYZK1R;)Ha4(YnZAx?58_S(I3Wli1|{v|6J}rnZvUA!V8Cy z%^_kVO**@a8=c&+WnE}Kck3Ie^4a;)8+CRvY1cN>9Ls8=@v3l zsEja~q0t$#1r2URL!>msPNS9@tkvMOM(H)qL%oK%utA88Ze;^A8?f3S+=jKdVabj9 zy_EX&?AVR?d_M9kx_oX8M|Xn$jHNgxw~E7jRmI9@V3EU>91_dXEps@U!(8XEJ%_!} z!H5pTbcj_4?mB4MA+a4Y-Jx6X2sa)noJX+rNaQi%RYr)+(CG}R&=467RB2#q8rY%+ zDm5IdAE1*s%|?58UZ*`guiYM=ZL`rVZNO@Sa~s`TDSvL{hH-j+2DBSb z()nDzo$`A!pNkXp+vt2QUQ(H|&LE)IwocH^5=V7{b`*!V#_?k3INB4mvB=>{4u6%y zvK-wq2cS93bq?Ee*e|Z|q60D=gz8Ya4qA3dY==~L=zK@G@krx5wALd@F2|^hFqxs# z8MV(~g$8dlzDF1hd`$y>`9vx;z-0|mYdBuRT-Y$h25mNwr43hYGBH$a3zPo%F$VlZkdD793syFiVoIvz^VgV z>%d(HCp#pzL#jJk-*Jf|r-O_~8s}kIkBhS8bDYWulNnl_A@dm$qd_Z;i&3S4ISr}Q z@Rv1KT2{kd*RZ{Y`69}4!)sV#qg&bV%m$}6?6r;h=DBhk-r@!-H_FwG_VirZ4P`sX z<+JdHqc$8yN4Ti%2w}x>8s#|bMGjJOpq9g2<}fvfxy}K24p(&8chLgVp;H}{>!@W1 zbtBEl4!Q2oEqKHkk2KE1(H;r&`TNno%Pz~^0m@py_$E;AG^A~y-v_#lU`Qt@Z3Ver z(EgqqYX&89!|n!$lh3~4z&k=&ODOFLrA;B;73$hTSznm0G2}W!S!*co4fV}ocz2kp zKZHBPv6IVVFPTRvn_;ohcRE9I!;sIO-RLKu{TmKU*-4yTj)azFG?mbOW%O82>CwpP zE~)!c8J5ksEXZd3mpGY4K7(7)px-;8*EHalPc%})w;G_JW4SQX~^BNMdAu=17+OXF)Y`1~kZMbsd+4l7Ov}-q< z+l|Kt>HKKQe4f5;^^S^j!{Hl_Zixd?9M&4gi`EGmSmeMZ2V^;%We!Yp*q&p8hIBzgCN$_J4QfpTU(|r5hRkaC zTEkn{u)Kz|u)&KB!fc>wqh8x+?lvs9;Vo{Ma$`X&H>%r>54N`(mfa{{P4R9wO1%-6 z&$ZwHZlLc+497jr9dxBQ?()_+JjVeqa)6RUWH~U+;jMFAZDsUT&OOJK&Mk*0Iy9yO zR~?k=;AMx*cF1*ye!(Nwc%*S28B|8N%+TwMv_gY^?}T2{z+OJVq=wXL09wQK8df$> z6Nn9HWdkxBoZ7HnNrBu(wYX8fl~T)%1(U4zQmSrnC)jS3%NyS9^UQIBc-}fFpI3r6 z(De$3aRc2MjC@%+I9nP z2le@k+(7$Z5dzkmgIm-WefiQ*TZ%wr*&aZLw%x_s%(%MDl7*>=Oeea72CSw7h|ZAv43*K~l*X^oYzCbM_WlWMHA=0qlGYmTx(47i zz&BA!u>q`XKxV^Q+91`2;Wid_ZlgUt6LO<_FU6A2w%xeax_!P1)f@jBp3l=abMv`; zNyRZ7)zhum_Q@2uFG!(Qj$JVz-y+%vS$bYQ9jdxM2{9lY$2+76xW2=N{9 z#zW>jh9EO)o1xMfa-ShJ8X~0;;50C)0b7j_twDPY^Gy^-Yyc}8=Ibc_(gvzFnpaW? zw?W=LSF0P4-I%|jb^E*luQ$H49+}Ue;BXqk2Vuj}y{2M)r*b!?INCc7z;W=Bqg&-b zEr+?xfol%hbC3%i(7P*`=?GCBwCj+_j@oue?m85@BV@rNh4G-BM~^b2)fvi*W~t9m z84XftP-`00q6Q{4V5=e18t%FV<23|g!!jG)>nPsR2B$V)w^83bV{*e--9YU|`DzMs z`&{Y`PuC&&d=Zq-PD8ldy5Rr}hqc6U7I_D4tZ}q0VdFR!Xe9@1Im~4aTyxm#9Hr;5 zZ=z>8r)ZJrfK5k;>Zn~uyzKavD5Vv;BUE_A8xPod^w|K0=#2C|Am0SiU7)@Vg!@2Q zBN*;AFtH(R1-V{O*9`jIAZ<6Oc2Jtnuz;o-LfmlhUwYFmVY;4B))Z>HLTOtF_l04N zVSHyOZweTG63a1~86D#~#%fBZ%IRG1nS|?%972O%(xBHgs6`E2Y7kaKrZp5^0~Z_4$_8OJ zx}^aDaxxSmN*% z$K+3XildRxw&U>f*_Rx|Du-h^%w-N#bJ*(~famZ5Ng!+yY#-nr|nPf(o&ZvDxVxhq;Y4A=1U(~=?HRM)9qBUHvVZVq%iVbjO12P+w z+VI>)eR#IqMtgdu<;Ju2iz%Mn=w3~E+-e7zuT!{uKK!k?;Bap^T*F~3aWE%nbB%*@ z9KPg0RyhF6q0k(J=Wt(K@fSKU(NUU?t>mVIQXN9q@jLbuEwmk4-O>7v-v*qbBaKI5 znGvcpbUs5WGL*_Q@#SOvTbNONl zXg8qSXIpO^{WnZL|EHJFwy^6O!iU;?e!#im_?dIVagXty3ZgjLJLrFtI1XQOK&u?E z<-nFXT+LyxbMT%66&*j6i4NR!(5i!T9WvP=w;fvD5xU?JXFQV0j8L7S^BJ|#5M4HN zMnmK@)KWuZH9)Pwcn$kS6i;lZ%m%cy;j0bKZ8Xi`p61;KCO4|pjqb%1&u%!&8*{d? z^ak|S^Bh+_<8IM%`UuXxYYXRj=pri{7cN%ybsObYGjbL~u z$hU&BUQpKz%H;-ZH|TaSG@miSf!}a+`Rsn@4dru+mayvyLoElTIk>J+))vaY0H^!H zIM*TT3^lExzBi0%4mI6jie$d@($y`Q$3`~m#YVsBEXilcZh*HNfZoWN&#>VT-a&(V zNhuRr=IvKYH z0j_I2bW$-%91n3e-y=AbplHjd^1Jx8SI2v;4v z>yXI~jqT9ujyT~VFdn_?4DEu3#%O#`U^M7gPv}JrN@{4V2BbAWui+e>-{^`B>*)Lj z>tbUa7^`44-g0A0GvDP>Y$MFKa$N@09Xw~Yp`C!TiBq)hRST{ z)CO|5(JXG5Z>2PM8w)<%y_aIHZd7)|z1`?uO>u9Z9lZhN^E;4yK9bDmhy4|f`Ud*n zA;SUQa2SfCy@S5PaU9qkhqK55Ne+0G1GgNu<|sV}syTem;lH>d7ah3iU{yzi>yXM0 zjqM209WlNGGalJ>M(s1SLPKseWJ-f{8q}gjDK(TnM=g zSmddV_U74j8{pzbbN6h@4YC`o?8f}HK&%gpX#`_BLAw>idO;(dfnL!6o||h1?Qgmv zxuLTg?(K8Be3mqX?pNNLjxekx)c1t(O(EYEO54JeeIeHvrt1uKtzlSi7}p#&-C@35 z&YR4sviZUbhn39|uMwWkyxGW~&JtNi**d%(#MU=L^Vz$B78?#oalp>5|Af|Qj@2il zSErQDp)>S8LoPIwN+Z~5P*MZ48cMAp@fw8KD9wf`Hne8LQycypDFU})FK*mwot_Q3 zA<5_N)fD&L6i;vbAVoeKg2P?mKnzFqnu@i=0V$5XEyck*4u6q@lN>V3!DtTFbNDZ= zz@j6i>EKj{#C1qzht76{>5e$x@m1Vr1nCUD&(H`B*^&morok<0P*MZ48gW{~_ZsfP zh9@?VcTsS&0WWQIYQujcMea6Uv`){E+%Q)+p7!j}4a{nYwT8d00eTIE*sxbNFtY(K zZFFkGeDG3GR6FSEjktW)G=z9Q%M}NH zf(CY>nVt~)<~y`04DAYaZDD9%$Tx;*J40=27}^`kn!`&keR(8v4yl1pci^O^Y48&n)2jzg2sVU}a`GCEFm$TE8DrF38} z|5h(FbVft+-id5YgMRrWRBB*W1J)Y;x`xDS*l(h^V#8k9keCf~X#-Ll{@RAXZQO>- zjrR0xtZqp1dCt{PKF_!!KA#W&k~W_Y`kZGt>=U&4o=S6qt`&!~#vyPV?IH&!IfRzO zUgjV*hriANdX7lZL75I#btG^da@nD^9ih6T_8pk;=)q@bjfP5TL^_QysexGySZf4( z4N`3A%?77747br9o?W+r-EF)8%8loM(=%o_p0t-YD7_Jp&xb?#TnUb8ZCIQSE^<2dA!LuNVbWe$PnU_FQb;)+&uP^N=c9o$-n%ynpFht_t4>JEItBdgB{ zG8!VK!LMoXiyD;Fz*jXetAT2bAg|%RiQ7(JXE_a--=6clA%tmffK9c^l~V z+0}J*K5uE~v-<*}`-KWDIM5poydzv>-9f{O<8<0_7`M>gB8NtDs4R!8Irw!B$a6po z9W%jcLw1aRyck7~>e1-*wCZDM}o!=ya}QR8uJqdWUWK$IyACFZ##l@$B=}E^t}`5ng;js2`4ou ztC2!$fLY;l8@8^-EJdwTZl2A$8a-U!HNLO`od z(62WPM{|OHt#yKS6bH7(;X4lFTb1X*6SPEf$Snt{IsA1F)N{b1W1L)c#F!3Vbx2)@ zPIl;RM~LoleMW%LxI`s1)Jh|P)1ajWWi_-~16tRByv7R8Yj9$NTG?>S2J=1&r#1|? zvGC)F+raLgKaAf!S1+bOr|0U`lxlfn?gnK%uTSU=GoRN}=kqTk^7&`L4aYs!4aeP( z;sEYA0v(4VIc|m|2V*(3nnU0@pchxLg$`VF#F!3=>X5n)jqC`q9Xj0+;WGk_hEQop z)-)uG8no1)tcF%=AnO{C*U*cNAhQ9!kHV-8%5Aha&oa4Tt!~t(XOZ0?+d=s2ZfQQ( z!fvHNa8xg;EGhH(T%aR7+h5}Fz9d8xhtU!$9fv77ocC2kmV;jA@HL0O&LQ_4deI>; z9h~Y&;yQG)BgA${bw_v$n70X(b%C)`BV`{bZ3HEqAT2hetzcX)C~pQOazkS`^5?Te zaIjygC_2KFEuq;H=4c8fU15A%7}^)6Xbkgoh9RvX-y8Oo%&C=zB$;z$bF8I{7aMxB z!KX8&>a?!TmK(OL18+Bi^4a}5B|M)sHymk}+0G?w4=sCuN zo+I3Jq);6y*P)OdTc~9RsXOu;4UN(eI1PSLgOeIzRs+)-=Yv`U@*4iahWjQ;X*Qh0 zGrqDRGaH!NFi+0{w_%)~F}d-)|6Yn`H;(P>26($sy_@n_na+!OW0Lwuvb0C@n@*ESyp5wof zGxQ(PGc;j3Qm78O>j;t^|66^E26RW36%EaMC-OCo6jCG1Y7kmO?lt^{4PR`KD;t#A zkSuMOYD4Qbyv2>?t(22LV#^Kty%frB%-=Bf_F0tAzftD%L){98z;N6PE^)Yu<1ToO z!)OUT$DxrNJ)?W}P?j>EczR!9zemBY3irRG2_hfs4wc#aU! zL7NV4sYABbA$J{G*%4+tI^B`J2h5=~QnZ0-`#?=27$P<_t)R9Sl)4SS84T+NrFJ7< zK4V{~sBWN%@4U4gp|&NA=?UYSLRnX+@f;y-VQgP0YYgR`VLz>5(Hjmgna4slr%31J z%k^S|UfCG+be7l++}7pJXVncfYdBzKCs!Q)UefB6&|1&2dS`S3kDmH?Bi(pRX#@`O4wu zbG^dB8xCiQqfs1KK6`5%{;Mjm6(UYQKOU^5mw^@)M^k~Bg$*&#fE1#(AQB!Y6D!`fKJby+jt2*J-c$_ zIq>xSG+{TMWZFSPZ}gSV)jKNo4F_d7oFxwXJr!SZbax!D@J`S|$Dx-TwB>M@IV73` zTIbMs4n}ljG99(*Na#AWvO{Y-;*Ew*X(V$RywsqrMu^sc*EOVGLn1cZl?}Ps2v-}B z+c@2G8@Sw9V9SmAy%gugl;b{t+l_j8gSma4@viLo{4jO{O&Jbvi9@J3{51}_X$RU;-$6=BKupDa50j+bCo&&mxo`u{+&qVK{XApPMyy-}wIyA0BFFPc*qn{>F z-UX&<1L;06L~F!)jd-y^wSwASP}&Uo-*m@ygZ!7>nszWNI$%L0gTKS_AeP(2FSk zn<&26a91{Hvtci7Xw`6x4QOFQAU1SnBTj9AYa5_?e#u?j5XcR1bpy5=(DDYPH&|WwJ8eE6 z{#L9ZoW3r)!qMDttPS08G=`&D;%MGe@f1gQ$APYKaE?PSIpQpbuQ^K3u`R#O0eg;8 zbc|0YIyloIQ5~|i4xQ_$Wrywz?b(jxOB$LrjnZkzq((NYL23=mYk-%|p9d~BHu16< z5F75w25C0p)Q06Yx^(W`Mz^@(xeZ)yaJL&DfNnSHS5xfU=k@*DjhXM3=sICO{|apg ze-7M0+bbORgNEZi;R)JN9L62=9a_hsmmF%#;cJeGoaTVmIkcXm6dmLAqJuLXDOE>+ z>-fGhr48GWUTGwC8bYZNXf^a&1N9ov!iGR>a4Q?0*|3*3v}(gx+hE*=zqrx9mEy?_ z=e?A6bpy5=^S8HdpC`(0pJ!~HBA>+#;d0`J<6N*KJlk2~Xx>vflT#eft18wlG~hV& zl7n95a4iS8%pubp8qc9x=-^g5IMX3n>X51qo$CmZ9gXc6meS~}4Gil8b&a636U^BP zYI{LxGw6Sn650)twocd%_La|+frbr7jN+iyI3(YDr|1d!rZ9b17}6Hz?+fLPp{_Fw zYYkH+^Xin%t5Z6|Ya9A>#^nZ=&(7&tkk7MbrO#)b;E)(Qt>H-F?8a_FYdy!XGdhp! z&}THNG%i*u4UN<2L2A%eqtqH$Hfz0xRBSLS8{uZdRvXUg8CctZ-3I9DZWG9jTaeX_ z8>xJ*UQKClpRbnXbMu+6o>z&it(xn z>^P7`4lAGKl7q7x>^m!n=72p17|@vKphQQ0(;;8$(76t^?1)qv7b}#8)M>;^4ccmu zT0`YEkcEvPvEiDHbH!%ERvW0>Fb>b4+aMP=UclsrSUxv)<0-04xW;%puSm=sE}HIdIW|pP~Oqo}m+%4yo$U zx(B{*5r7f9}7d(&qC6;0?5EIPQg)I7r2DCwa#KI1cMu6~uAKC5LM{ zO3kr7walT=9AeLby|_Xxba0|WXgZRq4xQ_e%8o{9C@-7kN<;SYNi8)ZS2bv>L1~Ti z5v_rF4P;?MCN`92gIe0K)rQDz80k#9jc##6AUA~Fpkp_{<&D`Btb85^HF zvSU=bKuH@I*9WF-1XFf`Tq`K=1@pKKiQEXY8`ScKqw9q08`6B%3J&HgLjH!s|B_Jj zt#^#$pnAd_O<{ajn5Qk|`@+l+;29g*BTnHF_zO=>*_*f9c?#;m(Kw= z(E1bfJ{o5?dI=q_Io4!!Oh&7nhCG`^PD3I!c&m|KYhYdjUDyza4S!{WGaD+k!LDtf zZUb7}xXp8QKW@|cN4DJ1=Cf@#>~~Yz+vguzx6hZS%I71#9G1^hH;Kz=fFJ21k`iHhz{O#q*fiJ>xh>fxtvBasli)~aIJx@ zYY<*T_$CS{HvE+h&TPc14fB;0h1+-$kQ)n7x#6sC$n1u`9ZZtXc0>3U>xSb^_&X}@ zODc`wIPfpv*HpYEj_w5ADh}XH75D_rI1Z`g(5!MuEC;mAfohHS$%h zmf^BvXih^SHF&ELt~HW*4M1!x6NnA>WfabA#HtP6ZP0hmxZLng&y3x0^Lc~7d|od> zK1*((AB?==aNbh^@1XCb);O$|&~zNPY9$A|$`N8YM4AI$=O{hL1jKU$hz^nI;O;pD zrlVFJSzL!LI}$n#>7s^AYVcMgN^2zX8qk|4%a%6);3JHVca|`!MCRUmTdvE5IA*r9#8uEOGdXWAYh*;y9gh9NnubrsD{a z9P}!O$a2JJ4tSkoHj>e^&{H%aI_P&-B%(uRIy7q?de>3Qjx9#D4UFvr(>8)}onU+` zn6ej?H-nViz`H^A_IX}hJ1Ea*et`qdXXFN2XgIUaGd3DO>QBUVsw;_`op>~75eeOG-MGax_4M(`*&^eB=oX~4B8vga?G-OgE z-fB=V`I-?d1(vZ=}iRBfnw^ zyD#zi+`OaWtZ<0)xn1H2R~$w@3mk`)&xGWlS2+SLhg@@LJqIN^h=7h49a7VwQ5{Ox z5%KDYW>G^XHR7!XqcswF4XN0WtZcYu!(G}4QyVI`VV#}{xnZ21pF>a2PuJ=EC**eH zNoaY4X$K!klFtGG?FbI{1pNl3;pk4#BE> z=#ZL@T6H9M9YL?2$X`B@OO1G|5vnyXuK~Y^A{QGHv%$TNB3B#s-3ISA%x3T(h__M< zxv}8G-tESRxZ90m-(Sb`hLYRo+3(@?#&_SDG@pL~HiQo+y5YFTyWzN7eFq)vIKm}| zzsliT4%sqCsX4^!93h?~f#{H#j>|e*P(v(MB_AM@1LZw8no8H*EI;Q5i2$% zW`kSW5UUNf+W;3g=)31uZuqMk?u#kf+vhpkK)25l{T!RmOhdR_na_)D!(nuUXL%i= zP;taKj!4PDSPo>FV;+#vbHP(Iw$6cjj&RWtZ8~zO4&HU>yFg7F*jFD&H-e+l3G%HV z{Vg}u3#M@!TDgIDgK65q;pa2G!r|w0SVtJ&65@^{rY8(*3UhXa;ca1>zA#T?NOgw! zvU%02v6{^qO&2OQv}Pk$I_u?zFY99MhD>izUk_^XStB^&Z#XDr7vk*lCUhFhF{%kY z7BgCv&55N(3ai0tjS#Pai47>7?+4PEUD?o@4N7g`Ya3WTcWwh&+_;sL8~*Bs^I}SD zKErxrY~^$Nno4(q{){%C!8H!cabPd2Sc@DQ$q{5ZM9Um%%@O7~NYOEl5gjtqp;8^O zt|R%PhE!@uti}b5)u6QozOI3LjTM;JfW?MrWh35fP-+8T+pyfm!dHTK8^GcQ$ zS2uvu^Pj@7s^IYDla`oYn~R8kpDsFE(UiBi?L~YQtLFuW6t{2?K7;ORr&lIFrR-3=Cj)nKIE)$G%u;# zU+43`qc34MxU!)(8}8DETy1FGhS>}PiyO4uXjeD7@46eiv16Ls=Qf|Wj?HKI z3&K{|t&}u`dc$FKgo}tTy#d8x-9f{zst6p1CpmVJN)CRNLuNUkWe%<82=yGL=ol9+ zI#Qbso$BaZN8eII(g)^i1ao$RVXa`gUNChtD3cq6d`^_lj($#_&oaRgV>n_u!kCtj z`rbRXCyZ$dwO!$`+QQU*p|&wBI>Qvnyt-y{oY)wP=`58SnpLEb|uHxevyF!>Cx zai|>!waB5C9KPicEpuoz2lmzqxfv?kV_4r)ri#^VO}FzY(Og; z60?y`Z8&bjOlR0_aElv^d+y}MGXZv^S>AZOPUpuY?O>98K2ns=?g{#hYQxc;pot|8 zMsb*T9IsHGpoNPZTFK#Cj#6{5mIGeqAT$T=IVR{m2PZlbn~ub)BXCheE;Z6vjVP^w zdJSx0LnAi8l?{p6NT)WewGD~efEPE+yJtXd`0u3vFQ(vjBeWe9t#2sv`B$oZ=5L^V z!*L(K#DSck@A4G~y2gPx4*4R7R&t0fhv=OZOmkpwt(2OB@*K42pzk>nnU2(|Bfx2> zq(%a(!D$U@UE@4dYY+a%d%o%yJ~r9BR)& zy|}_Hbnx%4$W4b@b$o}*=i#-1d>_a)g8g)YF|8o~EqAJ3P}>Z0-*n5q>ekqe(0qpV z#&GgkV>n_u!aOZuY)_cFDb#m`p`If}TPW=dQ#FQbvN@%v3o{#|kj{F!Az4M@?M9rg zi_2%Juv2_RNEi-!D@o(*`cCNFmLsjWTfH(`E;UlFYKW}{r!`W04YAlrXEts= z$3#qXgn5q4qC;vr5~vQj)JV9hA+Z`ONvlC?jS#N^zlnm14QOQ} z$ZY7;hVYdX+ih4crMv{*ZE$kqIpXyEwBUB*$wcj7-h7tdaJVn2hzv)!#35H4f;Em8 zC5|Iba)7HGGRqOEIq-E3%5zXJuGFGqT%72TnhwoU2c$ZBml_hQ!D)^239S+6H6q0Z zw6fuw4Pa?Qr8Y>nVWl(gHiG0v_g;#>x&hb?|MvO4V?3W9j4>RFJLtQ>JLo%N9EVzR zB(WUwWe!qv@}7nUIP{z(8`9)Z177PwAx7O zHjKp$x!fSTLEmo7-yXZ&n7gh0Zpz5#^K$ft!#5n~5Qbw>jN%A#91B7vM|R7h&>Z+W zN9j2x5S}AebPU0Cn5rX98z}7qb2ox1JHfbCFyvcqx)Gi&TjCx&!dvhF~&}| zlmzE<8fQ1w6FPN9j~_pFGdfOcNUcT+twFDAFkU04*btZverbbM8|c~w={B&%joZM} z^N%A=&o>Bc-8Jm(v!gfq%ICv2cLYa3J_CjWcul2S;^^K}ffdK(Pcm<+;A zB{}$24zcA(pgHh$ju_7|p79)#cUN+mj;}{Z4XM>gp*6z2#tPJHU}9q#C^n=k8=%=> zmo~!HMu^*Zk(C?IlkcTGBeEM$p|=~4i`&6RoVQbcFU#lu?|;+*{a1BB|79J}Z?6OT zZFNAuRof6Ayta44Au$~C6ZEUW6Z9*QH4fZyyns0l?*vUsj<8h@$a28T908gm)N@2E zbjU=9(scYmozHTqA+;Kbv_`ns(2EWDU6h1o!(ZBnP#f0T2JSYnyXTKGazlN);oFV& z)fE5Rl=VYzpTDzS9nXJV$MZX!d`{mGJ|wt-rVPiuz!C@Wo(ifs?iAc{+>S~+!f|kt zBW#sJZaK7?17GK$JqP{bN-EJIHytw75g;`bRwIGdpw~4hudxF48Y#p^sM!FPHXOCF zC{S(KZo|5H#^i>P&Y;|Y-b?9LH`*6dM0R7|M6?~8km~k1Lq4zIRye>V=yTL3Xhw0s zZ>rdeBh+yuk{nXYkw$Z5@EoZ`hun1VszcufrtAaxMzGILFt!y;@hx}w_uTqsFqPcU z*^Qj-VETMk-9Seejx>rR)N!Qf38hV88qJZ*bEIku<$WRD7_P}?I-5r;om09EUT&nY z8)G$}i5qB@u?xC`PUP(JCbZ0Q3`cY1Hh2AHv|MVWv>HOKL9c5(M5ObBXgWWDr1Skq zI?K&Q^wI|RMoPTffZs|%<;E@K>c)*CyWzi@ay6$nB6Qs)vH6S(j%l0n`AixP?gY&$ z4s4A>>NvA5LUT}_gA8cKb4Wx-QqzH|4)MV`rPYYl8s`yO zgIw6qij4@fpHM}^};0%UUA4y(5T~}7diBjBa7uwX%1$cBiM6DL`Q1V0WWp*ZZ&wVL9c7jUISm) zz}`f`#0I>wAvGHkwecA*ovAlc z7jy%CE?_to%a%B-j?h#b3w3K8PD@BQ4sMZymmIQH4%l+Q%N*D{E4b#M);Va;LBF_? zQgnoxjz0Uq_(m{wCzz)dOwkLbcN?K{BPO5m+YL=Sm@}VKH-tGl!kjH3_q})Co-kEY zn6E2LDLO*>!qp|4Q>L>#n`LHWSm~TkZfNa>=G_#$9ZZ?eA%Y{+*u^S4Sw81V=$&^C zN$6P1F| z26B29*$r}eFNdILs6Dr<97rme6v?p~Z z^d>r#rX$K~q|zF>yoO$Ez$+V3W<#wu=(P>XZP<4k$l``|xAA9IZaf=tyYVD%pH+I} z_r2t^|BcGJf)x(E;V@3n;Cm{l;*hLyXdH)jkwYdq~o0b(P&+2GZN=Qf;lCfo-4Qi^rAVag5o?%9wV#_3sVH|B4M-)_v^ zz{}_Npn3ye--yZQU!(c_3;8#M#trlX5jPz7geeZ<4w`Ztx20R;kVy`?#d9g^pU}kV%es%MqwKsCAAg&rymF z{w_M1=?Liq`)dS4y+&TK5o$K{y

  • Am0tf^8Q5vEcc@|H06d+*de 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 + +#include + +int main( int argc, char **argv ) +{ + char temp[ 132 ]; + char *file1 = NULL; + char *file2 = NULL; + + mlt_factory_init( "../modules" ); + + if ( argc < 3 ) + { + fprintf( stderr, "usage: dissolve file1.mpeg file2.mpeg\n" ); + return 1; + } + else + { + file1 = argv[ 1 ]; + file2 = argv[ 2 ]; + } + + // Start the consumer... + mlt_consumer consumer = mlt_factory_consumer( "sdl", "PAL" ); + + // Create the producer(s) + mlt_producer dv1 = mlt_factory_producer( "mcmpeg", file1 ); + mlt_producer dv2 = mlt_factory_producer( "mcmpeg", file2 ); + + mlt_playlist playlist1 = mlt_playlist_init(); + mlt_playlist_append_io( playlist1, dv1, 0.0, 5.0 ); + mlt_playlist_blank( playlist1, 1.0 ); + + mlt_playlist playlist2 = mlt_playlist_init(); + mlt_playlist_blank( playlist2, 2.9 ); + mlt_playlist_append( playlist2, dv2 ); + + // Register producers(s) with a multitrack object + mlt_multitrack multitrack = mlt_multitrack_init( ); + mlt_multitrack_connect( multitrack, mlt_playlist_producer( playlist1 ), 0 ); + mlt_multitrack_connect( multitrack, mlt_playlist_producer( playlist2 ), 1 ); + + // Define a transition + mlt_transition transition = mlt_factory_transition( "luma", NULL ); + mlt_transition_connect( transition, mlt_multitrack_service( multitrack ), 0, 1 ); + mlt_transition_set_in_and_out( transition, 3.0, 5.0 ); + + // Buy a tractor and connect it to the filter + mlt_tractor tractor = mlt_tractor_init( ); + mlt_tractor_connect( tractor, mlt_transition_service( transition ) ); + + // Connect the tractor to the consumer + mlt_consumer_connect( consumer, mlt_tractor_service( tractor ) ); + + // Do stuff until we're told otherwise... + fprintf( stderr, "Press return to continue\n" ); + fgets( temp, 132, stdin ); + + // Close everything... + mlt_consumer_close( consumer ); + mlt_tractor_close( tractor ); + mlt_transition_close( transition ); + mlt_multitrack_close( multitrack ); + mlt_playlist_close( playlist1 ); + mlt_playlist_close( playlist2 ); + mlt_producer_close( dv1 ); + mlt_producer_close( dv2 ); + + return 0; +} diff --git a/mlt/src/tests/luma.c b/mlt/src/tests/luma.c new file mode 100644 index 0000000..d964adb --- /dev/null +++ b/mlt/src/tests/luma.c @@ -0,0 +1,76 @@ + +#include + +#include + +int main( int argc, char **argv ) +{ + char temp[ 132 ]; + char *file1 = NULL; + char *file2 = NULL; + char *wipe = NULL; + + mlt_factory_init( "../modules" ); + + if ( argc < 4 ) + { + fprintf( stderr, "usage: luma file1.mpeg file2.mpeg wipe.pgm\n" ); + return 1; + } + else + { + file1 = argv[ 1 ]; + file2 = argv[ 2 ]; + wipe = argv[ 3 ]; + } + + // Start the consumer... + mlt_consumer consumer = mlt_factory_consumer( "sdl", "PAL" ); + + // Create the producer(s) + mlt_producer dv1 = mlt_factory_producer( "mcmpeg", file1 ); + mlt_producer dv2 = mlt_factory_producer( "mcmpeg", file2 ); + + mlt_playlist playlist1 = mlt_playlist_init(); + mlt_playlist_append_io( playlist1, dv1, 0.0, 5.0 ); + mlt_playlist_blank( playlist1, 1.0 ); + + mlt_playlist playlist2 = mlt_playlist_init(); + mlt_playlist_blank( playlist2, 2.9 ); + mlt_playlist_append( playlist2, dv2 ); + + // Register producers(s) with a multitrack object + mlt_multitrack multitrack = mlt_multitrack_init( ); + mlt_multitrack_connect( multitrack, mlt_playlist_producer( playlist1 ), 0 ); + mlt_multitrack_connect( multitrack, mlt_playlist_producer( playlist2 ), 1 ); + + // Define a transition + mlt_transition transition = mlt_factory_transition( "luma", wipe ); + mlt_properties_set( mlt_transition_properties( transition ), "filename", wipe ); + mlt_properties_set_double( mlt_transition_properties( transition ), "softness", 0.1 ); + mlt_transition_connect( transition, mlt_multitrack_service( multitrack ), 0, 1 ); + mlt_transition_set_in_and_out( transition, 3.0, 5.0 ); + + // Buy a tractor and connect it to the filter + mlt_tractor tractor = mlt_tractor_init( ); + mlt_tractor_connect( tractor, mlt_transition_service( transition ) ); + + // Connect the tractor to the consumer + mlt_consumer_connect( consumer, mlt_tractor_service( tractor ) ); + + // Do stuff until we're told otherwise... + fprintf( stderr, "Press return to continue\n" ); + fgets( temp, 132, stdin ); + + // Close everything... + mlt_consumer_close( consumer ); + mlt_tractor_close( tractor ); + mlt_transition_close( transition ); + mlt_multitrack_close( multitrack ); + mlt_playlist_close( playlist1 ); + mlt_playlist_close( playlist2 ); + mlt_producer_close( dv1 ); + mlt_producer_close( dv2 ); + + return 0; +} diff --git a/mlt/src/tests/pango.c b/mlt/src/tests/pango.c new file mode 100644 index 0000000..eaf9758 --- /dev/null +++ b/mlt/src/tests/pango.c @@ -0,0 +1,78 @@ + +#include + +#include + +int main( int argc, char **argv ) +{ + char temp[ 132 ]; + char *file1 = NULL; + char *text = NULL; + + mlt_factory_init( "../modules" ); + + if ( argc < 3 ) + { + fprintf( stderr, "usage: pango file.mpeg text_to_display\n" ); + return 1; + } + else + { + file1 = argv[ 1 ]; + text = argv[ 2 ]; + } + + // Start the consumer... + mlt_consumer consumer = mlt_factory_consumer( "sdl", "PAL" ); + + // Create the producer(s) + mlt_playlist pl1 = mlt_playlist_init(); + mlt_producer dv1 = mlt_factory_producer( "mcmpeg", file1 ); + mlt_playlist_append( pl1, dv1 ); + + mlt_playlist pl2 = mlt_playlist_init(); + mlt_producer title = mlt_factory_producer( "pango", NULL ); //"Mutton Lettuce Tomato" ); + mlt_playlist_append( pl2, title ); + mlt_properties_set_int( mlt_producer_properties( title ), "video_standard", mlt_video_standard_pal ); + mlt_properties_set( mlt_producer_properties( title ), "font", "Sans Bold 36" ); + mlt_properties_set( mlt_producer_properties( title ), "text", text ); + mlt_properties_set_int( mlt_producer_properties( title ), "bgcolor", 0x0000007f ); + mlt_properties_set_int( mlt_producer_properties( title ), "pad", 8 ); + mlt_properties_set_int( mlt_producer_properties( title ), "align", 1 ); + mlt_properties_set_int( mlt_producer_properties( title ), "x", 20 ); + mlt_properties_set_int( mlt_producer_properties( title ), "y", 40 ); + mlt_properties_set_double( mlt_producer_properties( title ), "mix", 0.8 ); + + // Register producers(s) with a multitrack object + mlt_multitrack multitrack = mlt_multitrack_init( ); + mlt_multitrack_connect( multitrack, mlt_playlist_producer( pl1 ), 0 ); + mlt_multitrack_connect( multitrack, mlt_playlist_producer( pl2 ), 1 ); + + // Define a transition + mlt_transition transition = mlt_factory_transition( "composite", NULL ); + mlt_transition_connect( transition, mlt_multitrack_service( multitrack ), 0, 1 ); + mlt_transition_set_in_and_out( transition, 0.0, 9999.0 ); + + // Buy a tractor and connect it to the filter + mlt_tractor tractor = mlt_tractor_init( ); + mlt_tractor_connect( tractor, mlt_transition_service( transition ) ); + + // Connect the tractor to the consumer + mlt_consumer_connect( consumer, mlt_tractor_service( tractor ) ); + + // Do stuff until we're told otherwise... + fprintf( stderr, "Press return to continue\n" ); + fgets( temp, 132, stdin ); + + // Close everything... + mlt_consumer_close( consumer ); + mlt_tractor_close( tractor ); + mlt_transition_close( transition ); + mlt_multitrack_close( multitrack ); + mlt_playlist_close( pl1 ); + mlt_playlist_close( pl2 ); + mlt_producer_close( dv1 ); + mlt_producer_close( title ); + + return 0; +} diff --git a/mlt/src/tests/pixbuf.c b/mlt/src/tests/pixbuf.c new file mode 100644 index 0000000..64a23b7 --- /dev/null +++ b/mlt/src/tests/pixbuf.c @@ -0,0 +1,73 @@ + +#include + +#include + +int main( int argc, char **argv ) +{ + char temp[ 132 ]; + char *file1 = NULL; + char *file2 = NULL; + + mlt_factory_init( "../modules" ); + + if ( argc < 3 ) + { + fprintf( stderr, "usage: pixbuf file.mpeg file.{png,jpg,etc}\n" ); + return 1; + } + else + { + file1 = argv[ 1 ]; + file2 = argv[ 2 ]; + } + + // Start the consumer... + mlt_consumer consumer = mlt_factory_consumer( "sdl", "PAL" ); + + // Create the producer(s) + mlt_playlist pl1 = mlt_playlist_init(); + mlt_producer dv1 = mlt_factory_producer( "mcmpeg", file1 ); + mlt_playlist_append( pl1, dv1 ); + + mlt_playlist pl2 = mlt_playlist_init(); + mlt_producer overlay = mlt_factory_producer( "pixbuf", file2 ); + mlt_playlist_append( pl2, overlay ); + mlt_properties_set_int( mlt_producer_properties( overlay ), "video_standard", mlt_video_standard_pal ); + mlt_properties_set_int( mlt_producer_properties( overlay ), "x", 600 ); + mlt_properties_set_int( mlt_producer_properties( overlay ), "y", 460 ); + mlt_properties_set_double( mlt_producer_properties( overlay ), "mix", 0.8 ); + + // Register producers(s) with a multitrack object + mlt_multitrack multitrack = mlt_multitrack_init( ); + mlt_multitrack_connect( multitrack, mlt_playlist_producer( pl1 ), 0 ); + mlt_multitrack_connect( multitrack, mlt_playlist_producer( pl2 ), 1 ); + + // Define a transition + mlt_transition transition = mlt_factory_transition( "composite", NULL ); + mlt_transition_connect( transition, mlt_multitrack_service( multitrack ), 0, 1 ); + mlt_transition_set_in_and_out( transition, 0.0, 9999.0 ); + + // Buy a tractor and connect it to the filter + mlt_tractor tractor = mlt_tractor_init( ); + mlt_tractor_connect( tractor, mlt_transition_service( transition ) ); + + // Connect the tractor to the consumer + mlt_consumer_connect( consumer, mlt_tractor_service( tractor ) ); + + // Do stuff until we're told otherwise... + fprintf( stderr, "Press return to continue\n" ); + fgets( temp, 132, stdin ); + + // Close everything... + mlt_consumer_close( consumer ); + mlt_tractor_close( tractor ); + mlt_transition_close( transition ); + mlt_multitrack_close( multitrack ); + mlt_playlist_close( pl1 ); + mlt_playlist_close( pl2 ); + mlt_producer_close( dv1 ); + mlt_producer_close( overlay ); + + return 0; +} diff --git a/src/framework/mlt_frame.c b/src/framework/mlt_frame.c index 3b11fcf..ba59ad9 100644 --- a/src/framework/mlt_frame.c +++ b/src/framework/mlt_frame.c @@ -412,10 +412,15 @@ int mlt_frame_composite_yuv( mlt_frame this, mlt_frame that, int x, int y, float format_src = mlt_image_yuv422; format_dest = mlt_image_yuv422; - + + //fprintf( stderr, "call get_image on frame a\n"), fflush( stderr ); mlt_frame_get_image( this, &p_dest, &format_dest, &width_dest, &height_dest, 1 /* writable */ ); - mlt_frame_get_image( that, &p_src, &format_src, &width_src, &height_src, 0 /* writable */ ); - + //fprintf( stderr, "call get_image on frame b\n"), fflush( stderr ); + mlt_frame_get_image( that, &p_src, &format_src, &width_src, &height_src, 1 /* writable */ ); + + //fprintf( stderr, "mlt_frame_composite_yuv %dx%d -> %dx%d\n", width_src, height_src, width_dest, height_dest ); + //fflush(stderr); + //return ret; stride_src = width_src * 2; stride_dest = width_dest * 2; @@ -698,16 +703,23 @@ int mlt_frame_mix_audio( mlt_frame this, mlt_frame that, float weight, int16_t * int16_t *src, *dest; static int16_t *extra_src = NULL, *extra_dest = NULL; static int extra_src_samples = 0, extra_dest_samples = 0; - int frequency_src, frequency_dest; - int channels_src, channels_dest; - int samples_src, samples_dest; + int frequency_src = 0, frequency_dest = 0; + int channels_src = 0, channels_dest = 0; + int samples_src = 0, samples_dest = 0; int i, j; mlt_frame_get_audio( this, &p_dest, format, &frequency_dest, &channels_dest, &samples_dest ); + //fprintf( stderr, "frame dest samples %d channels %d timecode %f\n", samples_dest, channels_dest, mlt_properties_get_timecode( mlt_frame_properties( this ), "timecode" ) ); mlt_frame_get_audio( that, &p_src, format, &frequency_src, &channels_src, &samples_src ); - //fprintf( stderr, "frame dest samples %d channels %d\n", samples_dest, channels_dest ); //fprintf( stderr, "frame src samples %d channels %d\n", samples_src, channels_src ); - + if ( channels_src > 6 ) + channels_src = 0; + if ( channels_dest > 6 ) + channels_dest = 0; + if ( samples_src > 4000 ) + samples_src = 0; + if ( samples_dest > 4000 ) + samples_dest = 0; #if 0 // Append new samples to leftovers diff --git a/src/modules/core/transition_luma.c b/src/modules/core/transition_luma.c index f5be459..a3ae3dc 100644 --- a/src/modules/core/transition_luma.c +++ b/src/modules/core/transition_luma.c @@ -34,7 +34,7 @@ typedef struct struct mlt_transition_s parent; char *filename; int width; - int height; + int height; double *bitmap; } transition_luma; @@ -313,7 +313,7 @@ static mlt_frame transition_process( mlt_transition transition, mlt_frame a_fram // If the filename property changed, reload the map char *luma_file = mlt_properties_get( properties, "filename" ); - if ( luma_file != NULL && luma_file != this->filename ) + if ( luma_file != NULL && ( this->filename == NULL || ( this->filename && strcmp( luma_file, this->filename ) ) ) ) { int width = mlt_properties_get_int( b_props, "width" ); int height = mlt_properties_get_int( b_props, "height" ); @@ -321,12 +321,16 @@ static mlt_frame transition_process( mlt_transition transition, mlt_frame a_fram FILE *pipe; command[ 511 ] = '\0'; - this->filename = luma_file; + if ( this->filename ) + free( this->filename ); + this->filename = strdup( luma_file ); snprintf( command, 511, "anytopnm %s | pnmscale -width %d -height %d", luma_file, width, height ); //pipe = popen( command, "r" ); pipe = fopen( luma_file, "r" ); if ( pipe != NULL ) { + if ( this->bitmap ) + free( this->bitmap ); luma_read_pgm( pipe, &this->bitmap, &this->width, &this->height ); //pclose( pipe ); fclose( pipe ); @@ -393,8 +397,9 @@ static void transition_close( mlt_transition parent ) if ( this->bitmap ) free( this->bitmap ); - parent->close = NULL; - mlt_transition_close( parent ); + if ( this->filename ) + free( this->filename ); + free( this ); } diff --git a/src/modules/gtk2/producer_pango.c b/src/modules/gtk2/producer_pango.c index c1bf1d3..6609ce9 100644 --- a/src/modules/gtk2/producer_pango.c +++ b/src/modules/gtk2/producer_pango.c @@ -288,8 +288,8 @@ static int producer_get_frame( mlt_producer producer, mlt_frame_ptr frame, int i mlt_properties_set_double( properties, "mix", mlt_properties_get_double( producer_props, "mix" ) ); // if picture sequence pass the image and alpha data without destructor - mlt_properties_set_data( properties, "image", this->image, 0, NULL, NULL ); - mlt_properties_set_data( properties, "alpha", this->alpha, 0, NULL, NULL ); + mlt_properties_set_data( properties, "image", this->image, this->width * this->height * 2, NULL, NULL ); + mlt_properties_set_data( properties, "alpha", this->alpha, this->width * this->height, NULL, NULL ); // Set alpha mask call back ( *frame )->get_alpha_mask = producer_get_alpha_mask; diff --git a/src/modules/gtk2/producer_pixbuf.c b/src/modules/gtk2/producer_pixbuf.c index f1f1f45..3bfe553 100644 --- a/src/modules/gtk2/producer_pixbuf.c +++ b/src/modules/gtk2/producer_pixbuf.c @@ -197,8 +197,11 @@ static int producer_get_frame( mlt_producer producer, mlt_frame_ptr frame, int i // Obtain properties of frame mlt_properties properties = mlt_frame_properties( *frame ); + // Obtain properties of producer + mlt_properties producer_props = mlt_producer_properties( producer ); + // Get the time to live for each frame - double ttl = mlt_properties_get_double( mlt_producer_properties( producer ), "ttl" ); + double ttl = mlt_properties_get_double( producer_props, "ttl" ); // Image index int image_idx = ( int )floor( mlt_producer_position( producer ) / ttl ) % this->count; @@ -213,6 +216,11 @@ static int producer_get_frame( mlt_producer producer, mlt_frame_ptr frame, int i mlt_properties_set_int( properties, "width", this->width ); mlt_properties_set_int( properties, "height", this->height ); + // Set the compositing properties + mlt_properties_set_int( properties, "x", mlt_properties_get_int( producer_props, "x" ) ); + mlt_properties_set_int( properties, "y", mlt_properties_get_int( producer_props, "y" ) ); + mlt_properties_set_double( properties, "mix", mlt_properties_get_double( producer_props, "mix" ) ); + // if picture sequence pass the image and alpha data without destructor mlt_properties_set_data( properties, "image", this->image, 0, NULL, NULL ); mlt_properties_set_data( properties, "alpha", this->alpha, 0, NULL, NULL ); @@ -292,13 +300,18 @@ static int producer_get_frame( mlt_producer producer, mlt_frame_ptr frame, int i mlt_properties_set_int( properties, "width", this->width ); mlt_properties_set_int( properties, "height", this->height ); + // Set the compositing properties + mlt_properties_set_int( properties, "x", mlt_properties_get_int( producer_props, "x" ) ); + mlt_properties_set_int( properties, "y", mlt_properties_get_int( producer_props, "y" ) ); + mlt_properties_set_double( properties, "mix", mlt_properties_get_double( producer_props, "mix" ) ); + // Pass alpha and image on properties with or without destructor this->image = image; this->alpha = alpha; // pass the image and alpha data without destructor - mlt_properties_set_data( properties, "image", image, 0, NULL, NULL ); - mlt_properties_set_data( properties, "alpha", alpha, 0, NULL, NULL ); + mlt_properties_set_data( properties, "image", image, this->width * this->height * 2, NULL, NULL ); + mlt_properties_set_data( properties, "alpha", alpha, this->width * this->height, NULL, NULL ); // Set alpha call back ( *frame )->get_alpha_mask = producer_get_alpha_mask; diff --git a/src/tests/Makefile b/src/tests/Makefile index 448e44e..3c7dd78 100644 --- a/src/tests/Makefile +++ b/src/tests/Makefile @@ -1,4 +1,4 @@ -TARGET = dan charlie +TARGET = dan charlie pango pixbuf dissolve luma CFLAGS = -I .. -Wall -rdynamic -pthread @@ -6,6 +6,18 @@ LDFLAGS = -L ../framework -lmlt all: $(TARGET) +pango: pango.o + $(CC) pango.o -o $@ $(LDFLAGS) + +pixbuf: pixbuf.o + $(CC) pixbuf.o -o $@ $(LDFLAGS) + +dissolve: dissolve.o + $(CC) dissolve.o -o $@ $(LDFLAGS) + +luma: luma.o + $(CC) luma.o -o $@ $(LDFLAGS) + dan: dan.o $(CC) dan.o -o $@ $(LDFLAGS) diff --git a/src/tests/clock16ntsc.pgm b/src/tests/clock16ntsc.pgm new file mode 100644 index 0000000000000000000000000000000000000000..61e64ad3fb834f1c08414c1d8419182318a6ac0c GIT binary patch literal 691217 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 literal 0 Hc-jL100001 diff --git a/src/tests/clock16pal.pgm b/src/tests/clock16pal.pgm new file mode 100644 index 0000000000000000000000000000000000000000..4d7b0fcd8031f6eabc877d2e2c86e0e287e52f1a GIT binary patch literal 829457 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

    fu_-$0n!ENO*?N-4XIY^F!tvJ9Y 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

    _UU)Gmc>C3|E&C#$-5a49hvDxSOQsl>n!) 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

  • Am0tf^8Q5vEcc@|H06d+*de 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 + +#include + +int main( int argc, char **argv ) +{ + char temp[ 132 ]; + char *file1 = NULL; + char *file2 = NULL; + + mlt_factory_init( "../modules" ); + + if ( argc < 3 ) + { + fprintf( stderr, "usage: dissolve file1.mpeg file2.mpeg\n" ); + return 1; + } + else + { + file1 = argv[ 1 ]; + file2 = argv[ 2 ]; + } + + // Start the consumer... + mlt_consumer consumer = mlt_factory_consumer( "sdl", "PAL" ); + + // Create the producer(s) + mlt_producer dv1 = mlt_factory_producer( "mcmpeg", file1 ); + mlt_producer dv2 = mlt_factory_producer( "mcmpeg", file2 ); + + mlt_playlist playlist1 = mlt_playlist_init(); + mlt_playlist_append_io( playlist1, dv1, 0.0, 5.0 ); + mlt_playlist_blank( playlist1, 1.0 ); + + mlt_playlist playlist2 = mlt_playlist_init(); + mlt_playlist_blank( playlist2, 2.9 ); + mlt_playlist_append( playlist2, dv2 ); + + // Register producers(s) with a multitrack object + mlt_multitrack multitrack = mlt_multitrack_init( ); + mlt_multitrack_connect( multitrack, mlt_playlist_producer( playlist1 ), 0 ); + mlt_multitrack_connect( multitrack, mlt_playlist_producer( playlist2 ), 1 ); + + // Define a transition + mlt_transition transition = mlt_factory_transition( "luma", NULL ); + mlt_transition_connect( transition, mlt_multitrack_service( multitrack ), 0, 1 ); + mlt_transition_set_in_and_out( transition, 3.0, 5.0 ); + + // Buy a tractor and connect it to the filter + mlt_tractor tractor = mlt_tractor_init( ); + mlt_tractor_connect( tractor, mlt_transition_service( transition ) ); + + // Connect the tractor to the consumer + mlt_consumer_connect( consumer, mlt_tractor_service( tractor ) ); + + // Do stuff until we're told otherwise... + fprintf( stderr, "Press return to continue\n" ); + fgets( temp, 132, stdin ); + + // Close everything... + mlt_consumer_close( consumer ); + mlt_tractor_close( tractor ); + mlt_transition_close( transition ); + mlt_multitrack_close( multitrack ); + mlt_playlist_close( playlist1 ); + mlt_playlist_close( playlist2 ); + mlt_producer_close( dv1 ); + mlt_producer_close( dv2 ); + + return 0; +} diff --git a/src/tests/luma.c b/src/tests/luma.c new file mode 100644 index 0000000..d964adb --- /dev/null +++ b/src/tests/luma.c @@ -0,0 +1,76 @@ + +#include + +#include + +int main( int argc, char **argv ) +{ + char temp[ 132 ]; + char *file1 = NULL; + char *file2 = NULL; + char *wipe = NULL; + + mlt_factory_init( "../modules" ); + + if ( argc < 4 ) + { + fprintf( stderr, "usage: luma file1.mpeg file2.mpeg wipe.pgm\n" ); + return 1; + } + else + { + file1 = argv[ 1 ]; + file2 = argv[ 2 ]; + wipe = argv[ 3 ]; + } + + // Start the consumer... + mlt_consumer consumer = mlt_factory_consumer( "sdl", "PAL" ); + + // Create the producer(s) + mlt_producer dv1 = mlt_factory_producer( "mcmpeg", file1 ); + mlt_producer dv2 = mlt_factory_producer( "mcmpeg", file2 ); + + mlt_playlist playlist1 = mlt_playlist_init(); + mlt_playlist_append_io( playlist1, dv1, 0.0, 5.0 ); + mlt_playlist_blank( playlist1, 1.0 ); + + mlt_playlist playlist2 = mlt_playlist_init(); + mlt_playlist_blank( playlist2, 2.9 ); + mlt_playlist_append( playlist2, dv2 ); + + // Register producers(s) with a multitrack object + mlt_multitrack multitrack = mlt_multitrack_init( ); + mlt_multitrack_connect( multitrack, mlt_playlist_producer( playlist1 ), 0 ); + mlt_multitrack_connect( multitrack, mlt_playlist_producer( playlist2 ), 1 ); + + // Define a transition + mlt_transition transition = mlt_factory_transition( "luma", wipe ); + mlt_properties_set( mlt_transition_properties( transition ), "filename", wipe ); + mlt_properties_set_double( mlt_transition_properties( transition ), "softness", 0.1 ); + mlt_transition_connect( transition, mlt_multitrack_service( multitrack ), 0, 1 ); + mlt_transition_set_in_and_out( transition, 3.0, 5.0 ); + + // Buy a tractor and connect it to the filter + mlt_tractor tractor = mlt_tractor_init( ); + mlt_tractor_connect( tractor, mlt_transition_service( transition ) ); + + // Connect the tractor to the consumer + mlt_consumer_connect( consumer, mlt_tractor_service( tractor ) ); + + // Do stuff until we're told otherwise... + fprintf( stderr, "Press return to continue\n" ); + fgets( temp, 132, stdin ); + + // Close everything... + mlt_consumer_close( consumer ); + mlt_tractor_close( tractor ); + mlt_transition_close( transition ); + mlt_multitrack_close( multitrack ); + mlt_playlist_close( playlist1 ); + mlt_playlist_close( playlist2 ); + mlt_producer_close( dv1 ); + mlt_producer_close( dv2 ); + + return 0; +} diff --git a/src/tests/pango.c b/src/tests/pango.c new file mode 100644 index 0000000..eaf9758 --- /dev/null +++ b/src/tests/pango.c @@ -0,0 +1,78 @@ + +#include + +#include + +int main( int argc, char **argv ) +{ + char temp[ 132 ]; + char *file1 = NULL; + char *text = NULL; + + mlt_factory_init( "../modules" ); + + if ( argc < 3 ) + { + fprintf( stderr, "usage: pango file.mpeg text_to_display\n" ); + return 1; + } + else + { + file1 = argv[ 1 ]; + text = argv[ 2 ]; + } + + // Start the consumer... + mlt_consumer consumer = mlt_factory_consumer( "sdl", "PAL" ); + + // Create the producer(s) + mlt_playlist pl1 = mlt_playlist_init(); + mlt_producer dv1 = mlt_factory_producer( "mcmpeg", file1 ); + mlt_playlist_append( pl1, dv1 ); + + mlt_playlist pl2 = mlt_playlist_init(); + mlt_producer title = mlt_factory_producer( "pango", NULL ); //"Mutton Lettuce Tomato" ); + mlt_playlist_append( pl2, title ); + mlt_properties_set_int( mlt_producer_properties( title ), "video_standard", mlt_video_standard_pal ); + mlt_properties_set( mlt_producer_properties( title ), "font", "Sans Bold 36" ); + mlt_properties_set( mlt_producer_properties( title ), "text", text ); + mlt_properties_set_int( mlt_producer_properties( title ), "bgcolor", 0x0000007f ); + mlt_properties_set_int( mlt_producer_properties( title ), "pad", 8 ); + mlt_properties_set_int( mlt_producer_properties( title ), "align", 1 ); + mlt_properties_set_int( mlt_producer_properties( title ), "x", 20 ); + mlt_properties_set_int( mlt_producer_properties( title ), "y", 40 ); + mlt_properties_set_double( mlt_producer_properties( title ), "mix", 0.8 ); + + // Register producers(s) with a multitrack object + mlt_multitrack multitrack = mlt_multitrack_init( ); + mlt_multitrack_connect( multitrack, mlt_playlist_producer( pl1 ), 0 ); + mlt_multitrack_connect( multitrack, mlt_playlist_producer( pl2 ), 1 ); + + // Define a transition + mlt_transition transition = mlt_factory_transition( "composite", NULL ); + mlt_transition_connect( transition, mlt_multitrack_service( multitrack ), 0, 1 ); + mlt_transition_set_in_and_out( transition, 0.0, 9999.0 ); + + // Buy a tractor and connect it to the filter + mlt_tractor tractor = mlt_tractor_init( ); + mlt_tractor_connect( tractor, mlt_transition_service( transition ) ); + + // Connect the tractor to the consumer + mlt_consumer_connect( consumer, mlt_tractor_service( tractor ) ); + + // Do stuff until we're told otherwise... + fprintf( stderr, "Press return to continue\n" ); + fgets( temp, 132, stdin ); + + // Close everything... + mlt_consumer_close( consumer ); + mlt_tractor_close( tractor ); + mlt_transition_close( transition ); + mlt_multitrack_close( multitrack ); + mlt_playlist_close( pl1 ); + mlt_playlist_close( pl2 ); + mlt_producer_close( dv1 ); + mlt_producer_close( title ); + + return 0; +} diff --git a/src/tests/pixbuf.c b/src/tests/pixbuf.c new file mode 100644 index 0000000..64a23b7 --- /dev/null +++ b/src/tests/pixbuf.c @@ -0,0 +1,73 @@ + +#include + +#include + +int main( int argc, char **argv ) +{ + char temp[ 132 ]; + char *file1 = NULL; + char *file2 = NULL; + + mlt_factory_init( "../modules" ); + + if ( argc < 3 ) + { + fprintf( stderr, "usage: pixbuf file.mpeg file.{png,jpg,etc}\n" ); + return 1; + } + else + { + file1 = argv[ 1 ]; + file2 = argv[ 2 ]; + } + + // Start the consumer... + mlt_consumer consumer = mlt_factory_consumer( "sdl", "PAL" ); + + // Create the producer(s) + mlt_playlist pl1 = mlt_playlist_init(); + mlt_producer dv1 = mlt_factory_producer( "mcmpeg", file1 ); + mlt_playlist_append( pl1, dv1 ); + + mlt_playlist pl2 = mlt_playlist_init(); + mlt_producer overlay = mlt_factory_producer( "pixbuf", file2 ); + mlt_playlist_append( pl2, overlay ); + mlt_properties_set_int( mlt_producer_properties( overlay ), "video_standard", mlt_video_standard_pal ); + mlt_properties_set_int( mlt_producer_properties( overlay ), "x", 600 ); + mlt_properties_set_int( mlt_producer_properties( overlay ), "y", 460 ); + mlt_properties_set_double( mlt_producer_properties( overlay ), "mix", 0.8 ); + + // Register producers(s) with a multitrack object + mlt_multitrack multitrack = mlt_multitrack_init( ); + mlt_multitrack_connect( multitrack, mlt_playlist_producer( pl1 ), 0 ); + mlt_multitrack_connect( multitrack, mlt_playlist_producer( pl2 ), 1 ); + + // Define a transition + mlt_transition transition = mlt_factory_transition( "composite", NULL ); + mlt_transition_connect( transition, mlt_multitrack_service( multitrack ), 0, 1 ); + mlt_transition_set_in_and_out( transition, 0.0, 9999.0 ); + + // Buy a tractor and connect it to the filter + mlt_tractor tractor = mlt_tractor_init( ); + mlt_tractor_connect( tractor, mlt_transition_service( transition ) ); + + // Connect the tractor to the consumer + mlt_consumer_connect( consumer, mlt_tractor_service( tractor ) ); + + // Do stuff until we're told otherwise... + fprintf( stderr, "Press return to continue\n" ); + fgets( temp, 132, stdin ); + + // Close everything... + mlt_consumer_close( consumer ); + mlt_tractor_close( tractor ); + mlt_transition_close( transition ); + mlt_multitrack_close( multitrack ); + mlt_playlist_close( pl1 ); + mlt_playlist_close( pl2 ); + mlt_producer_close( dv1 ); + mlt_producer_close( overlay ); + + return 0; +} -- 1.7.4.4