red5-1.0~svn4374.orig-doc/0000755000175000017500000000000011760512604015060 5ustar drazzibdrazzibred5-1.0~svn4374.orig-doc/FinalLogo.png0000644000175000017500000001625011213555352017444 0ustar drazzibdrazzibPNG  IHDR[oIDATxOv8?HN=Nř4xsW ^T+{R)+kbV`efc{- (/IL Gx/.B-eWPh]B9 z[$#)B!"E!P!T!B"RY(RB* EBHeQeWB*LzS.eW߽U?aB"|Qv%:h > -Vs.OBvAOsUvEwU1\t !d/3l6Hl=G/>i BC)Hiݠ;\A [9[NCHoͣUw: JB !:& 1ӽ# Tp!q"_&SX݀bET40]hlabeELR 7>Mx: |Gtc7}<IZBHb4Rhf  -8GZ5[Bx^r@[,"M0k֢BEJM5q!(RزfI^a-zd B:q<-1/٫3GC􋃍 c|X>*e =o٪E9ThIEcý7A@>td^pc_#(Rz|D:qܙgXqGzR ݒWվeV (tOW)LxD 'Ǚ>,xL&B !Ԋ,n$>Iq"z H 4QK@tֽvk pfЍm҈6q㣂ϥ\ d8Bȁt"Pz8}e.l6z'<$ !$Tz)%{;Q!4Md_z@EYO3?BY"h!~$}Ip!$#M T Tk/2E*`[tf$/)"Շ݆h7WgD ˗FrBJ "uT"Ԫ&] t;P9x]҄<=;CL"H?aaI.&TC^@m?Uo"D=#ԜC1. x{TK{%j*&SeKuR>3R],΄0 ssN|RK(u3m_Z<)uJ'=¼$5co¼b|9zUT\q eaG"ئ XIxnM ٪?w^NgJ(aWLVJHEb0@ PI-T.BJ?IuQ\;;йZa]"Ul"m)? `Fuȿ,ݦ]B?S}o{r_V0iovd!s [p"^B5A2Wġ}5bo)YngC7ϺO^}D{tԏ6#nݐ렋80ÈIk@M+P@\g Txev) W6 8q[u!oBT$PQ7hNcX@UfA;J = x}o$HHDd?6o^+G(P-dm#̿EŲ8>J:Mtp44:ρcHMH%q\g`pnNY*O$PQc5. * T5@5n_ou9lZ7& &Oشf0)H5I7 UzPzh|&7aḨ|06Di5*!~\AfE0KLgsJr`6)oC  5v'V9矄!=ud(75lc=߾ R,Oؼ="l- L=of(n TB{`^bH~l폅z ״ Qc`1_U/tc w|, {.\t][ :[꧹ܧ=B?O/o|k|f~5Br. {Nofz uj\*SoXhAՇ.digg݃Hgl3ds%Ni95 Feah`6fR}tXTO2YSAY=$t5i=)淠@HNڟ3 }7MM ۷IdMYOjGȧn/)v,.켵( U!X˧.t {vy`D_=<޷ =N"A B9Ei9+u;0~ȁ)%6C^o¦3٪B d5DWj-$w_{gF(PiАG:W7UH5aUAװ= F8=AHJ"$[IAR]w[Or_)R$H4a{-:2 }w y$g#pA9#.;x+ٲrKW{ԏGQ`A|~8Ype!xQHBq oU?wGo}K ΪE+^NEMת,aB[=DGRqR Iw7kE/W/'o>.N_=Jk(++(0O^NV~:wI^BzQ!Ipy UM}["|MFOPN3E"U+$a{ #urr4.p{3l"EҳTN#R?~mZ&^\!DJO3lwՂeԸC:`^\!&^(Y ER$^h~˴Ļ- W"E!RN |s"E=fj4^;6,i },]B,0l. W|/YyKθ bƚ")yy2.8 eA3e7HB=ih>d"UN¸T~ է =ubط/.zH !n[?Ǐ\!j%=_30RK2)BM]J䆏۶|viU?'|q^b7K6Y-!R\A,+V?7a0}H\<}>-|Sr[bDb%G)OGx-Ze!!{eHBx '">;՛ CQd=!D1l7½590lc^aV?Q_E"EXaĦOX7JMk2 Mϰ=zHB ۃF"eWAH'(Ǔ"EWv^sȾ.,fg\vJ+pT_ ~\GP#KSSԲTi%!zm)@7xd)'֐G Wd) ,Z6 3WDŽi(R<`_T_3]z*~QW:v>VY,X|nruai0)BH$o=h6/:JyM/䷇ hUݢO y@KԚ#V64Cר56e/|ANnO?AX5y0!e!@"a21D}soɫ)rkp?6|Ӈ7Mzp!$-'@cL((VY-^]֒^Nz99A<Զo(,/HB#mpƆퟰz27#Un5WɛhFw/Nߌ^Ng@6A|-Ɔap!$=OaLttX[k˲9|jg)BBOA]/~9}}ʭZ>Ck9̊ {eZR,LƆퟰ~<~ɏUZQH(Rl||^[z{UUnsdJVȅTVE0԰V| @ѷn({i(R|ܚ>T%, osﺑV;|Ix,caSHBl0{qSOtev 4vyaׇ7NY)RM+@Ig`ͷ[dNMV{|U?J3s³oTX-2XQET THEatuTZԏ/@j}b NUerl( ey!Ca3 ~U^7Ί@ߏ,4B.OS_^^N'f#KxOӀ[-P .F#e%PP-ΰ RyS}7uh֔(P&""MtV(A>Tos9RQ}\:_}ׄhO0mGfPESX YT<),PXq6) a$u5u(@{kH69nբϺVR}3@3.ˆ?W>}`Rb~n{kE}l)!P.r?cY `N؍ȺXm/nuLw0]Ifb 2*@볽>,f`ᴟ(Pve;)3YzD<è:dɟ ݛ^ hfET@؀K(i3AĔٍ(XUG%Ё'QGY8*Z ]쾉0%KQ(nuLrG[<iUxL@Yh0$FϬle/ pX}$"{kt`l[Oyab d͊pti1@ٻBgw݆{'58~6ycz$g $hV| gA@ٻD$ݭ9C~68(i%qmFY4xC*3BVSRz-U!(z+\>{uΩGNtsD/IGppϪW &v=$)1zdP*U9,s30tzvg =YScb$-utaJ-cZվ$u3Y4Hyr$@7UA7qD.ϏHxSnJ]B"n!K/]kCĻW >ÌW.vs<[|qJ.Ix%/`!Hf&x;Ѝ LA[Uf6ӤB҅\鸪8R~dUB\{Hv-ԅBCAyU1G 0M)r`ǥ6AD{ r+!4pnm.g{B*B^k[e[.Ve#FӇ="h(k0Z8G!`Zf:>H97Q @PӅcF zc؞smNBB!뿅 ʑuօP!taR!ʼnBji5CH34 B.]?qt]B y br%* C !D[%:O z Su)!Ds-Z=l.Vxf|o+W) EBshrWUBH }H+r(ʮ!b"E!P!T!B"RY(RB* EBHeHB!/ʮȡ )"IENDB`red5-1.0~svn4374.orig-doc/changelog.txt0000644000175000017500000006424311332154514017556 0ustar drazzibdrazzibRed5 Changelog ============== This file contains informations about the changes between the different versions of Red5. Red5 1.0.0 RC1 (unreleased) ----------------------- New Features: - Added vod and live application samples Bugfixes: Red5 0.9.0 (2010-01-27) ----------------------- New Features: - Added AVC/h.264 live streaming based on Tiago Jacobs patches - Added enums for Audio and Video codec types - Added capability to add IoFilters to RTMPConnection per application - Added AAC live streaming code based on Wittawas Nakkasem's IceSurf code - Created plug-in / server module system - Created ICY / NSV streaming plug-in - Created Authentication plug-in supporting FMS and Red5 authentication routines - Created Administration plug-in based on the admin demo - Added native RTMPS support Bugfixes: - Fixed bug with recording, where meta files were not removed when using the same name - Changed VideoCodecFactory into a "true" factory class - Applied patch for h.264 live stream packet handling from Dave Feltenberger - Applied FP 10.0.32.18 patch from Ari-Pekka Viitanen - Fixed #652 Mistake in RTMPT Configuration lines in red5-core.xml - Fixed #635 Bug SocketPolicyHandler.java with loading global flashpolicy.xml file - Fixed #651 RTMPMinaTransport throws exception if isEnableMinaMonitor is true - Fixed security policy for red5; Java Security Manager may now be used - Fixed #653 Missing license headers - Fixed #654 ContextLoggingListener for Logback 0.9.17 - Fixed #631 Memory leak using IServiceCapableConnection.invoke - Fixed #638 Flash Lite 3.0 conneting with RED5 (invalid) - Fixed #657 Timestamp corruption in recorded .flv, when stream also subscribed - Fixed #658 Broken servlet paths for RTMPT and RTMPS - Fixed #497 Flash Player cannot connect to RTMPS with error NetConnection.Connect.CertificateUntrustedSigner - Fixed #582 Native SSL support for RTMPS (no HTTP wrapping) - Fixed #479 red5.properties - rtmpt.host,rtmps.host,jmx.rmi.host,http.host - does not work Red5 0.8.0 (2009-06-04) ----------------------- New Features: - Use ExtendedPropertyPlaceholderConfigurer for Spring placeholderConfig bean (APPSERVER-333; Patch from Michael Guymon) - Updated Mina to 2.0.0-M6 - Multiple socket binding on single RTMP transports - Context duplication on each Catalina host Bugfixes: - Red5 War Version Does not Shutdown Gracefully (APPSERVER-325; patch from Gordon Hempton). - Scope Memory Leak (APPSERVER-347; patch from Gordon Hempton) - AMF3 uses Maps for references (CODECS-13; patch from Peter Rendl) - src/org/red5/io/flv/meta/MetaService.java use Jetty log instead of slf4j (APPSERVER-318; patch from Damien Raude-Morvan) - References are stored too late when deserializing AMF3 arrays (CODECS-12; patch from Peter Rendl). - ConversionUtils fail to convert to primitive arrays (CODECS-14; patch from Peter Rendl). - ConversionUtils fail to convert to sets (CODECS-15; patch from Peter Rendl). - Encoded double arrays contain integer values (APPSERVER-362; patch from Christoph Botsch) - Errors logged for empty class name (CODECS-17; patch from Peter Rendl) - Destroy and disposible bean lifecycle events were not firing in the server upon shutdown and jvm exit (No jira) - Created means for segregated Quartz schedulers per application. The bug was that the main scheduler has no idea where to location classes you try to access in your scheduled job (No jira) - Issue when reading empty persistent shared objects (APPSERVER-364) - Removed Jacksum API, replaced with function available in commons-codec (APPSERVER-350) - Added updated implementation of RtmpSampleAccess (APPSERVER-315) - Added configuration to ContextLoader for shutdown hook to fix APPSERVER-372 - Allow usage of different SLF4J implementations instead of logback only as forced by Red5LoggerFactory (APPSERVER-369) - Logging broken by revision 3606 (APPSERVER-383) - Added ping calculation patch - War deployment (APPSERVER-357) Red5 0.8.0 RC2 (2009-02-07) --------------------------- New Features: - Testing: Added a new automated testing framework (http://jira.red5.org/confluence/display/docs/Chapter+20.+Testing+Red5) Bugfixes: - RemotingClient decoding errors (Jira APPSERVER-296) - Codec typos (Jira APPSERVER-309) - Exception is thrown when doing NetStream.seek operation (Jira SN-94) - Scope access does not work if invoked from external Application (Jira APPSERVER-306) - Childscopes not visible on customly created scopes (Jira APPSERVER-298) - Config removal dynamically created room scopes (Jira APPSERVER-165) - NullPointerException in RTMPProtocolDecoder.decodeHeader under load (Jira SN-103) - Remote Shared Objects: Sync event doesnt dispatch (Jira CS-5) - Server doesn't start on Windows (JIRA APPSERVER-336) - Cannot run red5.bat when there is existing classpath set in environment (INSTALL-24) - NetStream.send in record mode not working (Jira APPSERVER-329) - NetStream.send "append" mode patch (Jira APPSERVER-338) - Memory leak in RemotingConnection (Jira APPSERVER-328) - Connection objects are not removed from parent scopes when a connection is refused in a sub-scope (Jira APPSERVER-261) - WAR deployer is failing to extract war files (Jira APPSERVER-337) - Security sandbox violation: BitmapData.draw (Jira APPSERVER-315) - AMF0 does not echo Array's the way AMF3 does (Jira APPSERVER-311) - Red5LoggerFactory fails with an NPE if you pass in a context name that hasn't been defined or is not known (Jira APPSERVER-341) - red5.bat doesn't work on Windows machines, red5-debug.bat works, though. (Jira APPSERVER-340) - KeepAliveJob does not disconnect client regardless of MaxInactivity setting (Jira APPSERVER-342) - Issues serializing Custom Objects contained in Arrays or collections (Jira APPSERVER-320) Red5 0.8.0 RC1 (2008-09-29) --------------------------- New Features: - Socket policy file server to support new security model, starting with Flash Player 9,0,124,0 - Virtual hosting capabilities (Tomcat only) - W3C log appender for logback modeled after FMS log events and categories - Ability to unload a context using the ContextLoader - RTMPS support (Jira SN-69) - Set default J2EE servlet container / HTTP server to Tomcat - Flex based application installer for Red5 web applications - War auto-deployer service - Added additional MP3 ID3 data to the onMetaData event - onImageData and MP3 cover art support Bugfixes: - RTMPProtocolDecoder fixed to support RSO sendMessage (Jira CODECS-9) - Fixed Tomcat logging problem - Fixed memory leak in ServiceUtils - Fixed connection timeout (Jira SN-95 / APPSERVER-274) - Resolved exception with WarLoaderServlet (Jira APPSERVER-224) - Resolved log directory issue (Jira APPSERVER-246) - Resolved ServerStream issue with w3c logging (Jira APPSERVER-263) - Added patch to support ability to implement IBroadcastStream for custom streaming protocols (Jira SN-87) - Resolved OSX connection problem with players > version 9,0,115 - Added patch for InvocationTargetException on missing files (Jira SN-99 and SN-97) - Fixed a small issue with stream ids > 100 - Added patch for FLV metadata handling - Added patch for RTMPT client - Added patch for start and stop scripts - Fixed logging in web applications - Root cause was not being sent on error in Flex message service (Jira APPSERVER-288) - Allow serializer to make use of other annotations like JPA (Jira APPSERVER-277) - Collections are not serialized appropriately (Jira APPSERVER-293) - Unable to read external AMF3 arrays in IExternalizable classes (Jira APPSERVER-283) - Dealock issues with fix in Output.java (Jira APPSERVER-289) - Bug with scope stopping and multithreading (Jira APPSERVER-290) - SharedObjects modified flag doesn't get set to false (Jira APPSERVER-291) - Delete/overwrite streams from clientside (Jira SN-20) - InsufficientBW with VP6 encoder - live stream (Jira SN-77) - User friendly error message for port/permission problems (Jira APPSERVER-299) - Split demos and Flash sources into their own top level directories - Added application snapshot repository - Applied patches for JUnit (Jira DT-4) Red5 0.7.0 (2008-02-23) ------------------------ New Features: - Initial Edge/Origin clustering support for multiple Edges with a single Origin (Jira APPSERVER-66) - Added stream listeners that can get notified about received packets - Support for server-side Javascript (Jira APPSERVER-169) - Added new base class org.red5.server.adapter.MultiThreadedApplicationAdapter that allows multiple clients to connect simultaneously to the same application - Added new Flash Player 9 statuses NetStream.Play.FileStructureInvalid and NetStream.Play.NoSupportedTrackFound - New Flex admin tool (Jira APPSERVER-242) Bugfixes: - Pause near end of buffered streams works as expected (Jira APPSERVER-199) - Fixed potential memory leak with RTMPT connections that are not properly closed (Jira APPSERVER-193) - "onMetaData" is only written to newly recorded FLV files and contains valid properties now - Don't try to decode objects for closed RTMPT connections (Jira APPSERVER-208) - New multi-threaded connection code fixes various timeout issues (Jira APPSERVER-122, Jira APPSERVER-166 and Jira APPSERVER-167) - Always use correct classloader inside applications (Jira APPSERVER-200) - Tomcat cannot undeploy red5 application (Jira APPSERVER-204) - "ByteArray" objects used old data after calling "compress" or "uncompress" (Jira APPSERVER-211) - "@DontSerialize" checks for properties also in inherited classes (Jira APPSERVER-225) - Enabled bidirectional class serialization (Jira APPSERVER-219) - Array typed parameters in remoting service methods converted properly (Jira APPSERVER-161) Red5 0.6.3 (2007-09-17) ------------------------ New Features: - Remoting requests from "mx:RemoteObject" supported (Jira APPSERVER-144) - RTMPT working with Tomcat - Added thread that writes modified persistent objects periodically. This reduces server load if multiple attributes of one object, or the same object is modified frequently. - Location of "webapps" folder can be configured in bean "jetty6.server" inside "conf/red5.xml" (Jira APPSERVER-152) - "IStreamFilenameGenerator" can specify if it returns absolute or relative paths - Applications can be unloaded and loaded without restarting Red5 - "mx.collections.ArrayCollection" objects supported by AMF3 codec - Object attributes are converted if necessary in AMF0/AMF3 codecs - "mx.utils.ObjectProxy" objects supported by AMF3 codec (Jira APPSERVER-173) - "IConnection" objects for Remoting properly store attributes accross multiple requests by using sessions - Remoting headers are accessible through "IConnection.getConnectParams" - "ByteArray" objects supported (Jira APPSERVER-189) - "NetStream.send" messages are properly passed through from Flex clients (Jira APPSERVER-185) - Class fields that should not be serialized when sending objects to clients can be annotated with "@DontSerialize" (in "org.red5.annotations") - Public methods can be protected from being called through RTMP, RTMPT or Remoting by using "@DeclarePrivate" and "@DeclareProtected". - Support for XML objects added to AMF3 codec (Jira APPSERVER-196) Bugfixes: - Validate RTMP handshake received from client (Jira APPSERVER-159) - Array typed parameters are converted correctly (Jira APPSERVER-161) - RTMPTHandler is wired through Spring (Jira APPSERVER-150) - fixed concurrency issue in RTMP encoder that could result in wrong packet header types (Jira APPSERVER-177) - IStreamAwareScopeHandler methods are also called for server side streams - "NetConnection.Connect.AppShutdown" is returned when trying to connect to application that currently is unloaded (Jira APPSERVER-13) - State is properly reset if exceptions occur in package decoding (Jira APPSERVER-137) - Numbers outside integer range are correctly serialized in AMF3 codec - return proper error object that triggers "onStatus" for "NetConnection.call" in case of errors (Jira APPSERVER-192) - Fixed endless loop in playlist controller with only one item in it (Jira APPSERVER-191) - Fixed renaming across filesystems (Jira SN-59) - Updated Jetty to 6.1.5 (Jira APPSERVER-123) - Fixed deserialization of AMF3 encoded SO events (Jira APPSERVER-188) Red5 0.6.2 (2007-06-17) ------------------------ Bugfixes: - "pause" no longer breaks live streams (Jira APPSERVER-136) - Configured subscopes don't get released when a client disconnects - AMF requests could not be decoded when run in the context root (Jira APPSERVER-146) - Fixed bug for Remoting requests without parameters (Jira APPSERVER-147) - Fixed issue with stop/start of war in Tomcat (Jira APPSERVER-155) - Fixed handshake reply for Flash Player 9 Update 3 - IMetaData supports fractional framerates (Jira APPSERVER-157) - Correctly reject empty stream names (Jira APPSERVER-156) - Fixed problem with loading some JAR files from the applications classpath (Jira APPSERVER-141) - Fixed decoding of Remoting requests with multiple parameters (Jira APPSERVER-151) Red5 0.6.1 (2007-05-23) ------------------------ New Features: - Switched to use mina 1.1, more config options in red5.properties - Newly recorded files start with an "onMetaData" tag containing the duration and the codecs used - Added a JMX subsystem with RMI and HTTP connectors - Simplified MBean unregistration and added a registration check prior to the unregister attempt (Jira APPSERVER-118) - "IServerStream" now also supports "pause" and "seek" - Enabled RMI + SSL for JMX - Added JMX authentication - Added Shutdown class for cleanly shutting down a Red5 instance - Added support for AMF3 in remoting server - "receiveAudio" and "receiveVideo" work for VOD streams (Jira SN-22) Bugfixes: - "NetStream.Record.Failed" is sent for IO errors that occurred during recording (Jira APPSERVER-64) - Fixed possible deadlock if methods are invoked by a connecting client on a client that is currently disconnecting (Jira APPSERVER-108) - Fixed NPE when connecting without application given (Jira APPSERVER-116) - Fixed various problems with deserialization of AMF3 objects that implement IExternalizable (Jira CODECS-2) - Fixed warning about deprecated Jetty configuration (Jira APPSERVER-115) - Fixed possible deadlock involving PersistableAttributeStore and Scope (Jira APPSERVER-122) - Display better message if RMI connection to "rmiregistry" could not be established (Jira APPSERVER-125) - Python scripts can import classes available only in the classpath of a webapp (Jira APPSERVER-92) - Fixed Ruby application issue by updating to Spring 2.0.5 and JRuby 0.9.8 (Jira APPSERVER-93) - Fixed async calling of remoting methods (Jira APPSERVER-131) - Accessing root of RTMPT server no longer results in 404 but redirects to HTTP port (Jira APPSERVER-130) - Disconnect clients that don't send a valid handshake (Jira APPSERVER-128) - Reduced max. idle time to prevent too many open sockets when using RTMPT with HTTP/1.0 (Jira APPSERVER-87) - Fixed potential NPEs in PlaylistSubscriberStream (Jira SN-40) - Fixed various problems with deserializing AMF0 references in remoting - Fixed frozen video if audio is disabled in live streams (Jira SN-22) Red5 0.6 (2007-04-23) ------------------------ New features: - Recording/playback of files to/from subscopes implemented (Jira APPSERVER-103) Bugfixes: - Ghost connection detection code rewritten to better detect dead clients (Jira APPSERVER-38, SN-37) - Deserialization of objects defined in webapp classpath fixed (Jira APPSERVER-80, APPSERVER-100) - Fixed AMF3 deserializer for references from attributes to parent classes (Jira APPSERVER-101) - Jython example adjusted for new bandwidth API (Jira APPSERVER-92) - Workaround added to deal with broken MP3 files (Jira APPSERVER-62) - "start" and "length" are properly evaluated when playing back VOD streams - Fixed seeking not working for MP3 or audio-only FLV files - Don't log contents of wrong objects (Jira APPSERVER-109) - Fixed potential NPEs in PlaylistSubscriberStream - A client buffer of 0 on live streams no longer breaks playback (Jira CS-3) - Fixed shutdown error in Tomcat with WAR version by updating to SLF4J 1.3.1 (Jira APPSERVER-107) - "NetStream.Play.InsufficientBW" is sent if client is too slow receiving video streams (Jira APPSERVER-51) - Improved frame dropping code for slow connections Red5 0.6rc3 (2007-04-11) ------------------------ New features: - Keyframe informations are cached so files don't need to be reparsed before playback - Connections from Flash Media Encoder and On2 Flix Live supported - Access to shared objects can be limited (Jira APPSERVER-25) - Connections can provide a list of remote addresses. This is usefull for proxied RTMPT connections. Bugfixes: - Bandwidth control code has been rewritten to fix stability issues and memory leaking in high concurrency connection count situations - Serialization of Maps with non-number keys fixed (Jira APPSERVER-60) - Multiple IO processor threads are used by default - Memory leak when closing RTMPT connections fixed (Jira APPSERVER-61) - Merged WAR build script with primary script, also moved WAR specific startup servlet into trunk - Deserializing of remoting results fixed (Jira APPSERVER-63) - Fixed "error in object encoding" when rejecting AMF3 clients (Jira APPSERVER-73) - Concurrency problems when closing a connection fixed (Jira APPSERVER-59) - Unnecessary NetStream.Play.* events are no longer sent when playback stopped (Jira APPSERVER-70) - SimplePlaylistController setRepeat and setRandom fixed (Jira SN-27) - NPE in SimpleBWControlService fixed (Jira APPSERVER-75) - Reference bugs in AMF3 encoder fixed (Jira APPSERVER-81) - "NetStream.Play.Failed" is sent correctly now (Jira APPSERVER-52) - Concurrency issue fixed in SimpleBWControlService (Jira SN-32) - Fixed problem when decoding MP3 files with signed values in the ID3v2 tag size (Jira APPSERVER-86) - "NetStream.Seek.Failed" is sent when trying to seek in live streams (Jira APPSERVER-84) - "NetStream.Failed" is sent for exceptions during streaming methods (Jira APPSERVER-85) - Random server freezing resolved (Jira APPSERVER-41) - Send correct timestamps if seeking beyond end of file (Jira APPSERVER-54) - Fixed NoSuchElementException when iterating connections during disconnect (Jira APPSERVER-94) - Reference bugs im AMF3 decoder fixed (Jira APPSERVER-95) - "NetStream.Play.Complete" is sent (APPSERVER-50) - "NetStream.Play.Switch" is sent (APPSERVER-82) - Streams are always played to the end (SN-8) - Seeking in stopped streams fixed (APPSERVER-89) - Fixed deadlock in shared objects under high load (APPSERVER-98) Red5 0.6rc2 (2007-02-12) ------------------------ New features: - Stream classes can be configured through red5-common.xml (Trac #223) - RTMP network library supports client mode (Trac #94) - Source of VOD streams can be customized through IStreamFilenameGenerator (Trac #120) - API: IStreamFilenameGenerator differs between playback and recording - Results of method calls can be deferred until they are available to free io threads - Transient fields will not be serialized any longer (Jira APPSERVER-27) - Red5 compiles with Java6 now - Support for AMF3 incl. IExternalizable objects added (Jira APPSERVER-31) - Access to streams can be limited (Jira APPSERVER-25) - (non-persistent) shared objects can be acquired by serverside code to prevent them from being released when the last client disconnects (Jira APPSERVER-48) Bugfixes: - Serialize RecordSet objects (Trac #201) - "NetConnection.Connect.Rejected" is sent for non-existing scopes to match result code of FCS/FMS - RTMPT through Jetty working again (Trac #213) - Size of last frame is correctly written to .flv files - Errors during "connect" are reported back to client through RTMPT - Fixed NPE in FlowControlService thread (Trac #175) - Deserializing of mixed arrays now works in all cases (Trac #109, #195) - "NetStream.Record.Start" and "NetStream.Record.Stop" are sent (Trac #127) - "NetStream.Publish.BadName" is sent if two clients try to publish/record a stream with the same name - Streams stopped if bandwidth limit was set too high (Trac #165) - Fixed potential concurrency issue in FlowControlService (Trac #224) - Stream notification callbacks are invoked on reused connetions (Trac #133) - The playlist is flushed by default (Jira APPSERVER-6) - Fixed ClassCastException in "pendingVideoMessages" (Jira APPSERVER-14) - calling "pause" with null argument works again (Jira APPSERVER-12) - "NetStream.Publish.BadName" is only sent if another client is already publishing a stream - Playing a stream while being recorded now works (Jira SN-4, SN-13) - "IPendingServiceCall.isSuccess()" returns true when a result has been received (Jira APPSERVER-35) - The "http.host" setting from "red5.properties" is evaluated (Jira APPSERVER-36) - "IBroadcastStream" knows about the filename it is being recorded to (Jira APPSERVER-30) - BufferOverflowException for empty RTMP packets fixed (Jira APPSERVER-37) - FLV files are no longer locked after playback (Jira APPSERVER-17) - SharedObjects support "getAttributes" (Jira APPSERVER-45) - MP3 files containing images can be played back (Jira APPSERVER-47) - Fixed parsing of long strings (Jira APPSERVER-44) - Fixed pausing and seeking audio-only flv files (Jira SN-17) - Number of streams is no longer limited (Jira SN-14) - "NetStream.Play.Failed" is returned if a VOD stream can not be played due to IO errors (Jira APPSERVER-52) - "NetStream.InvalidArg" is returned for invalid arguments (Jira APPSERVER-55) - "NetConnection.Connect.InvalidApp" is returned for non-existing application scopes on the server - "NetStream.Record.NoAccess" is returned if file could not be created or written to (Jira APPSERVER-53) - Error when setting SO attributes fixed (Jira APPSERVER-57) Red5 0.6rc1 (2006-10-30) ------------------------ New features: - Created WAR (Web Application Archive) version of Red5 (Separate repository java/war) - Enabled Tomcat or Jetty as J2EE container implementations - FLV cache implementations (2 are included) (Trac #99) - Scripting support (javascript, ruby, python, groovy, and bsh) based on Spring 2 and JSR223 Bugfixes: - Last frames aren't lost when reading .flv files (Trac #90) - FileConsumer acted on all consumer pipe events (Trac #92) - Improved timestamps of live streams to be more in sync with FMS (Trac #93) - FileConsumer modified position of incoming messages (Trac #91) - Events should support reference counting (Trac #103) - ServerStream playback jerky (Trac #77) - "NetStream.send" events are properly recorded - Reusing streams works (Trac #123) - Fixed NPE if no bandwidth settings are available (Trac #129) - "close" can be called on RTMPT connections multiple times (Trac #166) - Fixed synchronizing problem with clients publishing repeatedly (Trac #124) - RTMPT connections can be closed from the serverside (Trac #179) Red5 0.5 (2006-07-25) ------------------------ New features: - Frame dropping for live streams depending on available bandwidth - Added "receiveAudio", "receiveVideo" and "send" for streams - Destination of recorded streams can be customized (Trac #73) - VOD stream flow control adapts bandwidth based on buffer time (Trac #63) - Up-/downstream bandwidth can be specified Bugfixes: - Only the same instances are serialized as references (Trac #58) - Re-added JSP support in manifest file of red5.jar (Trac #59) - "tagPosition" is updated in FLVReader when seeking (Trac #55) - Automatic subscopes of the host scope are disabled so only connections to existing applications are possible - Running "ant" after setup keeps wrapper configuration (Trac #76) - MP3 files with unsupported sample rates are detected (Trac #66) - Timestamps of recorded .flv files were wrong sometimes (Trac #78) - Stream types could be reused leading to a ClassCastException (Trac #84) - "ns.pause" working if no flag given (Trac #67) - A keyframe is sent for paused streams when seeking Red5 0.5rc1 (2006-07-11) ------------------------ New features: - Refactored streaming code - Refactored scope services - Refactored rtmp message de-/encoding - Enabled subscopes - Bandwidth control for on-demand streams - Experimental support for serverside streams - Added dynamic "onMetaData" for mp3 streams - Added persistence for scopes and shared objects - Added support for simple "directory-only" applications - Added remoting client support (sync / async) - Added deserializer for RecordSet remoting results - Arbitrary objects can be registered as service handlers - IClientRegistry can be customized for each scope - WEB-INF directories are added to the classpath (Trac #27) - Clients can be rejected with a custom error message - Basic "onMetaData" is generated dynamically for .flv files without any meta data (Trac #23) Bugfixes: - MP3 files that have their protection bit set - MP3 files encoded MPEG 2, Layer III (Trac #15) - MP3 files with incomplete last frame - Shared objects bugfixes (Trac #11, #22, #25) - Application handlers were not called on disconnect - IConnection.close() now closes connection (Trac #19) - Connecting to non-existent applications returns correct error now - Jetty correctly runs on all virtual hosts (Trac #26) - Map objects are serialized correctly - Methods could be invoked with converted parameters before invoking them with the original parameters - Support invoking methods with "null" as parameter (Trac #29) - Directories for recorded files are created if they don't exist (Trac #20) - "pause(java.lang.Object, int)" was reversed for streams (Trac #16) - Serialization of arbitrary objects uses reflect api to access fields, fixes various problems with inner classes and internal objects like IConnection / IClient - Invalid stream ids are handled in "deleteStream" (Trac #21) - Stream name prefixes and names without extensions supported (Trac #28) Red5 0.4.1 (2006-05-01) ------------------------ - MP3 audio streams - "seek" and "pause" for on-demand streams (Trac #4) - "Address already in use" fixed after restart (Trac #5) - Bugfixes for shared objects (Trac #6) - Bugfixes for videoconference sample (Trac #7) - Connection strings without hostname supported (Trac #8) - Flash 7 version of the videoconference sample added Red5 0.4 (2006-04-20) ------------------------ - Public server-side api - AMF remoting - RTMPT - Metadata API - Basic samples and documentation Red5 0.3 (2006-02-21) ------------------------ - Live streams - Shared objects Red5 0.2 (2005-10-21) ------------------------ - First public release - Video streams - Echo service red5-1.0~svn4374.orig-doc/examples/0000755000175000017500000000000011760512604016676 5ustar drazzibdrazzibred5-1.0~svn4374.orig-doc/examples/webapps/0000755000175000017500000000000011760512604020337 5ustar drazzibdrazzibred5-1.0~svn4374.orig-doc/examples/webapps/oflaDemo/0000755000175000017500000000000011760512604022065 5ustar drazzibdrazzibred5-1.0~svn4374.orig-doc/examples/webapps/oflaDemo/WEB-INF/0000755000175000017500000000000011760512604023114 5ustar drazzibdrazzibred5-1.0~svn4374.orig-doc/examples/webapps/oflaDemo/WEB-INF/red5-web.xml0000644000175000017500000000726410506523311025253 0ustar drazzibdrazzib org.red5.server.api.IScopeHandler org.red5.server.adapter.IApplication org.red5.server.adapter.ApplicationAdapter org.red5.server.webapp.oflaDemo.IDemoService org.red5.server.webapp.oflaDemo.DemoServiceImpl red5-1.0~svn4374.orig-doc/examples/webapps/red5-default.xml0000644000175000017500000000302310506522743023342 0ustar drazzibdrazzib org.red5.server.persistence.FilePersistence red5-1.0~svn4374.orig-doc/examples/conf/0000755000175000017500000000000011760512604017623 5ustar drazzibdrazzibred5-1.0~svn4374.orig-doc/examples/conf/red5-core.xml0000644000175000017500000001530410506522743022137 0ustar drazzibdrazzib 8088 false name rtmptContext path docBase / RTMPTServlet /open/* RTMPTServlet /close/* RTMPTServlet /send/* RTMPTServlet /idle/* red5-1.0~svn4374.orig-doc/examples/conf/red5-common.xml0000644000175000017500000001514210506522743022477 0ustar drazzibdrazzib org.red5.server.persistence.FilePersistence com.whirlycott.cache.policy.LFUMaintenancePolicy com.whirlycott.cache.impl.FastHashMapImpl red5-1.0~svn4374.orig-doc/examples/conf/Readme.txt0000644000175000017500000000010210506522743021554 0ustar drazzibdrazzib These two samples are configured to use Tomcat and Whirlycache red5-1.0~svn4374.orig-doc/examples/conf/red5.xml0000644000175000017500000002205510506522743021212 0ustar drazzibdrazzib classpath:/red5-common.xml classpath:/red5-core.xml 5080 8443 false /root oflaDemo /oflaDemo SOSample /SOSample red5-1.0~svn4374.orig-doc/licenseInfo/0000755000175000017500000000000011760512604017316 5ustar drazzibdrazzibred5-1.0~svn4374.orig-doc/licenseInfo/Red5LicenseInfo.txt0000644000175000017500000002172111754742604023010 0ustar drazzibdrazzibApache License, Version 2.0 Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONSred5-1.0~svn4374.orig-doc/licenseInfo/team.txt0000644000175000017500000000145211102163312020773 0ustar drazzibdrazzibWho is on the Red5 Team? The Red5 Project (red5 AT osflash.org) Project Managers Chris Allen (mrchrisallen AT gmail.com) John Grden (johng AT acmewebworks.com) Active Members Dominick Accattato (daccattato AT gmail.com) Steven Gong (steven.gong AT gmail.com) Paul Gregoire (mondain AT gmail.com) Thijs Triemstra (info AT collab.nl) Dan Rossi (electroteque AT gmail.com) Anton Lebedevich (mabrek AT gmail.com) Art Clarke (aclarke AT vlideshow.com) - Inactive Members - Luke Hubbard (luke AT codegent.com) Joachim Bauch (jojo AT struktur.de) Mick Herres (mickherres AT hotmail.com) Grant Davies (grant AT bluetube.com) Steven Elliott (steven.s.elliott AT gmail.com) Jokul Tian (tianxuefeng AT gmail.com) Michael Klishin (michael.s.klishin AT gmail.com) Martijn van Beek (martijn.vanbeek AT gmail.com) red5-1.0~svn4374.orig-doc/readme.txt0000644000175000017500000000024111247432026017052 0ustar drazzibdrazzibPlease goto http://wiki.red5.org for Red5 wiki documentation or reference/pdf anf reference/html for the reference manual documentation in pdf and html format.red5-1.0~svn4374.orig-doc/logo.png0000644000175000017500000015130610761576154016546 0ustar drazzibdrazzibPNG  IHDR6zWsBIT|d pHYs  ~tEXtSoftwareAdobe FireworksONprVWxXmz0 6u :olthgy\'< 7 HiivÖf6kTuSѵlʪ)Z4Et5)cjFUWU]VuQT5V,KEQ( BP( 9+L;zx<O#w ?#ˁdzCNGaӑQ<4HYAA=2,}e$+`=Fɀ,G?_鮕$:C~Y|ϗ9$fWh 17X@ {ƑsI `԰Ŗ uѮ[!:(/I~c??ʹ>:D> yNؓ"]rO?nsƚ 1EH`o n-l;4d7GNo;^K,DOۆw"EM@{)[Fg%osb>7K#L7~uEǑfSo{`$W݅ݏ8[2z)f ?\<柖xp3N,@h36>$;e"JU_D%*Ȯ r)'i|Yqeּ I-mHM5y ?AS@V] EaS|8zI:B>1KƟ'zd8U( BP( BP( BP( '/5`HmkBF)36mkTSx}w66oԎ&{޽wv[ҥeYVE9qzCQbdmmWG73()֯4C"Hxf`'/W=rܘ\IKz^A6c}%[ذq?;w9y痐<"Bt;q cmKhVj#>]jWنk1!RθZg,rJރ[:Z6O!$p؟4:kSwDIC/)?{O'ݣ;iYfMNXy,9ZbI̸!1֙EI,0BUh?§+H}rx fƲ0{1;n{ȻF Q6 H`g`6Yf Sg<2xOg!/8P#(]8P0i:Yh9Д4- MINuz&X[ip@zf'86kX~k%_ߦa1:7nȽ^V-` `/fy,RVZ{UDܷI $PBP2s%J-k0ڴ8 'N1Z;_girB΃vYZ|#: &3|FZxۊpnNc %-Π4:Fg =f{~B8@rY4i fQ\v@4A4|gd2LB6X#>l W@ Ÿ'('6FR4Js5x,4|. 3>(`Eᆿ^J;|}nkXuC[GgH! a9szn,:G[ư0v6dhAnV%.de%v@@-FAVGE[D1\nHԬnElA:ubѳo8F)ѩI*&yYi4v|(GA ?zOc4Ə¦Bn"g^(W)J}5s)"GK76HB2sXPXN'rq|yArcn2D|q2`V^s΅q/F)ʿP{91dYYM4S]`{ :a>Qnj } --36KhP2b#uР$'ZBeh -ueFaJ]mL#o~3 Erb(Ef(2SˆsVI#i`F3sPyJW>MoEzq.=Ւ:3 ad/niIWOmZ-})7 4n(l g'$v=3SMIw;"7=wߓso';A';.3]92!#7n/Pz'(]QJ X'S^ooc&>*^/v>9gO_:4K^ L&$Gs>gtsx5f_fr=^ W~_jplCO|]4Ӌ>Vo!Wb;&KΛ(XKcCO6FI0&ӼGAT.b$@a.2gFSiJv\fB_IpڃDU}^)sA> irj=|#F䁧GhKw_k!Nfc3 $~]*Yz &WCJ-JYuyc-'ۘ[N+MJv=?Yr)Kx (]'HT- Sh_3sa h#4y=<0pNF[ٚS#.nR(ĩ?ORz:eg XņCfr{R'omv ڽ뱼#\`2iGqB|/ؤ*sSsUdU0 O=b;w)F]?Sȴx\E ?χ]|K=bEI,Y+c,BdO;!.)/˭ћUxN9YLnV%"r{dh-MI{HuysIg+vq.Mg܍c"<#l&9\$pG8AjHt[tb吇0q9HKNdۋ8~rjLZJZe&DB*)IΤUUDZOԏoq)geɲQɲ,sY6i26b ]a7QSTr*"hp}=~GOs4̆LfJfekZ9j)IkĤ5UfݝND>v3I.d ۉh =]6rr4xӖC2߬7;񭏥N&.cj 74LRjHCf\Cei`@#in5/ X?M+1MOk0dfC2h]P?Pc΀rG)d]u:2bqf}k6Z2vWͺq!HWu)VL!sCMf If֣\70Gl((SuCؚZ<+8芣@Go C[CW ]1t[VpSb犝hv6*v^;Of\عb犝+v$vVU ]1tCo:CW+*b芡7wgW]qvٟgW+*8芣7wCW ]1teу%CO 6qٽ\Lb>44~P^}!ڽh5sS–>~n2vYg%'i7+EuO+聺1V/kȿgmϸ= uW|QC<_Ԓ$*'jw| =`zHCWт/͊O| 39D%=eBJ uA-c<h%W1?O4~:t[u@m 06Ͷ͵tZvz r-| R2y{ɫAL3*w94v~lA>;7r~ jOSZ">^~SZN?Oo! _3 rtV@c5VNqZu=U}gJ,i;|c#, kފGOtx. #8-O2}OΖ*WtniDm_mDڸmEfmڛ.a=}|9LLaG 2wr\hXZޯyyVoVo}L{G?9|.EX9Ԧ98;;4Go~9<6ϖUeD!I!ҬtF'I` mvRUu4İ~/y!EI~ɴ58wlbGƱi~ġ2q Ac$DH+=KE艹(G_BIC]%B ;گ>hAJ7ߚpĀ֥#CB [| x{ e%|yXm[q f\U{ϵC']ڈEo|\HN޺K<#VCYVWoGgjm[|}A:t9W^Gِצy1_KtC{5kBFkjD fym_N@vZϋ`Uޑ_eVϡy8WQ-0;U䶮ը$>u&w ݵ.V V&sJ58(GiNi:PD' -C;ĚnhcH!qOg+?T_w\.=pDuP3LYX3;3Kڷ_VЖ$3ihHWiwV;jχ;ǝ]]1q?&οq{~L\|xvj늼!IZ+} )ƛiC:hzwp'[XhyOĐ,[Ce\zF &bc}ԇ4W#6h]m$>s#!uҹBiQ~$T؜7%KvȶSs'trmFG/dU05+n(m kri@B'uk҂ f!dݘEpƟD88I[|ßII[¾>"<5:.%&mJ˱ cc^Iy?f7~Ԯ9/ǯpN] AЊqr\ vHqE{1M.IaPK{r,, cFӷ%33[x!O~r9v03t1&?{x~lKbx瘴XH ^vacNxѷ rg$"BRZp7hS/NWbrڣP69=rN( YbDHx>3t^n}M7NJB)\prڢMdȺO. A=OOZ jo>-:ym!1u@M:Z>07^iAp`>BPN<:diH;IxL^C_&~g]&atM{XWu/eݫ] IGݬSH!Zó lJ<=ްK?pE ayzYv+љGxzw[ptU~,$b\j5V86*Gpؓށkc}A-HB`>e}(bsu82|#NkAQ}lc-''ؓ'p؟4:ɣDbIRi6_R `#"m fLBlIJ{&'<a-OVg$&:(iܭ I.d] 2&GZo|Ic6-B̌bf, '3fy?J{|dac3lFJl MPgXfat 3x|OSg'^.Lg0=ͼOaˏm">ДL,- =)M p:E`mO(pFyB2jWhAޣ;3t1#gb;1NvSOtwf]frdBFtEG)2`ef RL {izgdx>}1 t,ye73Ś&-c5 =yD>| ëA_5# 7[dž : R#ez좙^A: bY\%(yE~QykIblH2 9oPHSSW1@6B%<@f;yx#o#4:i/:3c31ʃBʥQm:X'O^|ŔZgXK+@coi֕#-a1DTNZ6E\֐sk_ZEMgYр]e?%϶=4* fI J=UQB +MZZ| N1TVjՕXm,V{~-R b,YP2CO8F=͇[lF)A0T4RaǞ ny'-lͩq7)vdSGCdSvEaQl8T`&'z6?f#(Z׸1 1ǩXgCxf[5K7}\j'J涧Eٓ\ɟLYOOD֦ofg oȸ3lo He̎͗$/4;~ ;zOH c~yF &ivӯ'ybis<#DHϙh軥6xs= TT<&1ϷT@f'@i:+l'r)߳G(T2lnٸ"=׽edr3bEiZNovT>g1. cHk `p6J?N9EbIp"ܻ&9Ovu?޸g58V!GlR99d*Ar'@1䃝n+*ڇx|~ 6{ĊN?X!W0 /(YŸv|9Be]Rl_[ug9f1Y܊[?&)gT8D}&QhnG=t06O 3If+ɕ5//9q΃0*Է^!)ˉar*iV =iq=J7O ;ߒLE̛7O<%|w ,Mߛ@`,;tۗ}F;b6~ cJoH?".!%<xOW?vtG{ ՕKo:jGo$1Y! ng|$R14.U3^s̛T܊|Mڷ8(ץw6Xz8C١3k׀66잵;SaO~t=t{ctMO!AI'aJN#z5]w]|=v*b$Ƹ1Ν$8{Ss;WVΟ~cnCW ]1wo C\[1tCW %0 ϧ_|v8۬8슳+9{sĦ=nGGW]qt_ GG7+b-C+ZyWs_4;;/|vVU\s;o;W+*b芡7wCW ]1tЛʻ+ή8χwGW]qtћʻ+b2t BF|8Kf^.Q&BLA C(Nw)S{aKl?7Ej ;k,hЕ'~@]sg昿\]5_3ֶg\➄~ T+_tA!Gn/jIJEy5W;S>0tpI=b芡hfKaS>Ն]WW]%btIy+~_8n `,Cn4fDf M!h-ulpdXk{mm=BcpU~o7#j.MH% =jÜGĜ%d;7Tɺ1rxV]&ϚZ:h1Hl쏤ըB؀P'f N 3+i|WzSFw%-2)7[v8ܶdU׆kGLǨ%{;P!xm1maZM|` [8; 7yX(!S>^F ?dKd a/M4̀ PFtXlF/bJɗѹQl)DҞW?בRyZl^ѿщGZ/$F(2"[Q7"4̈0,Ӻ I+m⺀<o ɺ1EhcV˫̟@'j?-:6sKf[ZY:I}KoWz=U k&Cbwz;?] q9[?Jd~zU֧)w[/?)ןŷTywND=I1{9:Fdk'8a:U*Ⱦ3%ﴝ@Bvoţ'b:z݆fnIx[kgssz w+:74IzKsOm\"m6NTMjNvI v> K&c㰣A?EZh;S^_hOK.iw,I׌_g_U{+Ϸ|+Ϸ|W>&ý壈gG{PGA`g",^O@jj#7ovHeyg*2QF$Piz:w$0^;n*:SbOۀxȎr$du`VyEsu61I#4?PdE8נ1J"$䃕%"VTOqan#!׮_фW xwC\oM}Sb@yp\Ҍ! ZYdV^ףqRxI>{ .PZ[,.M[.q$V'o%gDl!Y\,C+Gķ#3|m5-_>߾ fF+lHkWʼ%=s5!rvwe5"3/_'~ K;[ EJV*KHzVWd̀4b!n4e;-]~ Cov4'bH-ҡ2 i=A#|_1\n_>PCݫ4H.6RP칑:D hu?*lX%wd[k)k9:qLgc##B*B|b 594 g5iAUYn"8Ow?nw.!OLHRwx9` w7/19hS\MֿvEz,%L1#0<̥v=9^ޏ_w᜺>9iʃ6"b \t>6aäۡttrUb1vXa^- '?w;zKxa=<LJ}cq?{M%DOr^usLZ,x$}/;1o3(t^n}M7NJB)\prڢMdºO.P A=OOHȗ iy#K.[-huZpܝ7zg xß/lj񸸄DNs$uOI똤yatMXDrj>Toc=h :L_L&z {g /k tڝ3q?#3Zó %|3>au'C]k[`[tKuߎ^-<3o4鵙ά6,mkBSx]N0Æ WM- 2*5X|DZ=fLc(F? hҶ BLrGpodgd/e>f 9]WA\\Lf[xilϣTs1H QlHاEt(SAZ_Y X mkBT~6x U a@Zd6dI)XZIʨPIj:b@DddeaLJpwoϿ~,w7{w9y?0l֐neƘ~R鯤,SP/!`'9{YTaPcBYxpp'Nm?y D_0MH8J|}ㄾpM2JVmGl ,Z6 &'~L+`x-ev_MT7 A_2X!w|!|VX!F4_~ $!_P}1d??CMg4Uw˜/7GH~P-OwZaX*?V|o hs1G[p8Kyu &+N]&ǸLya&ݼTXn3ݼᱍ Kd ƨb~LW/ &{o =nŻE㝮yӚI5ӵPƄKiuZsvNN^b W)VGC2aꄴGv IclCmX/ 6 \X6O nee};Ghg1L?((+<Ɛ Ѽ'2b?.M ;v2mI*a'' : uF&֊<Z#L0ӞT&#5,;Ļ\AvI5>Q&e-F'ր;E>G>VEI;n?h2h5[=mxEą H95<ƀy<w#&5BKk! 9)5#!vE툇slvgZ4GWt:2ؐ'<օBc >ֈދ^` w8qx aǘfM >p o/A&śh<}@\>3Lc|Rq&d|pF~g('58#DŽ%{A^W'orGR&J3s* scΒlާq/=!=:v)w W ur6'h|XӺ0?}WI2^ЏDzX ԅl- o{v6xp08o>4י7[穱 \̛pټӲ;1vCI^8'>~^/G{ٷ/g{a;.~Jlo߾)*/N\ϱov[iZ_ձaJΝ/:6O- 92b?Tlk%?_21B sY5>:>c=1Ow y^- ڶ,XzusM#גU]>H_yYv!ۉ_mi Rus]Xm_g)YY)m]y,m z1aaaxEߓGקo/Y\k6xjgH|yu.\aæM&wk#ϐ$?]Mo\Ⱦ,/ڥQ@~6s?)}, l gX #vQg Bٙ^uのuhm?}{].~}v_J;xogJY]޳@.)oqC?}>@Xߘ'-(W? źvƔOʙRv[K?[A}?-wmՑ}g\=c}M ggg DŽ-B^k_g?F? v0||؎=ǧHPgs/hؑI t~{n^}ZyD5XWvO)"c0vY Z|~_%/,p\ɹyΰZ/;/xs_9?Pܯ5ݻ\[y|č8gʱL{? 0 0 _k3>z_\S |<)b|7aaaxn.ta?l^Cvkؽ#~e)3<3^kdlc&jK+o"e<.ʞ`^(3zu l+6v<ï k7]/lc[`On}򚄫 G뎱zt^v2)?;Wmr5ocIz?Ozx{&!ez."ѯ 1Gg{+ҏlw<=}GݽFƨ^)zIpG K֜{{e G12ۭqiumf>.}~a? 0 0 [u+7Svq֭y΅ ?ނ}XwŶv?ߩDZۓ-q/?߳=<~#>Fk"qzrQo 9r,nY[;o:)@-`ק-7({߯S@µK9֠ɸ>:n3 _[_*mtcmC>qSL=<6;ǫsaaa{xˌ\ފpx?0׋#5zяc]x^l򼠕(f:~٣^lin59W~\;?vn6erUbS~v^U O7O(|;+SG4|?f*?rW~2oNٟS9~daևmH6mX[J~s.ym4ٶO|Bd/b5ɿyU? 0 0 0 0 0 0 0.P~*1@G\⟿KrKXs2(ߥ纎J8'>X@▼QQbqwx b)_K|v 1M6kee-2Ǜ59?K^E~9ϱQﱮYF8N?~;:=J<-tĒyNAgC \NXKs)'^Kg\~2}6}Գ)n]Or^j~"{p29w6/.z-v:+M{WJYZ굢`% Ҥl9ힶկ#OUz+U?;sd~vND7*.Y+v:ye;8}~|+ÑޅN9}{Bƞ#txխsXɿkSV/uJ=o G<ջL'L:D]6jfgLz/+ؽ[{rCMYq~[{yy czA;w9zszWHVax3 %mkBTx흍) q ĉ8D^>׻gI@XjjgiЃ`0 `0 ?ϟ|:seQ3|ӧO|:2|.};7eGFO6_Qv]T]^ˮg{>pjzkuo{yye?{-x/ D:3D&򈼹e^Hyi#/OGzϪ߯_~ :sMe#M3Y#=2 QЙ[\s=E8}E>GȩT ڲTg-}VfoSVwzV}./>~!?U1<#}=F[ ~QڋBN..+푹^edLo+[\-k dW(}6q$#?z6Bөi?L7!3O_Q}Пuo[=tkȋM!'}/Ƈdr2_Cﲨ: `0 :8o=+8-4}۞cĥXdq{bUq©ήm!ƶg*ΪU\z[GA=^+ru{LV U?)V>ғ)x|Yҁgi\yi^cUo*= !TY?rfgWsʽVn*VX#=Fϫ+[F~yH\L~[O҇h5ݵTow|Sfӟ+);F;:x )/OS yUo2e)Ve3'wgGg=J^`0  ľu kU,Ksؑ5nY,bXw{ w&3QהNQev ]ƷgcH˞i{A3I8hwduwUIWq8I>+@pQşGcZ\ƪUߝ]/:3d;ɫ:gB9R|GW~w2;fzt|+i5nΟgZY|<1NyŬ|E7k?z/k><=Α}N΅>uWydʬdz `0 *\?W8GY:Dgcg< 2+'W6qn؟{ru"wU쏘~c#T?+y{Q,,^qF/Xv8.֩g3}ȸOP ~n%hUG4(_sn|W}Tg&x^c,Fѭ+ <#+}/Uw8BRh_|33!mr\7U9m({ѝpvew[xG]߱?g;,nҽow8]וb?OV=Z_#ve?vN_WrYLo;1g9pV^G~>[_vNOS3 `0Q[ veO\k^8֔v<Zbz\Opbn$~}oz3ј mK vU]^iNWA#x딫jt q :E= z%օq)CcYEqyRG-+u (K\hP'*^ء^q=m=y|Kvūe\rȊ4={W1;=ݷxp;o@>ȘT\Ԏ+C=*ɫ|GJOCW]x1.ﵠ9_Eб Vq)v(ʑ}[GwǺ{-oSdו_˞׃2;iT&w*w:g׭SOsj%Z[~_˯d֮+w]7 `0]kIu+eL]ւoA^;=GR?v쯱;<y o$N1紈=:ߥPVu< <&3KyC/4r)i=*/|Ύ^]QNН1qGw>ù{ ?Kv:A}E:_n+{u=rq͓̳]>>d}+|L01`0 leg:׺񶊝`W,3O?]\9P~[kOWiGc~)-<w.3q}'vuw$Vnv(r52S;Wk_Kϔ8B/hEՠ'9w?K;x:x<|@cϽVyc@ۖSw8Bq]=2lBe6V}eR( VeZT4ade2ޒ+nYBTqSߔ<[&=f[|szP)G}{Zׅ3n7jpWwftEw[ǽ;`l? `0 `0 `{~i`oLy>uoi\qK|}7Svu9G쯿c¾#>,jow{ՆݲL=mW2u_8دjo?kD߱mw>#}E:OۡO;y`$jwymkBT6x횉m0]HI!)$FR?6c>>~sm+vuՑνYu8uN?WP>1JsWiV_uKEϸ/rˆ_gKW]ױEYcl,[TYHT}xL#}A GV7^}>iҞ-i;}LJX&TP3T#ߨgJl e'=?͘ona|7>?ǐU%;/mN/IfQփz{G}?v✽3X~j{zTAO^ʰ>?sy|G)Pg8 'atH<J0S΍fJFTF#Xx: @t֪sT_?^7JujUIt:鿪}JMЧJM嵥}j=>b*mkBTx}+(H,"H$"#X$,QԈZs>U{ ..T}6ڳ-F`p]k߅~b  О$wݓٱ|sCoA+q3lOx@(0a+? T,_7s\Ϙ^Bl1)C+k(FyN"8dPC_9>O0&l4Im+nwGrŰ)/tihf ѸX>E)<,6s45zb?J\<OM%O#(76:= ӋYAƒH Ls6MXBcX&ǘJte. 3.je(??Lj=%wZizFTx$kP8Em jAOހ>~؆B9 ֤8UKCvjbL Cy ;mj P. DkwUE€3ܨ8xUJs\ɟ+;}sFQ(KIXݛƨ 1 +KdX];Jģcx$D׷X`i @l̏rnm$^9΄zBGϞQ=nfkDe; <a>,⢞jk0B[p($Ǡp4 nq`XƓ vϵ.xHnorJ5Hu뇗 f a[Z:>36[g RL؍?( &w.7C#~B{] UW 71jk~ecGrD.=K@WDZM0倐0\xvqNZ ># BE )&yA}t?B Ym(WIpɱ |2+\2 )l8tl@Z.Be񅋍RSƃm>dIl'N adĢG3%#)?$s _5=YBR#-k"qGP-e"f%֩-ϓ378M9ϊ,_*n;HEBƱcl~ ˝[/sagIE2,z1t:kLș壋G){7ond{@rP>kwk׽ #kXfyEAB9uM4P=_lgW؇N#_nGpp ,ZUu6ȓVӰ0EK7*|]{75F\ԶzQz! uH>upT٣o3P)[^6` -d&*=%fY<^ط`_6|h3ء>2 Pq7ώ ,NsjF=B` 큳CiU)R鐏@LҮǧmb<2FHRqùFXi䎲OmGA}:*u f:@ʫRH.66jcGOpO- 6HKJU:Jǃv,3DZEƮqq7p?ȌK%ȧ$;?Qr6pP7`a^=R_)m>D3#£ _' Iɭu͋C-Rne㯄ssL<ȭ/R)|Lt_1Lk=rr 4/gEr~PnB[\g[{gYvRW' {Fem1{ wL;7&$xc0 n&u@5sCCձm8Heft x{q(aтa?Q%l4ςxmWI׆GC1kQ3iJh,KRO`ʲ4)%b6B8\pe;u)ko)#WSncRx{[sXv195_0Kՙ7>Tp5ٴl3S"؝LX睫[5m Q="u}pϘ*xbՉ#iM+@Z! Ϯ~jYݬ$?5mtu] %@݅:4h8ۃtu3; ΑO1A/r R*5i&j#Y2:$Z(ad@>'z L뇶6Z8|`6"X1_z' F-я?X^ A:?1;h/KVB' vOnFS ƤQ{=kh7MwXQp\v͓O/. N3HKRlK"q^Wh1wt h@3e6N|I;y?8t[[! $,ήLe"z%IކAkRl!3u8ځy?_W)AbCO!rza5Sn֗#<43y6"R߃CQ&>[# BHǽ{vekOTlq(UH͵h ݔ8,@tՂL{p/*L"d_y k,4 G̖bD>,.ok"D;|7[.DCA#ilϟI֬Dq]+eE _-- ڰc^Lq1~CCC9gNH8BkhJ#Z-`VoMa 9r$պZ-hkh ?C$ ^tď9d(8P݅]ڶw[wl;dn׆oKd Hބ(DInI M_(5)6H/Y1 QRk,nXHʉ?>df&6^EJmt{CCc`0ʅv5x<\9Yc}106"״!֏9dl:' 1H"z'7QqɌ#KR./CVgQȬ\ `?d1yuM6Ƶ8ZX]8^pwQE &1frRKi$GݜЕh3'{;;~FK37ku<pdʎ+C RMzƏ7)nҀ lEGyl:̑IoBS%|ЕsTulebA}Aʹ10A{KʘӺtjdLI=r PRg_LbR Şl?␔)![Fo wi&k^CV(t@pW2{hxHGRn͉eCbxԉ6GQd27\ثdS=\Ff*0ۣOP5(rZߙxQZ>~GAeN-jY7Ҿn;n?ӹ"Px}/NW:݊&׾:x" ꭥу;R펔 c䛅љElmG§a= h¨BG_uYnZ쫭FYs U"zM&:Gnu.DX5Xn;}ԫ%XO?~2&Frjj8 yA*W I9/ub)Zl: s 85J>~iI3Yԕ;:#hELם[ROd^GA˩f~Y!En0~/A Km>^WYq"<цF*c:xw|͞w%ehRgd9̕v3v Dgh>>?3hYDkgC(ʹƒԕSԜ| 2Q94(?OGQ34 fccPopTYaW(>@tX4`LGٞpɄaŰl\[9c26U M6f,'C4i?W~psϠ?kAKrŵk@I|>^xs?\`,D̒5W^w DMXf_8<%|8_왉pP1Wlm߃f?4:́_Ԕv M;k:p_sj؎qw]$F}y ,b'N=o0, ~M YR46+!}@~ujctCP.Y(x׎z?70WXFܣo3z0c8RGg0 TU򄽻w"/4֏CQ`[{Ocn]+{{ N!33+5]qpj' r9FDȬ)~: 9Gmx2-?sraG"yvUpa;Ră A\& ?#n 0eed~oq嶭!!DzP^H)>oȑ.ļԶ=Hy7S-M ?8ycߧq|#5"2Б lm#UeΤVbM͘jAc7Z ]> 4gb s 2WRsKg6 's8qzTT[R[w)I95xWj #!nN+zPڔ KgTE,?{^RDݥ=Ru^zîc&D'i74SJߔ&HUG[crͦ<׿~4}څh;lpAZ%XZ;tQ?yk1+Ƴu6[ Dc4Ɯ*dB#!}e>samhG3c^8u9󼵕⸈߂UyB;f "Yi=D =4&|C3g]~WgjhSIXU"1A5Fr4{AljwTt6</N \Rta| i>T.Wo>>xϯY{緷m,J{gg}v~)]s!?wXGFl!7U|Cnfﳅ:.@mq%臔Ru?.:aBֺE#Gg'yXDuSWNJD)21ѵVagWPqȒ s?¶@g")s\T{f3go^w:^"{d#!φt},nyWFKv„X4|VB~,˘_&fjp/WԍwaO H 3I`u1ͤ+_W|+_W|+_W|+_W|+_W|+_W|+_W|+_W|+_W|+_W|+_W|+_W|+_W|+_W|+_W|+_Wݚw)2iTXtXML:com.adobe.xmp Adobe Fireworks CS3 2007-06-29T13:11:03Z 2007-06-29T13:13:51Z image/png 9 IDATx{\U_Uw (@WyID1@$0DZ "AV1%d R@ bTd<4 B$OoW[dշYu<}k߳g23Zu lA35I En&v-䁦MjdHcf/;i[ @' @'`5Wfr$0׆_ IN`Pf* ŧW!Jl x;p+p`dk eg)? a+%MC/]"L N/ R3Tt/3鼼AƒsLI7Gn q-wLh.<0V9[m0% pXefb05L;Nj tH*| loRf3 HrtZNjy4*}{/of88vL,l௠!>6f ԛn$>)]z̾ i>lIӜ$ߕtm# A{cݍgfz@x"2.L7BSؙĀcSvd֋:ISpx ]̍?ئs 5 Qn1/:Pbg 7 %f*x'CB3YW!;:dlfg% 7s%xY3[>Pāo$nk)4^|FI>;J3/39kD)tL:1Fx8|%:&[hPxNu|㩑XfB(Iwk0! HXof @\/i4pP=Ntt6Io ~̐tЋI[oEcw jq 1-8$5k6#V*I C\WczF{ZR(·0ܞaTL 37c{fxo469G!%=/} ٪ZK:yw=8E(>qK:;VXmf$6rvM/75e=_%p7#?gT zd7ÕC\ܢ.!h!='Gl'3iQx(([־lJ`ѻ{]܏qw" AߒhER ߆i n"NlnN+nMR6\ o%;Ć}#/xVX9[+Nrb*huLvj &HکR$=UCëQ3rjLGcN61 WH }6"o/vh(PF8F^2+J恷G.)|Sn77}vhzc;"Om)^X4I]q ,$MR{3$>n Eo\bTl+qHd&<ӋRcnl{ӹ;ًڿ<ŽMNjp05-s(iMT3{9D7KD?-įV}t{RL V\#e}s,ϰ𔙽VlbQAvn G>+GuzmQgݦB)q7$8W$6G4ɲ>8|j82 'TE:[J`W]ŔHA0{7 {3gr[S{C)sas>,;av?= iǃXTO6@gH|V+(fgpc gr3 |&!lvlv3P~11qr 9J_T N'TP.`?Mu0{R7GnH&5v!ULncgCCݙ +kU{ P`3ـ{K1i~*q·/*km^$SO{VYxZiai%Fd]=giHՍ &b zo6—3p6Qt>6=;<~v=.!L@Yyy#ZKBRm:$}WC$YO|?p{ ܾ>clfO>3x0fV{vyU! 衬&V 1n 0"g}Bj@KAŃig4 l.7+971UBp<'x *m I&&0h|y ? 3OJ3v3k, Bek)@8!WW&xT[nnrdAҁxq&`CrN +"+Z 2'+'ps+df[ c>n9$ljlZ 롃ֿ$k j=<(?.|xe6-IENDB`red5-1.0~svn4374.orig-doc/templates/0000755000175000017500000000000011760512604017056 5ustar drazzibdrazzibred5-1.0~svn4374.orig-doc/templates/myapp/0000755000175000017500000000000011760512604020204 5ustar drazzibdrazzibred5-1.0~svn4374.orig-doc/templates/myapp/WEB-INF/0000755000175000017500000000000011760512604021233 5ustar drazzibdrazzibred5-1.0~svn4374.orig-doc/templates/myapp/WEB-INF/web.xml0000644000175000017500000000373010416271270022533 0ustar drazzibdrazzib My sample Red5 application globalScope default contextConfigLocation /WEB-INF/red5-*.xml locatorFactorySelector red5.xml parentContextKey default.context log4jConfigLocation /WEB-INF/log4j.properties webAppRootKey /myapp org.springframework.web.util.Log4jConfigListener org.springframework.web.context.ContextLoaderListener gateway org.red5.server.net.servlet.AMFGatewayServlet gateway /gateway Forbidden /streams/* red5-1.0~svn4374.orig-doc/templates/myapp/WEB-INF/log4j.properties0000644000175000017500000000007110416270031024356 0ustar drazzibdrazzib# logging config, this should be auto reloaded by spring.red5-1.0~svn4374.orig-doc/templates/myapp/WEB-INF/red5-web.properties0000644000175000017500000000010310416270031024745 0ustar drazzibdrazzibwebapp.contextPath=/myapp webapp.virtualHosts=localhost, 127.0.0.1 red5-1.0~svn4374.orig-doc/templates/myapp/WEB-INF/red5-web.xml0000644000175000017500000000213410445627033023371 0ustar drazzibdrazzib red5-1.0~svn4374.orig-doc/templates/README.txt0000644000175000017500000000030610416270031020543 0ustar drazzibdrazzibTemplate files for Red5 ======================= "myapp" contains template files for new applications. Copy its contents to your application directory and adjust the files according to your needs. red5-1.0~svn4374.orig-doc/projectplan/0000755000175000017500000000000011760512604017401 5ustar drazzibdrazzibred5-1.0~svn4374.orig-doc/projectplan/include/0000755000175000017500000000000011760512604021024 5ustar drazzibdrazzibred5-1.0~svn4374.orig-doc/projectplan/include/milestone.png0000644000175000017500000000627111404471610023533 0ustar drazzibdrazzibPNG  IHDR szz pHYs   OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3- cHRMz%u0`:o_FIDATxėO@s@J t` k v uen( !R9CP'9{Iw=}GG>ʴ{/ć2p ]e% 2\W /#UM%/*u‹Hp< nHϓ&Y|$<-qqOv񟚫&tuV|$<[vaXruΛϜ$%3oº$s߂%UI,JHu^"*+!֍o+ M%&pA)(7Tz֟αŽB֯ $H';No)0H5 1#!Pvy}`)nf%ֈ4o=c}Q}Q }wz?g"A&\;C+9 A/Ƞ;-ϋ@ZE Jő<AF-ɂIENDB`red5-1.0~svn4374.orig-doc/projectplan/include/timeline0,1.jpg0000644000175000017500000014251211404471610023552 0ustar drazzibdrazzibJFIFHH AppleMark    % #!,!#'(***.1-)1%)*(  (((((((((((((((((((((((((((((((((((((((((((((((((((  }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzw!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz " ?F(((((((((((((((((( 1!%IQR}(xʤgx|jFaW)cMQQEQEQE2O)$}0 (Q@Q@Q@Q@Q@Q@Q@Q@uR=FeKDsHbv:!.#;B²8l8 Jе-'>k-vWv23Ȭ4,V.X]Gg:Clmȅd)BHm;B~/X?El% h\ȯ`=.?ַZ\:u<2i# 98<ⴼI)[h[U%[fCF< N[嶿{UdV՗$p9jZ^ ?05 0榢S _6BZ]yq ''\q?#?al,uO07!@'( 8OK> +ѥB)Ik=S'TmkRφ>/j_/~Gd{I_ ? ?b_Կ_?G K}^LTmhTmkRφ>/j_/f$zl?>O3G$zl?>O1Xj|5/QR|EW06#?a_HO|f>/j_/Rφ>Ga&mG64G65R|Ek|5/Qz?i3o=S'=S'OK> (T"{I ? ?b}_Կ_?Gڥ K}^LTmi#?aT"K> (釴 @ @/ڥ K}_Կ_?GL=ͿHO|fHO|f>/j_/Rφ>Ga&mG65cMך-nEKG&1z8q}_Կ_?W[[^/(i1T9$vyUhьO.3Ɗ(4/E(((((((((((((((((̷xʤ/)T%G/@QEQEQE>_즟Li(@QEQEQEQEQEQEQEQEWj9nT1r鷎fi_ X»!r0uc(?ҿaٚW?? yEyf@(ҿaR}GQ^.c ?4,Gԟ=Wfi_ X+v Q'mzٚW??3J]}IyEyf@(ҿaR}GQ^.c ?4,Gԟ=Wfi_ X+v Q'mzٚW??3J]}IyEyf@(ҿaR}GQ^.c ?4,Gԟ=?o+ҿa[ъiՔ6j"r۠`#0pu3TO+8ֻ֊(#rQL((((((((((((((((( J=p*G/RT%Q@Q@Q@ i>_즟L(EPEPEPEPEPEPEPE~5Dվ%" S,Ѻ h H-);Q\]jwr#Y[%}2ld Grt}* /m^hm<;q`OB6cրzm|B{& q\ABsLڝPq(p3еZ]Ec_zUui&BېGG8j!gRU5m'k;Kaup8NO0G6rQ :3~Po$zl?>O3K @wbпAKQlԿ(?7=S'=S'6? _jCcΥAƩ?#?a?#?a?ڻпAKQlԿ(?'$zl?>O3G$zl?>O1GWv3~P? :G64 ?]~_CcΥAƨ6? _j @ @݇u/5G!gRT ? ?]~_CcΥAƨ6? _j=S'=S' lԿ(?AKS#?a_HO|f?t/!gRTu/5MTmhTmhjC :3~POHO|fHO|f?t/!gRUoKw笓\O3V4y/ZѱdrcG?r>QEr袊`QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEf[Ǽ_RTvT*?xZ (((d~/SOIe4`QE ( ( ( ( ( ( ( 5ìo[qAn7&;ZO#Md]K|ϩjPӢ(# ~s|猛O:0_MqܘYAvʃ#nǜӯ?۾9 m"i1]lAc{}kI{O8ܤ(6suP.w-HE08VQKimo$ ApTpB|T"~}#ObcQMR|Ej|5/WE__}pj|5/QR|EwQ*`ڥ K}_Կ_?]}v_ʃ.R|Ej|5/WE]ʃ.R|Ej|5/WE]ʃ.R|Ek|5/WE] }_Կ_?Gڥ KGe=pj|5/QR|EwQ=pj|5/QR|EwQ=pj|5/QR|EwQ*`ڥ K}_Կ_?]}v_ʃ.R|E^mnu{[м9R q0O8rE'{+ؿES(((((((((((((((((2=p*xʤQԕ?IEPEPEP$}2O))QEQEQEQEQEQEQEQEWMs [x4ݭԜ-¬n?>`jևl5nm/b;n[gfI.MzmtɵMzY.)/,е [Q<˔`)=uM>}HT5=&WgU+4A= ;DZP@=Fiko 4k__O]XZ,2@%E(æ@;[t5b*p^xZH+w \F$zm㩪ٚW??֚I5_>܀w =28SU :F"`9NnM_ٚW??3J]lԿ(?AKVYG.c ?4,[AKQlԿ(?Yff@(ҿanu/5G!gRT}f{)_ٚW??3J]lԿ(?AKQ!afi_ X+v V!gRTu/5Gh.c ?4,[AKQlԿ(?Yff@(ҿanu/5G!gRT}f{)_ٚW??3J]lԿ(?AKQ!afi_ X+v V!gRTu/5Gh.c ?4,[AKQlԿ(?Yff@(ҿanu/5G!gRT}f{)_ٚW??z1M;ZDQ][tLfTz 6? _j~ҮkpA`}9֮gXGgsH"4,KIKku7`IɎ'sYNmb__ěz>'O;~:z\uK( k.&EJTg3N͵͢H]hKN# ,HPq3׾9Q4;MJtI⼈ S*"`$a0V׀KaO{=9Chhb{5oҵu}2RWXo I 0WP#T  )_A-0ui;Y[ %'@-r}/j_/RφG @ @/ڥ K}_Կ_?GL=ͿHO|fHO|f>/j_/Rφ>Ga&mG64G6R|Ej|5/Qz?i3k=S'TmkRφ>/j_/f$zl?>O3G$zl?>O3Xj|5/QR|EW06#?a?#?aT"K> (釴 @ @V'ڥ K}_Կ_?GL=ͯHO|f=S'OK> (T"{I_ ? ?b_Կ_?G K}^LTmhTmkRφ>/j_/f$zl?>O3V4y/ZѱdrcGڥ K{EnkkkB3HJ`+pIlgeV9XhNQL((((((((((((((((( J=p*G/RT%Q@Q@Q@ i>_즟L(EPEPEPEPEPEPEPEPEyU\¹ (k)lku'%# l>OρXu=a[gKح-[ْq˱GK+&5dԤB,^,In!D.PgYCP!. >Q%Ri8 V`i{U-尶Xh$/p0Ut=7C}p^xZH+w \F$zm㩪ٚW??a}k;X +4,Gf@*GQ^.c ?4,Gԟ=Wfi_ X+v Q'mzٚW??3J]}IyEyf@(ҿaR}GQ^.c ?4,Gԟ=Wfi_ X+v Q'mzٚW??3J]}IyEyf@(ҿaR}GQ^.c ?4,Gԟ=Wfi_ X+v Q'mz0O࿳4,Vbve /0/E w 85c+ܿES(((((((((((((((((2=p*xʤQԕ?IEPEPEP$}2O))QEQEQEezlMa )fzZW,<] <5vHdkA$ lty0ۉ$ ONx籭#-o#{IM讬#c98JD/Tj]oqЯ 9n-\H5hS!mm.?}iG+ߧn7aA!r@$qKp5h-5/J,v+WnrA&>7,^k{$DIUӂq3@XGY]`#4ƿpMmrϷ 1]ǂ L2q_CcΥAƪk|Nv iw,p `@q`Tm+Xv1u/5G!gRTHO|f=S'j :3~Po$zl?>O3G$zl?>O3GWvlԿ(?AKRG64G64wa :3~POHO|fHO|b?t/!gRTu/5MTmi#?a?ڻпAKQlԿ(?7=S'=S'6? _jCcΥAƩ?#?a?#?a?ڻпAKQlԿ(?'$zl?>O3G$zl?>O1GWv3~P? :G64 ?]~_CcΥAƨ6? _j @ @݇u/5G!gRT ? ?]~_CcΥAƪޗ]*Y&xL szU?HO|fi^_ݨcI|2`B3"X}7(6/E(((((((((((((((((̷xʤ/)T%G/@QEQEQE>_즟Li(@QEQEC%Ļa0UĹ==6(60|?RiZ0b60'UQ\:U ADe 0vhۉiï{MQlZ;BVDfftxvuA8,fԮ/[yD11 m޻cEiwh v9$3H]F?uS'U xREj^CXgG LlEʅ{F:) ,4uԣPyEexé#l@>Z_jf_qrd쫛c 6BIp$ZJ)^M+B^T7¶}8 A4Ѯ|+|xZk0y:Eu. ,ogilz);8 F5{segr.k'/f )*=r3V!}^}j)cY|w8_ EηeI{m ɓ"Hr@!J [lԚ:Sy3pۉ7mm۰rQ@ӳhGoZo _%Snm/Unk[/j_/oF*6TSw}_Կ_?Gڥ KW`ڥ K}_Կ_?]}v_ʃ.R|Ej|5/WE] }_Կ_?Gڥ KG_ }_Կ_?Gڥ KG_ }_Կ_?G KGe=pj|5/QR|EwQ*`ڥ K}_Կ_?]}u*`ڥ K}_Կ_?]}u*`ڥ K}_Կ_?]}v_ʃ.R|Ej|5/WE] }_Կ_?W[[^/(i1T9$vycL?bxN.6ܨI袊6/E(((((((((((((((((̷xʤ/)T%G/@QEQEQE>_즟Li(@QEEvfp 6[~:6,#9֠7 $;  m$*W;#Nf[YI,J(q .{~flLk򉝲p6Awt"jU_0.sj̩7 ``ǫ`c⊫]/׋k%7wWAs,>eevVc%Ե+mZmJ^J43cvW>E%oʇD=/+v Q.c 6? _jCcΥAƨS04,Gf@+w3~P? :4CLҿaٚW??CcΥAƨ6? _je3 3J]fi_ X· :3~P>D=/+v Q.c 6? _jCcΥAƨS04,Gf@+w3~P? :4CLҿaٚW??CcΥAƨ6? _je3 3J]fi_ X· :3~P>D=/+v Q.c 6? _jCcΥAƨS04,Vbve /0/E w lԿ(?[?k]$7)r8xJʮ".4sb(4/E(((((((((((((((((̷xʤ/)T%G/@QEQEQE>_즟Li洯Z6i;ۙYċ';UA$kEfv_*Wk6 sZÛnPy54!s$eo8(\n\_iky2AvN"h_7*v}žb bHK_p~_XiQ翄.;BvUb7j3mC`n9<}#>Gl8n@t<5BŚM&'1ynHʪX;3א3M_mr] pyjׄ5H[[=:ޥrem 0+c H^x|q\Xo5[oR\@v( t89C{;6thKtEOCz7 44_]|7kxjVr·V$F <#e,0*1^'n6ڤig̴!C)<adnAwJ+(Ir%7dk+ ~l\Iɦ\xV\O[Ǜ'q1J6 29 fx"]Z%G*Ym,+2U 0@egUI.o;]^w@m$McSVWPA ZZ1 T=0ui;Y[ %'@-r}/j_/RφG @ @/ڥ K}_Կ_?GL=ͿHO|fHO|f>/j_/Rφ>Ga&mG64G6R|Ej|5/Qz?i3k=S'TmkRφ>/j_/f$zl?>O3G$zl?>O3Xj|5/QR|EW06#?a?#?aT"K> (釴 @ @V'ڥ K}_Կ_?GL=ͯHO|f=S'OK> (T"{I_ ? ?b_Կ_?G K}^LTmhTmkRφ>/j_/f$zl?>O3V4y/ZѱdrcGڥ K{EnkkkB3HJ`+pIlgeV9XhNQL((((((((((((((((( J=p*G/RT%Q@Q@Q@ i>_즟L)6f'yM n]R񴷚}HUx9?w ~̱}WXR5so-,,6ć2sR0=F<[u!Viry!ZܴbM7aYxuk߭Y^4s.(!9V%Ijn&ߗ'Ey׉ jO}l,4Qi.J1<-;MwomeѦ '#~~\--Uח7k(,Vt2k{xm4`9s+LѸ[!B9=T1r鷎fi_ Xºr1uc(?ҿaٚW?? yEyf@(ҿaR}GQ^.c ?4,Gԟ=Wfi_ X+v Q'mzٚW??3J]}IyEyf@(ҿaR}GQ^.c ?4,Gԟ=Wfi_ X+v Q'mzٚW??3J]}IyEyf@(ҿaR}GQ^.c ?4,Gԟ=?o+ҿa[ъiՔ6j"r۠`#0pu3TO+8ֻ֊(#rQL((((((((((((((((( J=p*G/RT%Q@Q@Q@ i>_즟L(t5/Sb73C4Lced\jH|W}.nn.%w)˂zFs\ z1X-QSԞ]yoۻˍ9sOnkeV.f|)lGbV >5no,m 2}戶D,8lT@K8d* -^ьo*lf6+kX-#hH*1fobI5xW]dOGab ^:nQ//v쯾wh\,{wd<xRzRzh-Y5B)-+bYdI6F ݸv_pArUK4N*3*P9$(rIZ051qEb]xqA4  qd/~ ;Ӿ+N;Ye9 fPspsxс.OҮ{xnŕ,3Jcbrx!kѬͥ"0-ʈA\⇦ՂשQ\uĝ2×QZ܇׮ `ە$9v SU.>)Z*J9w[,,L>а`3)A$b+`Vc o.mZ;BqBiNQ~궁Oe'٭c߉tc)ʏI701qEr+F-J3BTo^iE3.YSqdہQQ\BR2RQ'}LkZj $(Y|rx 'MU6? _jͤgil.|\q fHO|b_wc{;/!gRTu/5MTmi#?a_3~P? :G64G64waAKQlԿ(?'$zl?>O3G$zl?>O3GWv3~P? :TmhTm(jBu/5G!gRTHO|f=S' lԿ(?AKS#?a?#?a?ڻCcΥAƨ6? _j=S'=S' lԿ(?AKRG64G6wa :3~Po$zl?>O3K @݇6? _jCcΥAƩ ? ?]~w!gRTu/5I @ @݇6? _j~ҮkpA`}_즟L(9? ]C-3EO7HFKV!OSUfWmwzdiG0*㍡v,ޞG9x{TI]VM04գfG]J rK/5y,r-wk7@ɷp;YWE;q-69 _]E{>q%KR̳$hV5 <DO4Z]vzޝ4/guIJEy߼%nSڻ(lb6w:K4WBHgN+.~&֭'PK]= ?;sC; 8@T8/mk%(Um'hZŨ5]Y-t,ǂ4 hb3Y#]9줶1Ds@<z Ṵ_ Gg4_]){Ǖ$EVeƨ[8Kk)bM_M8C/RpN>۾>Wq5ԝWK2<Ug=ZPw? #smcx3mA *l\aUfYx.=EKٮt"vb%Uu/u4Sz_bRI;994gmfX2&2v"(؃q¶;d҃Pt6-m:N9QEfjZ2h.@<"cfsLwo kWz֛{'K6uUa/*qJ}zm9HS>ʬQE6ĒJ[;F--fFAP #=3SRφ!Ѝ>!bmE7{ڥ K}_Կ_?]]ʉ }_Կ_?G KGe=pj|5/QR|EwQ*`ڥ K}_Կ_?]}u*`ڥ K}_Կ_?]}u*`ڥ K}_Կ_?]}v_ʃ.R|Ej|5/WE] }_Կ_?Gڥ KG_ }_Կ_?Gڥ KG_ }_Կ_?G KGe=pj|5/QR|EwQ*`ڥ K{EnkkkB3HJ`+pIlgv4?o*'mʍ>(#bQL((((((((((((((((( J=p*G/RT%Q@Q@Q@ i>_즟L(EPEPEPX5~tۏ+ϙlm9Ls[tP4y(Y=SB$Gk2]bbo&x"|o\=7V3R op<Ȫ½h01Kz5ROk:ן:E|yH%}O@+w{n:N0912T0=J+;}gqqkmijQ Nrp^G=W_&Cmunn?#sDO 9_Q4;D)c-F яdlK@x\MWfn|r˟pW8sIv8g\[\&Xi&xsQv\]q=j]?:֐ ZِĈr*G(b3^ҊoU2x]CZEUnYT)98bc'ڇ#Gׁ|bE Bq^рz)Ym?"<;EH>װ^,cC+щ-xjf@+pMmrϷ 1]ǂ L2q_CcΥAƫѥ$iSff@(ҿanu/5G!gRUhafi_ X+v V!gRTu/5Gh.c ?4,[AKQlԿ(?Yff@(ҿanu/5G!gRT}f{)_ٚW??3J]lԿ(?AKQ!afi_ X+v V!gRTu/5Gh.c ?4,[AKQlԿ(?Yff@(ҿanu/5G!gRT}f{)_ٚW??3J]lԿ(?AKQ!afi_ X+v V!gRTu/5Gh.c ?4,[AKQlԿ(?Yff@*ތSN֬QWeគ :z_t=de3\X.GAYUREƜԮlQE%(Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@T{U% ^?֤hJ( ( ('ߋ}M>QH(((8|KUb3A<$ Ub7d6o>Ţp\}k'EĊq& $5KfA6ToGgoSc_H'SI{-.,IQH$P#X y_ ~_̳-ZKȞ8fu0RGqrjGWBLs1uHR zU wv}wg-)#lUIFx\x*dT=#Xi&x~LL2&w Jg/OGk5Hpi]7ne d1Kxj fKkhX#v8AUo>oz7^˛{3 Lo,*LGŋGpxtX]:PP+9o~?å#Zh{^Gsu-aBFgl*‡%_(_h|m'h'%m5hK CMѭU +$A17H4ⷚخvOU3}< z~_?/?ߩ/ cդ8!F쌎b-it榣tm nG?s㯵sbU ,erly<ŐA8r3wgB܋OKdؘЁߧJWCOoqsnaDܒ;Q?yY W!&@[e:^[JoAqm{+&|A>1l'Q"JF-nRRr3χSoǪ7MsvH+V1>̆VQHiWnCCo]?d3oh[x|ycMm׵öְ˪Oʍ!ó eB l`ytgުki${u d6&Fkc5ڕĢ(O3K @'ڥ K}_Կ_?Z^6#?a?#?aT"> (釴 @ @'ڥ K}_Կ_?GL=ͿHO|fHO|b>/j_/Rφ>Ga&mG64 ?b}_Կ_?Gڥ K}^LTmhTmkRφ>/j_/f$zl?>O3G$zl?>O3Xj|5/QR|EW06#?a?#?aT"K> (釴 @G65R|Ej|5/Qz?i3k=S'=S'_K> (\"{I ? ?b}_Կ_?Gڥ K}^LTmjƛ5ZڋY61̎Lc 6 q'5 %Ζ`YWh s+-ҼZWV,V $wEt( >H -WE^-xRFw>$=w;~o7EyLZe%.ctr"Fڑ0]|g{ouCK&tԮ&!La>\I 63Ѥ}r)vjF{"-Dyn@7x'3ij¶sG6 MJz;+5jWŬ70K"$8l#%O.muh"2}Q'H1 p$H%ëG^Yi]~%.5FE͆y%ٶ%H)'U@An~^Y<3,Zs=worR! ؊~'c TԹ͞EyuXW]ӷN-"-mŽ8|\Nesksey_+-aF8~c'ʕ*חK]+CͧmK?v#l|s㩭O[ZWY]ơvIWK߯z}ZGۿ v/l^3/|O26;cnKd6vH:ƕ zggAeywyѼ@pݻ8+z~?4W[> ^Q1GMYl3 wk4VD햢;1!c/@NBWAvsh7š+yu:~]u"3cK6PP5涹X](v ϑw&HRM&KOzy^ZΖk6 {o#(?ҿaٚW??O +4,Gf@(=+v Q.c >@3J]fi_ X>{o#(?ҿaٚW??O +4,Gf@(=+v Q.c >@3J]fi_ X>{o#(?ҿaٚW??O a^7fi_ X­4j5Ev^9ma08^AP:*'qk]kEW~(EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPe{U%Go?IH*?xZ(zE`zQ(>_즟@Z0=(b(Q@Q@֊m@H]t*\x-LPh;ҵ}'Ne)7HC+y0FB2Hjtˋ(5Kynm:59(c HduA:3xB[emAZsn </=9'9e=Nk !Lg=\q G4ӫa[%nxbK$L4mUNu1db.[7nRC#=WzB_ɧB KO&! 9ssKSNq\?Z % F#8'8aMO[Ӵu\&BK< 8L `k/]D}1S?x&gͷ98V/-f,IϘcn`TmH#nֲn|S=w:p$ p c'R/iq64v;u,.U8* 'ɥö:(Ȣ]nIP+AN:lԿ(?M{I]\!-.<l8 ?u2w_CcΥAƨ6? _j @G65]ؿt/!gRTu/5MTmhTmhjC :3~POHO|fHO|f?t/!gRTu/5I @ @Q݇6? _jCcΥAƩ ?/$zl?>O3GWv3~P? :G64G64waAKQlԿ(?'$zl?>O3G$zl?>O3GWv3~P? :TmhTm(jBu/5G!gRTHO|f=S' lԿ(?AKS#?a?#?a?ڻCcΥAƨ6? _j=S'=S' lԿ(?[?k]$7)r8xJ @Ս7^klc)/@l@yOÏQ\(Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@T{U% ^?֤hJ( ( ('ߋ}M>QH(((ķjTyH'I=VD:~FsE0E4? q-iW:M>vSBkw4+=<KG (]pPXnh/w8˯I$LmDuMHZKme+H8$1l:t+?T/lVXmx9R(ckvrZ+# ڬ{&7Ǘf = TE;IiV:pe<$ڲ!AkEJYmCp/f6_2%ulseh[#[PzxmZa5dixdWt($Q#9^F;)ݷqt6p1-PX7Wim5ͭah#24nB NPAqj|5/Wy?i \lc*)>/j_/RφTO]Rφ>/j_/>/AsT"K> +P{>/j_/RφP{>/j_/RφP{>/j_/rφTw8K> (T"(쿕]Rφ>/j_/>]Rφ>/j_/>]Rφ>/j_/>/AsT"K> +P{>/j_/-kp[[Z4G*SXN;c<㱦1Q<\nThqQEq袊`QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEf[Ǽ_RTvT*?xZ (((eub#%@J0Z}, Z&9tԮme;W8`r͹0 5|GŴVP.Kc -&e1avٮpmַR۾Gq29Q|_#ͭ{N l*y/Xܲ:*a"۝sA|A⛛1jC,D!Ik6KrWYXiB[cAO^`]9i^)Ol,R[ZJeOJJ|Qk%WYt {rc=s ƶ5AH#ǀp=sMtY5!Â?ޝEn{i Hf>T1r鷎fi_ Xº{Zj $(Y|rx 'MU6? _jXQL96afi_ X+v V!gRTu/5Zfff@(ҿanu/5G!gRT}f{)_ٚW??3J]lԿ(?AKQ!afi_ X+v V!gRTu/5Gh.c ?4,[AKQlԿ(?Yff@(ҿanu/5G!gRT}f{)_ٚW??3J]lԿ(?AKQ!afi_ X+v V!gRTu/5Gh.c ?4,[AKQlԿ(?Yff@(ҿanu/5G!gRT}f{)_ٚW??3J]lԿ(?AKQ!afi_ X­4j5Ev^9ma08^AP:+K3~P񪷥~JIn6S5p񞕕\E)A\iJQ^i_)QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEo?IQǼ_RRjJ^?ր$(((}M>'ߋQE(((('4PFA00"φg-bIW%X.͜cjP[pH^cPHZWQK9̣#9/$ |KKⴺ#I=DWR+ $\2\6pyLma {VH`HMqT8ݣ[",XR xc/oZ/ƺ$Ӟ'kgbmU>hUV sX(s.uLMiZ7椅wr c)~nr)w?F<őY<)U#s`h~-֣sFf)*˵YT}Q.!m`䶇ɆDpm{i[xvyt##P]]H3jI.ֿq> <ХMuPʤ[dd k >Fgx፼s<9<)=:a_9/;@%-];p(UQ wUǪͬi6tfZTkxd*$ROU3G>-JHB@TX#ˌuVÿeHXćll+B$ɳwke\fBTvE#Ч1?*3OOmEo=4vLV҉%c)N1T8՛A2\CђRES28/j_/RφG @ @/ڥ K}_Կ_?GL=ͿHO|fHO|f>/j_/Rφ>Ga&mG64G6R|Ej|5/Qz?i3k=S'TmkRφ>/j_/f$zl?>O3G$zl?>O3Xj|5/QR|EW06#?a?#?aT"K> (釴 @ @V'ڥ K}_Կ_?GL=ͯHO|f=S'OK> (T"{I_ ? ?b_Կ_?G K}^LTmhTmkRφ>/j_/f$zl?>O3V4y/ZѱdrcGڥ K{EnkkkB3HJ`+pIlgeV9XhNQL((((((((((((((((( J=p*G/RT%Q@Q@Q@ i>_즼[V״5 v&4LyYK|vWj!-r+euD6rī`IחZι&as5hӘ|Xƚppz{= OkZ,sj6 wa_nbX;F6cE77Memr5"rpxF0J`is-<4>TWcudiՉW{0 >\Gɮ~%CkQBEVۊ|KRo_#|| ;S]+ֶ}61}ʎGe ;_[C.M5kXwԱ }Wz_ch{>\xNX7r,]"%໙Dmp#fVTӥWgϧ3ј1+t'bQi 7ĕU\tTUcv _3ڡʂ?")ayvկ^ŠkkF^H4XY}[q./{YV5[E$j6 `Ip =y[W=>n5mgPoݬB7i#1+t- AV,Şwus]B+8kSslb3| Co4AQ^{kwڄqB.-"db6Vi* $`oeGMf}>PX$}7QxݕI(&H:{m7Csw&Ta2˭M4QEHC}p^xZH+w \F$zm㩪ٚW??a}k;X +4,Gf@*GQ^.c ?4,Gԟ=Wfi_ X+v Q'mzٚW??3J]}IyEyf@(ҿaR}GQ^.c ?4,Gԟ=Wfi_ X+v Q'mzٚW??3J]}IyEyf@(ҿaR}GQ^.c ?4,Gԟ=Wfi_ X+v Q'mz0O࿳4,Vbve /0/E w 85c+ܿES(((((((((((((((((2=p*xʤQԕ?IEPEPEP$~s}i}M>QHsEcсE`zQE`zQEմW[N4mri8`APAAVGokQ DE `}QEPJ( jmn#$6km .VqYYE[Uc$I$I$O5qS.nc"0E;OźK6я7T@,\$33Y$$I$沤xfdpqʌAh3jkt[y$xmhكI-)E"RXdx"1=i4[\e Wq##u5W3~P_6BZ]yq ''\q?#?a9}݌e憎AKQlԿ(?7=S'Tmjڻ~_CcΥAƨ6? _j @ @݇u/5G!gRT ? ?]~_CcΥAƨ6? _j=S'=S' lԿ(?AKS#?a_HO|f?t/!gRTu/5MTmhTmhjC :3~POHO|fHO|f?t/!gRTu/5I @ @Q݇6? _jCcΥAƩ ?/$zl?>O3GWv3~P? :G64G64waAKQlԿ(?'$zl?>O3G$zl?>O3GWv3~P񪷥~JIn6S5pO=S'nחkwj-ghR_291#ЁL9}g} ( QE0 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (3-/*;J@?IQQEQEQE2O)$}0 (Q@Q@Q@Q@Q@Q@Q@ Wp@Ѵ,NasHc{ˤxM6Ykr,iG 䜒OEw}:4 ?E൰P1pdز N7nf<ջ^Oj5hcӵfY*NbXFLjYӲw?j7Zͳ6+m0Y+#G55_i`cٜ.K3+mC2R~Q$]mZ?+A-ʒJ$hQYOՊ(JX7Wim5ͭah#24nB NPAqj|5/Wy?i \le*)>/j_/RφTO]Rφ>/j_/>/AsT"K> +P{>/j_/RφP{>/j_/RφP{>/j_/rφTw8K> (T"(쿕]Rφ>/j_/>]Rφ>/j_/>]Rφ>/j_/>/AsT"K> +P{>/j_/-kp[[Z4G*SXN;c<㱦1Q<\nThqQEq袊`QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEf[Ǽ_RTvT*?xZ (((d~/SOIe4`QE ( ( ( ( ( ( ( (A^E&I46$Y qj%]޻rĒ~lQEGˮkcuX-clf+z k1}gkvt{KWܳ se`V`)7]GV `$V3*^Il SU4,]=5W[kk,}<Azdqu/5^,E(&sJܛ04,Gf@+w3~P? :~De3 3J]fi_ X· :3~P>D=/+v Q.c 6? _jCcΥAƨS04,Gf@+w3~P? :4CLҿaٚW??CcΥAƨ6? _je3 3J]fi_ X· :3~P>D=/+v Q.c 6? _jCcΥAƨS04,Gf@+w3~P? :4CLҿaٚW??CcΥAƨ6? _je3 3J]fi_ X· :3~P>D=/+v Q.c 6? _jCcΥAƨS04,Vbve /0/E w lԿ(?[?k]$7)r8xJʮ".4sb(4/E(((((((((((((((((̷xʤ/)T%G/@QEQEQE>_즟Li(@QEQEQEQEQEQEQEQխ"7pIa v#z5ғ2ɔdX K.s#ֱCjV\07V_4%J*lPi%ŀ$ߵ̍ohPK {v#":uFK#\ (q` si$V 6yLm$qA/ιuKݤ^YO1Y厣uv\I3#F R|Ez4Qo994mG64 ?b}_Կ_?Gڥ KLi3k=S'=S'_K> (\"{I ? ?b}_Կ_?Gڥ K}^LTmhTm+Rφ>/j_/f$zl?>O3K @'ڥ K}_Կ_?GL=ͯHO|fHO|f~/j_/rφ>Ga&mG64G65R|Ej|5/Qz?i3o=S'=S'OK> (T"{I_ ?/$zl?>O3Xj|5/QR|EW06#?a?#?aT"> (釴 @ @'ڥ K}_Կ_?GL=ͿHO|fi^_ݨcI|2`B39ϵK> *kw{=օ QH((((((((+'z?NhxȅGqCi]֢ojBgKMT˯BegMŚ1H- /usW߈b0[^+q4? sj }VQR1F\>װ^,cC+щ-xjf@+G(_sZ=+v Q.c >Wfi_ X+v Q'mzٚW??3J]}IyEyf@(ҿaR}GQ^.c ?4,Gԟ=Wfi_ X+v Q'mzٚW??3J]}IyEyf@(ҿaR}GQ^.c ?4,Gԟ=Wfi_ X+v Q'mzٚW??3J]}IyL?b/+v UYCf(- &3 H*]=D1rÍkXh7/E(((((((((((((((((̷xʤ/)T%G/@QEQEQE>_즟Li(@QEQEQEQEQEQEQEQE^TͶ=nF0dҬT7wpXZwu*om$9¢'@ב(UU R/uB [[.KIeW#:61݅ `񿆠[vYAq2Xm* 7ƿpMmrϷ 1]ǂ L2q_CcΥAƪk|Nv iw,p `@q`Tm+Xv1u/5G!gRTHO|f=S'j :3~Po$zl?>O3G$zl?>O3GWvlԿ(?AKRG64G64wa :3~POHO|fHO|b?t/!gRTu/5MTmi#?a?ڻпAKQlԿ(?7=S'=S'6? _jCcΥAƩ?#?a?#?a?ڻпAKQlԿ(?'$zl?>O3G$zl?>O1GWv3~P? :G64 ?]~_CcΥAƨ6? _j @ @݇u/5G!gRT ? ?]~_CcΥAƪޗ]*Y&xL szU?HO|fi^_ݨcI|2`B3"X}7(6/E(((((((((((((((((̷xʤ/)T%G/@QEQEQE>_즟Li(@QEQEQEQEQEQEQEQE Wšޟguu ) ѰQ䎵EN!i!յ]VV6qG*213;01Yw>եMR.L6Ws$LylLn`㞜b}oma-_1BQ Z(/Unk[/j_/oF*6TSw}_Կ_?Gڥ KW`ڥ K}_Կ_?]}v_ʃ.R|Ej|5/WE] }_Կ_?Gڥ KG_ }_Կ_?Gڥ KG_ }_Կ_?G KGe=pj|5/QR|EwQ*`ڥ K}_Կ_?]}u*`ڥ K}_Կ_?]}u*`ڥ K}_Կ_?]}v_ʃ.R|Ej|5/WE] }_Կ_?W[[^/(i1T9$vycL?bxN.6ܨI袊6/E(((((((((((((((((̷xʤ/)T%G/@QEQEQE>_즟Li(@QEQEQEQEQET<=p4yu;-,cnw>Q aHӱ_u-@/&R[kGVh^X1->.>MLl:/ͯ^Fڪzl:*KIr2"$zM=S~_)UW7VNs@H?LdkƁai7UX%lPMx:=T}P'~'h%ԯA ]-o-8-Oj үF-k_k>SvԶr^bpM0PdGLeҊ;y[)n{i Hf>T1r鷎fi_ Xº{Zj $(Y|rx 'MU6? _j*XQL96afi_ X+v V!gRTu/5Zfff@(ҿanu/5G!gRT}f{)_ٚW??3J]lԿ(?AKQ!afi_ X+v V!gRTu/5Gh.c ?4,[AKQlԿ(?Yff@(ҿanu/5G!gRT}f{)_ٚW??3J]lԿ(?AKQ!afi_ X+v V!gRTu/5Gh.c ?4,[AKQlԿ(?Yff@(ҿanu/5G!gRT}f{)_ٚW??3J]lԿ(?AKQ!afi_ X­4j5Ev^9ma08^AP:+K3~P񪷥~JIn6S5p񞕕\E)A\iJQ^i_)QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEo?IQǼ_RRjJ^?ր$(((}M>'ߋQE(((((*[:u֣v-!ioEPIUf|I4Ӧxmt{vX.H*XxIk{v fRع%d~=)*[h%--6s˳n b9'Jŏܚ]۴=]mPIoHLPj Pp.x61^j6Z",VW'SV~EOhl5[}q9$(<26Ж.mKt\M!N;K/ Y>x+mbz9 Mfd&x%A"*Ҥ/j_/J 2m'45&HO|f=S'OK> (T"&mG64G65R|Ek|5/Qz?i3o=S'=S'OK> (T"{I ? ?b}_Կ_?Gڥ K}^LTmi#?aT"K> (釴 @ @/ڥ K}_Կ_?GL=ͿHO|fHO|f>/j_/Rφ>Ga&mG64G6R|Ej|5/Qz?i3k=S'TmkRφ>/j_/f$zl?>O3G$zl?>O3Xj|5/QR|EW06#?a?#?aT"K> (釴 @Ս7^klc)/@l@y9R|E^mnu{[м9R qUF0m?ĸnV;(ӤES(((((((((((((((((2=p*xʤQԕ?IEPEPEP$}2O))QEQEQEQEQEQEQEyaıif+ 3L:7 +tF){uw6vS]0VwaH=4wKU=يM Kl9[y4WOugmyk%,xpRGE<}|-f}MQկ`X-$ ʆ.W[=6+v Wd0QRzٚW??3J]R}{o#(?ҿaٚW??O +4,Gf@(=+v Q.c >@3J]fi_ X>{o#(?ҿaٚW??O +4,Gf@(=+v Q.c >@3J]fi_ X>{o#(?ҿaٚW??O +4,Gf@(=קp_ٚW??z1M;ZDQ][tLfTz b}vEn_)QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE C!@?)z+lz)mymvZɢ6~m=?}z+}OQoj(g?G:± g-tl:± Oto Ƣ6~m=?}z+}OQoj(g?G:± Oto Ƣ6~m=?}z+}OQoj(g?G:± Z>g>OQRA2r:|+ӻO 0r5ɥEo2[H>a|{ (n _OtcQ@?o >m=?E.際q5_:߆+T=28ST|ƪkTdETr/_?jU/gOG,;0?|ƪ}bb#_ԿYwRaUn>WñS/_?jG,;0EXةu/5G#_Կ[U`pTr/_?jG*0{8v*9eAKQu/5V=;?|ƨrtQYwRaT9eAKU(_gOG,;0?|ƪ}bb#_ԿYwRaUn>WñS/_?jzn]vB{X s*eZSF:OtcQYred5-1.0~svn4374.orig-doc/projectplan/include/gantt0,2.jpg0000644000175000017500000000716011404471610023061 0ustar drazzibdrazzibJFIFHH AppleMark    % #!,!#'(***.1-)1%)*(  (((((((((((((((((((((((((((((((((((((((((((((((((((  }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzw!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz " ?F(EPEPEPEPEoѦmı|Iqf;r8b=iQK1 dp5f$0*G}*O˯[_,f.=< _SzH|M8098!AfW;֗\DId.r:p%B ȻP{t5x"8 f{ BT,JmTUKo pO+),g D6i3;#k(V(W"H%kct+X9$ HUfeޕ[-kUlf[60dry_aCW ",n.Eݣs@N] 0Gt? o4x.d졂;+1n|"!(~H$%oKe ec@`:~5=y>s}h[MӋ&%7jf@nWa"9,H$)dӎqKkQ62dQcX; owXSjwWZpLŭ1j3:~P à3s}VnckG:g%v}͢2I)6V=Zⴭ.K^}޳w B*Mp$RJHdߴlV)q~!p)QEQEQEQEQEQEQEQEQEQEQEQEShdY$Di3XZ}q64zDžMRi"1:]̜3נ8:s2CGH#X8=@jx},5ŞxXkL2>, '.'[o]&v@bw7nAo,sNyy,fhر0vvmlw,Ozץ +N3-K/Y?jߝjߝW_1{UwRK?oΏ?oΏ{UwRK?oΏ?oΏ{UwRK?oΏ?oΏ{UwRK#8~+3O=O={UwRK?oΏ?oΏ{UwRK?oΏ?oΏ{UwRK?oΏ?oΏ{UwRK?oΏ?oΏaWc[-K/G[?^~ѿ:>ѿ:>/aWcL½WEm9|vŻc%'O=O=fv5ԱŻc%'O=O=fv5ԱŻc%'O=O={UwRK?oΏ?oΏ{UwRK?oΏ?oΏ{UwRK${mg;OSFSF]o,nXzSFSFfv5ԱŻc%'O=O=fv5ԱŻc%'O=O=fv5ԱŻc%'O=O=fv= (, ( ( ( ( ( ( ( A dt((9$iRBzg*J(4dYq8P'*J((((((((((((((((ζ\'!zjuO?m!4n[r_`@-t-Kɒf8~lR4L@Y:}j'P:TVRy.1{؞mCbxg}Өj3Ò=bxg}?>;NkS7?|vO ϶u{Za؞mCbxg}Өg${ j?'ٶ1?OkS7?|vO ϶u{Za؞mCbxg}Өg${ j??|vE֧?9#o'P؞mC(?<3>ڇhj?QGHPۃϭ/'P:=OxrGO ϶?<3>ڇiQj3Ò=bxg}?>;NkS7?|vO ϶u{Za؞mCbxg}Өg${ j?mxmr?~ZSg${ j??|vE֧?9#o'P؞mC(?<3>ڇhj?QGH?>;G'P:=OxrGred5-1.0~svn4374.orig-doc/projectplan/include/gantt1,0.jpg0000644000175000017500000016422011404471610023061 0ustar drazzibdrazzibJFIFHH AppleMark    % #!,!#'(***.1-)1%)*(  (((((((((((((((((((((((((((((((((((((((((((((((((((  }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzw!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzX" ?xI/.|AX4̊ą 1ԎK ?4_Y:2Ɖ;K+1'?0Sҵ|aM-* L#eĂbBqN8JҸ}& 쵘K*{;h`9#{&_Sg5e[n"DG&Tw8E$ @ZН2{x~,֬x)hP0H ؊ >k֚'M$it&ʨ |(o cxG/TP"ϼ_v*j(ϼ_v*j(ϼ_v*j(ϼ_v*j(ϼ_v*j(ϼ_v*j(ϼ_v*j(ϼ_v*j(ϼ_v*j(ϼ_v*j(ϼ_v*j(ϼ_v*j(ϼ_v*j(ϼ_v*j(ϼ_v*j(ϼ_v*j(ϼ_v*j(ϼ_v*j(ϼ_v*j(ϼ_v*j(FI"|~m>_M]C55gjvGc+$1 `zV|+EJt?W73~Ok' 3d4=?lf}1LSsENTnc7_Y_xxi']Nf~hT?9v5)?T\fJt?W7GG<4 熙=zoJt?W73~Ok+ 3d4xxi'P`LSs?)?T\f?6O3G##ghT?9v5)?T\fJt?W7GG<4 =?lfeCcW3~OhLSs{L?xxi'P`Nҵ=?su_J_Jt?W7+iR=?lfeCc[3~OhLSs{L?xxi'P`LSs?)?T\f?6O3K熙=z_Jt?W73~Ok' 3d4=?lfeCc[3~OhLSs{L?'##ghT?9v5)?T\fNTy\1\+ 3d4"ALl>{*;o3G%:gj+O##gi?6O3GS N?Z 4S֩d=?lfGG<4 0skS֩o3Y_xxi'{L?ʇ=NƷ%:gj+ N?Z 5熙??6O3GS N?Z 4S֩d=?lf 3d4{*;8)+u.n3~Ok!"0i?'{L?ʇ=NƷ%:gj+ N?Z 5熙OGG<4 0skS֩o3Y?xxi' 3d4{*;o3G%:gj+O##gi?6O3GS N?Z 4S֩d=?lfGG<4 0skS֩o3Y_xxi'{c]0stZ5Iiwqhden!5I?RI9Y%cρMD2aONq]MrԊFwWfv#>V ]& W7P3k{LƏJ;A3#ѿ:>ѿ:~scÿ?2?C{L(>}~t}~t}K=Wi _=d\ڟz7Gڟz7GԼg%~wgG5~t}~t}K=Wi _=d\ڟz7Gڟz7GԼg%~wgG5~t}~t}K=Wi _=d\ڟz7Gڟz7GԼHW?f6|+ kSFSF{cÿ?2?{Lƹ??oΏ?oΏy:J;A3#?+ kSFSF{cÿ?2?{Lƹ??oΏ?oΏy:J;A3#?+ kSFSF{cÿ?2??ѿ:>?+ hÿ?2?OO=O=^a펳{LƏJ;A3#ѿ:>ѿ:>?+ hÿ?2?OO=O=^a펳{LƏJ;A3#ѿ:>ѿ:>?+ hÿ?2?OO=O=^a펦oxxka%OGWi'/0Y _=dG%~rjߝjߝRluwgG4Wi'/0Y _=dG%~rjߝjߝRluwgG4Wi'/0Y _=dJ)Utbp%Zຕv,?RlwvQD+ƈYݔ> Vk,L+׸rrzc ǖN=oB5oB4?п .?h_rϰXе/t}G'G~_y;?B4/w 9M:Da$'&rXе/tO##r{asS#B70\>aBԿ# ng?};?B4/w 9G!3-K9?`j_ƨsS#B70\>aBԿ# jg?};?B4/w 9G!3-K9?`j_sS#B70\>aBԿ# ng?};en\{Jw!/:~qܙn-K9?Ú?vh_rB4/w 9\g,?Zr>aBԿ#Q??9gFaBԿ#??9gFaBԿ#??9gFaBԿ#Q??9gFOr=4>V#XQ`( p5?kF ĶUȇ89k ǖN'D]z?!\t?!\HŠ3;GƙAu?ߩ˹G!SWliSA``k?57rEygƗAu?cK:9wlScK:zoOhG^YzoOh?=/}N]#,=7liS>.tWliS?4MSp_i^s.}㴿gv˸{dzgv3;G==N/;GƗAu?rEygƗAu?cK:9wlScK:zoOhG$ yƙAu??{/?u?rEygƗAu?cK:9wlScK:zoOhG^YzoOh?=7}N]#,?=7liS>.tWliS?4MSp Td`벐{mOi4MSp:+?4Mgv˸{dzgv3;G==N/;GƗAu?rEygƗAu?cK:9wlScK:zoOhG:m ~w%ċ)}rkBdԔO4#2Ґ 11ǯs]-rM8ɦkutSտ/ տ/ FvWv?5o߻o3]_TewUhjvfoUP]4}R{hhjvf [JAwWv?5o߻o3G*y\Amhտ;~T'{Ep_oݷCV4}R{hhjvf [JAwCs~۷#/AmhO ;+տ;~oݷS=N࿴5o߻o3GAmhO ;dz/CV4U$r?wmhO ;+տ;~oݷS=N࿴5o߻o3GAmhO ;+տ;~oݷS=N࿴5o߻o3GAmhO ;`\Amhտ;~T'M 5ڰ^p*GTs(Olg]]It`؏"m(܃T}nW tJsXO?M]]E .+wxv:E<;@3 ?t+ w~];=n"qxw:g ?zw O?G9Sÿ??OL8°?!N|~Huӿ_'Vo)QX?O?G$:/+wxv7t(Sÿ??H5ӿ_' w~<;c¾X`??SOSÿ??] [zvH<$O?G9Sÿ??OL8°?!N|~Huӿ_'Vo)QX?O?G$:/+wxv7t(Sÿ??H5ӿ_' w~<;xw:g)V$:/Cޝ?·pcOL8˜hCr}w~)@ޏa[sñ)QX?O?G$:/+wxv7t(Sÿ??H5ӿ_' w~<;xw:g)V$:/Cޝ?·pcOL8E<;@3 ];?!N|~a[sñG"q`Cޝ?O?G9ۛ¾9S.q})xw:g϶7zvxIkO?G9Sÿ??OL8°!N|~w~<;xw:g)V$:/ ?zw { ÞE<;@3 ?t+w~];=n"qxw:g ?zw Aޝ?·pc{OL8E<;@3+w~?!ׇ?i[H|+wxv6|/aŨĎ^ hC9fDڊP׌s[ORhx#v0GJծis>mckhSտ/ տ/ @׿wnK5OXO1G%?a'S?_3s;^ 㴋 d~%?a'DE_ ?->Ov@oh׿wlY*?,?a ?->?v@oh׿wlY*?,?a ?->?v@oh׿wlY*?,?a ?->?v@oh׿wlY*?,?a ?->?v@oh׿wlY*?,?a ?->7~7y?/v@okXxT[.Ð?$K5OXO1G*aO?;[j bK5OXO1G*aO?;[j bK5OXO1G*aO?;[j bK5OXO1G*aO?;[j bK5OXO1G*aOC렀tNlY*kxTb.9z=#WZ}̟{7TU $Y*=#WZ}{7TU $Y*=#WZ}{7TU $Y*=#WZ}{7TU $Y*=#WZ}{7TU $Y*=#WZ}fRA?㴿ngV`73'Y*=#WZ}{7TU $Y*=#WZ}{7TU $Y*=#WZ}{7TU $Y*=#WZ}{7TU $Y*=#WZ}{7rOoV%?a'Lrt"=P|a"kU|ÖsK\^ u{Y} *(|gڬQT+&dpFێU~^lrn[QZoB5oB0j.(?&}?1_j?ݷSC_ϸv"\NFF{gOWS Q6?T蚎@=_Hw9>ڧ ?<j.+ vzLWmǨ9!j.(?&}?1_j?ݷ@s?ϸv"LWmǨ vzoW_ϸv">ڧ ??1_j?ݷ&}=_Hw9>ڧ ?<j.+ vzLWmǨ9!>q}O\#7&ޝ Qޯ$;q@SE}O\bo=G&+@MG{zr}O\y?]qWQ Q5Q rC?]qQ;Tu]G&+@MGbo=G/;TuGq@SEu5Q Qޯ$;q@SE''Ν%bo=Mod#E~SzmG3;TuGq@SEu5Q Qޯ$;q@SE}O\bo=G&+@MG{zr}O\y?]qWQ Q5Q rC?]qQ;Tu]G&+@MGbo=G/;TuGq@SEu5Q Qޯ$; ;S:"ϸv"i<^6Q9 mǩ5Q rC?]qQ;Tu]G&+@MGbo=G/;TuGq@SEu5Q Qޯ$;q@SE}O\bo=G&+@MG{zr}O\y?]qWQ Q5Q rC?]qQ\M?@+ vzLWmǨ9!ܛ66Zt^/=Lg>^P)# 5Yz-Fͳ9 8]{֥ymɹntЧ>_BI>_BԌ_C_ Y{Hm#?n#eOfg!^z]l?V&G n6/i+)x!@?-t{\G9iL?U՟ RjǫS#?nK[=#ejǩ5gէ ~۟7G%G nZ3?5gjǫO#?nK[=#fjǩ?5gթ ۟7G&G nZ3?5gԟ{Hm#?nk-?C:r6|sM{.|oA>Ν ~۟7GyC_ Y{Hm#?nk-?陟{OC_ Yjaz ۟7GyC_ Y'!^z?/=o[sHm<Of_!^zWV/=Z-t_zqw33WV/=MoTlB緵j_z_Id#6OKn}3<Ofw!^zWV/=Zi-tazqw33WV/=I~A?OK[?/=o[s?r~A??U՟ V%G n-t{\G9iL?U՟ Q~A??K[?/=o[s?r~A??U՟ V&G ni-t{\G9iLꨌ6gh'ǩ5gե/}w%G nZ25gԿ{Hm#?nk-?陟{?5gէ ~۟7G%G nZ3?5gԟ{Hm #?nk-?陟{OC_ Yཿj_z ~۟7Gy̿C_ Y?=Z-thev}:@Z)nR-f;9Ԍl) }5Um>xmVx$YbX8 ՚朜5OV|+V|+'Σέ,nXz>1|<wRK"{&Fsg?gZ_>GG[_nXz?Ա}i#dwumŻc%wRK=byյ-K/G֗0OQV[?^,Z_>/G[_nXz?Ա}i#dwukWkȳ,Z_>/G[_nXz?Ա}i#duumŻc%wRK=byյ-K/G֗0O{V[?^,Z_>/G[_nXzc½ܘg Z_>GG[_nXz?Ա}i#duumŻc%wRK=byյ-K/G֗0OQV[?^,Z_>/G[_nXz?Ա}i#duuk }i>Ϛ[?^/asέ,nXz>}_::ԱŻc%F1|<wRKK{'k-K/G[?^/as7@$G _+v9K{'ܗJ)[iKaTp}s޺ZOˌo|c55y4+oB5oB3~ѿ:>ѿ:п .?h_rOQO~t}~u\l^ $c %A?0}jgsSFSF#B70\>GO~t}~u\?п .?Z~ѿ:>ѿ:п .?h_rQSsjߝjߝt_h_rB4/w 9G֨{)9ߵ?oΏ?oκ/B4/w 9G!T{?=ڟz7Gڟz7]N7x .=; xQ=}wO=O= xQF;EFGO~t}~u\?п .?Z~ѿ:>ѿ:п .?5@!aqZѿ:>ѿ:п .?h_rQSsjߝjߝt_h_rB4/w 9G֨{)9ߵ?oΏ?oκ/B4/w 9G!T{?=ڟz7Gڟz7]! xQ=}wO=O= xQF;A/t5Cw\w!T{?=ڟz7Gڟz7]! xQ=}wO=O= xQF;EFGO~tָ.])r]'!#Borѯ?P__Z܇Ү3X;^ UˁviEmjAlʈ@cY:rh銲OV|+V|+ RO7G,?Zr:+oL}yg,?ZrAc=uT}m({Xе/t}G'SbY nXе/UtQWs>aBԿ# jN>=yg,?Zr>aBԿ#שG], RO7G,?Zr:(P+aFt`j_ƫuWs>aBԿ# jN>=yg,?Zr>aBԿ#שG], RO7G,?Zr:(P+`j_ RO5^E[w<-K9?'tHu>_CG]/ RO7G,?Zr:(P+`j_ RO7^E[w<-K9?`j_ƫoCخ}G'-K9?z}m({ϰXе/t}G'SbVlt2|7(n-K9?zdt*}[w<-K9?`j_ƫoCخ}G'-K9?z}m({ϰXе/t}G'SbY nXе/utQWs>aBԿ#}O uQWs~֍gm!PpNsYYNoH_]q" q`'ܚЮZRh*=[AnM[AnfN? Oj?3㕩^AOSV/o=^S;9HQNV!z?^z @8o=GrTf?Q;9Z{? ?5i{\?%N^? Oj?3㕩^AOSV/o=GrTe?Q;9Z{? ?5i{\?%N^? Oj?3㕩^AOSV/o=GrTe?Q;9Z{? ?5i{\?%N^sG>w?r5 7ڴmN/Tէ Qp;{Oj?3m?V!z?^zBO ZཿaS;9F? jjǨ/Tէ Qp;{Oj?3m?V!z?^zBO ZཿaS;9F? jjǨ/Tէ Qp;{Oj?3㔛sG3㕫^AOuE*?>c?ڏk0QiGw?r? ?5ijǨ~J56gs+SSV/o=G!z?^zk0QiGw?r? ?5ijǨ~J56gs+SSV/o=G!z?^zk0QiGw?r? ?5ijǨ~J7ziGw?r#7ա {w!z?^zk0QiGw?r? ?5ijǨ~J56gs+SSV/o=G!z?^zk0QiGw?r? ?5ijǨ~J56gs+SSV/o=G!z?^zk0Q >\V!z?^zB3kvw`*=ÒcWWs'5B`3*8p85YX 09ym,+Fv:t)ЅsujЅsu Rտ;~oݷOL8E<;@3 1sտ;~"ꪡF0?wmkSÿ??C_L$8>{j?$Amhտ;~txw:g)Q'soݷCV5)QGrOhjvf [OG"qڏ~A>1v?5o߻o3]?"qxw:g{j?$Amhտ;~txw:g)Q'ror[v$c]տ;~t¾X`??SOSÿ??QO9'?5o߻o3GAmkSÿ??OL8mG? sտ;~oݷOL8E<;@3 =}cCV4hjvfE<;@3 ?t(I9 [vt(Sÿ??QO9'?5o߻o3HoRA:#vfE<;@3 cWsQO9'5o߻o3GAmkSÿ??OL8mG? sտ;~oݷOL8E<;@3 =}cCV4hjvfE<;@3 ?t(I9 [vt(Sÿ??QO9'?5o߻o3GAmkSÿ??OL8mG? skUoF/Amk¾9S.q})xw:g{j?$Amhտ;~txw:g)Q'soݷCV5)QGrOhjvf [OG"qڏ~A>1v?5o߻o3]?"qxw:g{j?$Amhտ;~txw:g)韅GrOW7WW0j uu%тbqjv@ohBէ (x~j{S԰iZ/&xt,݀{0 ҵk\^ u{Y} *(|gگ.|ϗc7=[AnM[An ?,?a ?j b"? ꟕ7~VjoSV0SSZ"]b"? ꟕ5cy j~aџj bK5OXO1ROTOT_ ޑY*?,?a ?KD?+5G!oTv_j bK5OXO1ROQD?+5Eݿ0%?a'SV0TGASTOQ|7o?zE f@I(TU $/!oT5G!oT5Eݿ0V] hIL=j b<oS^B#ީ[/H,?a ?j b"? ꟕ7~Vj~a/K5OXO1G%?a'zoƨ"? ꟕnߘ~SV0Q f@I*_B#ީjB#ީj~a/K5OXO1G%?a'zoƨ"? ꟕnߘ~SV0S[Z?v)$#x{GASTTj??o闵v?,?a ?j b"? ꟕ7~Vj~a/K5OXO1G%?a'zK?zK/H,?a ?j b"? ꟕ7~Vj~a/K5OXO1G%?a'zoƨ"? ꟕnߘ~SV0Q f@I*_B#ީ[?zoƨ jvp#?w%?a'6ayjD?_Q|7o?zE f@I(TU $/!oTGAST_ ޑY*?,?a ?KD?+5G!oTv_j bK5OXO1ROQD?+5Eݿ0%?a'SV0TGAS%GAS%v_j bK5OXO1ROQD}O>Q|7o?z_ޫ6owGo%Ɍ2+eV@A*ڶ+eZWi?[d "U?㌂;WI\T.Ʊ)ЅsujЅsu.bo=G&+@MGoi4oi5}N'gc Q6?T蚎@??>1_j?ݷ&}㿷?>1_j?ݷ&}㿷?>1_j?ݷ&}㿷?>1_j?ݷ&}㿷?>1_j?ݷ&}㿷?>NjQ}omN vz36Ə36Ə=;LWmǨ vz36Ə36Ə=;LWmǨ vz36Ə36Ə=;LWmǨ vz36Ə36Ə=;LWmǨ vz36Ə36Ə=;LWmǩ̄hr~{oCM?#ih?#ih3 vzLWmǫ?#ih?#ih3 vzLWmǫ?#ih?#ih3 vzLWmǫ?#ih?#ih3 vzLWmǫ?#ih?#ih3 vzLWmǫ?#ih?#ih3e.z Qqgm?gm?S{fv?5Q Qqgm?gm?S{fv?5Q Qqgm?gm?S{fv?5Q Qqgm?gm?S{fv?5Q Qqgm?gm?S{fv?5Q @w ۷%$36ƗwM<-eROS{fz>{oإմ܃AU|oqqqg7gU ۟7MJĊ~PKnruuRvݝW%G n-uy}J={fu_-t_z+{Q(a_z ~۟7\GGԣٝW&G ni-uy}J={vu_-t_z+QQ(ai>c7~ ۟gNHmWΣQ3Hm#?n_::G=:L4[?0=o[s{/=o[sHmWΣΣQ3Hm#?n_;ޏ:GlΫ#?n.K!o[sruuR{fu_i-taz+QQ(a_z ~۟7\GGԣ݇gU ~۟7G%G nrwuRvٝW%G n-uy}J>aaz ۟7\GGԣ݇gQ/}w%G nruuRvٝW%G n-uy}J={fu_-t_z+QQ(gU ۟7G&G nruuRvݝW%G n-uy}J={fu_-thev}:@rw!79'QlO+U Xfdt9V5fm*`my-0 PHÑzkΜydt\>_BI>_BԁG"qkQU.ʻ?xw:g|+鄕Ҷip]E<;@3 ?t+Z99Wc'OL8E<;@3 ֢ywUSÿ??OL8µ]Õv2t(Sÿ??j(p]E<;@3 ?t+Z99WcxWk3G}xw:g??>ywUSÿ??OL8µ]Õv2t(Sÿ??j(p]E<;@3 ?t+Z99Wc'OL8E<;@3 ֢ywUSÿ???|<?霷?qj٦I{99Wc3OL8E<;@3 ֢ywUSÿ??OL8µ]Õv2t(Sÿ??j(p]E<;@3 ?t+Z99Wc'OL8E<;@3 ֢ywUƛ¾9S.q})xw:g7??ʟG<*d)QZQ.ʻ?xw:g)Vs˸rO"qxw:gEG"qkQG<*d)R>t-5X,~E "?#STV?jZoB5oBb"];?!N|~ ? nh7?r}_cS ?zw PN ?k+l^ Z$cJcq(rfAޝ?kO?Zh7?rBOy9G+s+w~?!N|~ ? nh7?riW-NO$:/ ?zw V_BI>_B SV0Q f@I+?ϸv"o&tj b*$;TuH.'##N=(釴Y*?,?a ?s}O\y?]qQz?i3TU $Y*j.(?gA f@I(TU $?]qQ;TuGL=΃SV0Q f@I+?ϸv"{I%?a'SV0W?;TuGq@SEW07@忲9cBOaNTU $}|;S)|j.(釴Y*?,?a ?s}O\y?]qQz?i3TU $Y*j.(?gA f@I(TU $?]qQ;TuGL=΃SV0Q f@I+?ϸv"{I%?a'F*>SIG>ڧ ?ON1;SK(釴Y*?,?a ?s}O\y?]qQz?i3TU $Y*j.(?gA f@I(TU $?]qQ;TuGL=΃SV0Q f@I+?ϸv"{I%?a'SV0W?;TuGq@SEW07Z/]b f@I+7j`OR?]qQz?i3TU $Y*j.(?gA f@I(TU $?]qQ;TuGL=΃SV0Q f@I+?ϸv"{I%?a'SV0W?;TuGq@SEW0:K5OXO1G%6Dz.?LEs}O\y'u2{P >Ga&wz`."VLq{;+F|#aseM%s4sU: ;[%&ԧ>_BI>_BԌ Q5WFF׭8ٝ&+@MG^5Sj9mǫ?#ih?#ih3 vzLWmǫ?#ih?#ih3 vzLWmǫ?#ih?#ih3 vzLWmǫ?#ih?#ih3 vzLWmǫ?#ih?#ih3 vzLWmǫ?#ih?#ih3/FoMG鷽;&}㿷?>1_j?ݷ&}㿷?>1_j?ݷ&}㿷?>1_j?ݷ&}㿷?>1_j?ݷ&}㿷?>1_j?ݷ2?)6C{L_{L_pl&}?1_j?ݷ;{L_{L_pl&}?1_j?ݷ;{L_{L_pl&}?1_j?ݷ;{L_{L_pl&}?1_j?ݷ;{L_{L_pl&}?1_j?ݷ;{L_{L_plξOhH#w&+@MGoi4oi4}Nbo=G&+@MGoi4oi4}Nbo=G&+@MGoi4oi4}Nbo=G&+@MGoi4oi4}Nbo=G&+@MGoi4oi4}Nbo=G&H>܃nߠ 㿷_4{I?@4}NEbVoGr#<ywWk]zm?ki'e]Ĕ-*d:z?!\t?!\H-t_z+QW(ٝW&G n6/i+)x!@?-uy}J={vu_-t_z+QQ(a_z ~۟7\GGԣ݇gU ~۟7G%G nruuR{fu_i-taz+QQ(a_z ~۟7\GGԣ݇gP<]*n};#?n_;ޏ:GlΫ#?nK[|<>00=o[sHmWΣΣQ۳Hm#?n_::GlΫ#?nK[|z<>=:K[kI,}mϡuy}J>aaz ۟7\GGԣ݇gU ~۟7G%G nruuRvٝW%G n-uy}J={fu_-t_z+QQ(gU ۟7G&G nruuRvݝD.Z'QJ?[s-uy}J={fu_-t_z+{Q(a_z ~۟7\GGԣٝW&G ni-uy}J={vu_-t_z+QQ(a_z|a{>p}I_;ސmQ(g}ͪ,R32:\ׁw6q0Rݼ $BtNѿ:/g7]o,2/WRng;Fs|gڟz7Gڟz7G_0-K/Y?jߝjߝU0-K/Y?jߝjߝU0-K/Y?jߝjߝU0-K/Y?jߝjߝUڮƷ[?^,d~t}~t}V_ڮƘ{81OwRKOڟz7Gڟz7Ge=kŻc%wRKOڟz7Gڟz7Ge=kŻc%wRKOڟz7Gڟz7G_0-K/Y?jߝjߝU0-K/Y?jߝjߝU0?+ɏFq}gڟz7Gڟz7Ge=kŻc%wRKOڟz7Gڟz7G_0-K/Y?jߝjߝU0-K/Y?jߝjߝU0-K/Y?jߝjߝU0-K/Y?jߝjߝUڮƜ|vcŻc%'O=O=fv5ԱŻc%'O=O=fv5ԱŻc%'O=O=fv5ԱŻc%'O=O={UwRK?oΏ?oΏ{UwRKӣ/~ϜV?ڟz7MkUز }V_ڮ}i'71[JDbx{W {.1ںZY81wW)ЅsujЅsu h\?п .?rٚW??3J] :B4/w 9M:Da$'&r/+v Q.c =_\S#B70\?4,Gf@(_1N xQFw?r5=j}A!֩jA!֩jgs(QqC$??_Q$??_V? Oj?3{:.j}A!֩jA!֩jgs(Qp j/ƨ j/ƫ iGw?r5=j}A!֩jY֧{V&? &/QLοA!֩jA!֩jgs(QqsSn OT OU;9F? ο5> kT5G kT5X[Oj?3m?Q8sSn OT OU;9F? οA!֩jA!֩jgs(QqsSmhR6ajyaƩCAS%aH=Oj?3{:CAS%CAS%am?Q;9GO$??_Q$??_V? Oj?3{:>hv7ZK?ZKQiGw?rg_O$??_Q$??_V? Oj?3{:CAS%[3"gs(})Fpq#{:>j}Hl11;ǒO$+t㹓͚iW @8dݯ:iM=Θօ=[AnM[AnjǨ/Tէ UO [ve|_v-jǩQ[jd[CV4ݷد_?uع^AOSV/o=U?5o߻o3GAmi ?5ijǪAmhտ;~+b_ b!z?^zBO ZཿTտ;~oݷد_?uط^AOSV/o=U?5o߻o3GAmh+v-jǨ/Tէ UO [vv2AőSy_N9nBO ZཿS~۷#/Ami[ ?5ijǪAmhտ;~2AſBO Zཿ{v?5o߻o3E_̿~oSV/o=G!z?^zhjvf [Ӷ+v-jǨ/Tէ UO [vV2AſBO Zཿ5)Qi= [CV4U$r?wmh+v.jǨ/Tէ UO [v-e|]{? ?5iSCV4hjvf_̿~oSV/o=G!z?^zhjvf [Ҷ+v-jǨ/Tէ UO [v-e|]{? ?5iSCV4hjvfb_ b7TDfڴ;A8o=N/Tէ U6YJv`hjvf_̿~oSV/o=G!z?^zhjvf [Ҷ+v-jǨ/Tէ UO [v-e|]{? ?5iSCV4hjvfb_ b!z?^zBO ZཿTտ;~oݷlW/[/Tէ QVxmnl2U?5o߻o3G9ڊ܏E+b_ cд4qZ5J]JO* y)u =WS5^tR|۝Q)ЅsujЅsu TgL?x'!N|~Huӿ_'Srڙ#>#:gIi~"u !0FO3V?!N|~]'Eψ玙??6O3SAޝ?kO?G6'-L3d43?lf];OHuӿ_'Cψ玙??2O3SCޝ?O?G6'-L3$43?df];?!N|~lOZ#>#:gIhgL?O ?zw Aޝ?؟ 2߈t̀~I}?6O3Ro롋}NDŽޗw~3?lfF|Gc'珵O ?zw _IRnIG6'-L3$43?df];?!N|~lOZ#>#:gIhgL?O ?zw Aޝ?؟ 2F|G#:ghgL?M ?zw Cޝ?؟ 2F|GAjev߈Kt3?lfm]u*nӿ N|~lOZ#>#:ghgL?O ?zw O?G6'-L3d43?df];?!N|~lOZ#>#:gIhgL?O ?zw Cޝ?؟ 2F|GAjdx'<1}#c:w~?!ׇ?i[H|͉ S77 #N0LϺ{E[U0%d̎7hqʷӸk͛nMs6KB W7]& W7Rq@SE}O\bo=G&+@MG{zrC?]qR ӵ21_j?ݷ𑪝Q}o=G3;TuGq@SEu5Q Qޯ$;q@SE}O\bo=G&+@MG{zr}O\y?]qWQ Q5Q rC?]qQ;Tu]G&+@MGbo=G/;TuGq@SEu5Q Qޯ$;'?<:"ϸv"a$fp@~{ӿ1_j?ݷ@s?ϸv"LWmǨ vzoW_ϸv">ڧ ??1_j?ݷ&}=_Hw9>ڧ ?<j.+ vzLWmǨ9!j.(?&}?1_j?ݷ@s?Dӵ>zĺ"LWmǩ̄hr~{oCM9!|j.(?&}?1_j?ݷ@s?ϸv"LWmǨ vzoW_ϸv">ڧ ??1_j?ݷ&}=_Hw9>ڧ ?<j.+ vzLWmǨ9!j.(?&}?1_j?ݷ@s7j`OR?]qWM'4]G$;&}=_Hw9>ڧ ?<j.+ vzLWmǨ9!j.(?&}?1_j?ݷ@s?ϸv"LWmǨ vzoW_ϸv">ڧ ??1_j?ݷ&}=_Hw9>ڧ ?<麙=|(u5Q @w ۷%$oWɼ#aseM%s4sU: ;[KHlRMHA|ǂ *ynRmuE$z?!\t?!\HAOGAO]%G n-u}f__#ٯ8o36Ə36ƻL4[l^.V$SB[s̿AGAOGAO]%G n-t}f__ k{L_{L_#?nK[>/{5 FFs ~۟7G%G nY=c?#ih?#ikHm #?n}1oi4oi5_z ~۟7Ge>fῷ?Nj1?@mϿ3_zϷ|ٯ8o36Ə36ƻK[?/=o[s̿A7AOGAO]&G ni-t}f__ k{L_{L_#?nK[>/{5 FFs ~۟7G%G nY=c?#ih?#ikHmGlgGe>f??0=o[sHm2o_pgm?gm?w?-t_zϷ|ٯ8o36Ə36ƻK[?/=o[s̿A7AOGAO]%G n-t}f__ k{L_{L_ #?nL4[>/{5 FFo/}w%G nY=c?#ih?#ikHm#?n}1oi4oi5_z ~۟7Ge>fῷ?0=o[sHm2o_pgm?gm?w?-t_zϷ|ٯ8o36ƗwM<-eROw-theϧ\(Rc2o_C{ۋh~t$N0ʻU9([stU[O+U Xfdt9V5fM*=[AnM[An ::ԱŻc%Fr'k-K/Lќ4}i#duumŻc%wRK=byյ-K/G֗0OQV[?^,Z_>/G[_nXz?Ա}i#duumŻc%wRK=byծ?^"6Ǿ;Ա}i#duumŻc%wRK=byյ-K/G֗0OQV[?^,Z_>/G[_nXz?Ա}i#duumŻc% rcng4}i#duumŻc%wRK=byյ-K/G֗0O{V[?^,Z_>/G[_nXz?Ա}i#duumŻc%wRK=byկ/+)3>inXz>}_;ޏ:ԱŻc%F1|<wRKK{'k-K/G[?^/asΣέ,nXz>}_;ސmV[?^+1|F|ڏ/ar_m*`my-0 PHÑzjLy?.1x\r:Sտ/ տ/ @SFSF#B70\>Goe>;EF;EFGO~t}~u\?п .?Z~ѿ:>ѿ:п .?h_rQSsjߝjߝt:(?B4/w 9G֨{)9ߵ?oΏ?oκ/B4/w 9G!T{?=ڟz7Gڟz7]! xQ=}wO=O= xQF;EFGO~t}~u\?п .?Z~ѿ:>ѿ:п .?h_rQSsjߝjߝt_h_rB4/w 9G֨{)9ߵ?oΏ?oκ/B4/w 9G!T{?=ڟz7Gڟz7] 'a B?aq)h_rQSsjߝjߝt_h_rB4/w 9G֨{)9ߵ?oΏ?oκ/B4/w 9G!T{?=ڟz7Gڟz7]! xQ=}wO=O= xQF;Zຕv,?th_r F A~i}jgr[JDbx{W {.1ںZkQ*" f˚M*=[AnM[An +v Q.c ZK?ZKDS9+v Q.c ZKl~V:֧je3ҿaٚW??H5H54CL4,Gf@+ j/ƨ j/ƨS9+v Q.c ZK?ZK>D=g3J]fi_ XºoA!֩jA!֩je3ҿaٚW??H5H54CL4,Gf@+凿2 OT}f{)f@(ҿatCAS%CAS%Yg3.c ?4,]7 kT5G kT5Ghfi_ X+v WM$??_Q$??_Q!s?ٚW??3J] OT OT}f{)f@(ҿatCAS%5 O8?=24CL4,Gf@+ j/ƨ j/ƨS9+v Q.c ZK?ZK>D=g3J]fi_ XºoA!֩jA!֩je3ҿaٚW??H5H54CL4,Gf@+ j/ƨ j/ƨS9+v Q.c $4)0ֵD=g3J]fi_ XºoA!֩jA!֩je3ҿaٚ_m2Oۢ d~ OT oZΦø?>D= }6$y顎W9f]ܞ+yX ikŒ'OrzԤ:Ve=[AnM[AnfN? Oj?3㕩^AOSV/o=^S;9HQNV!z?^z @8o=GrTf?Q;9Z{? ?5i{\?%N^? Oj?3㕩^AOSV/o=GrTe?Q;9Z{? ?5i{\?%N^? Oj?3㕩^AOSV/o=GrTe?Q;9Z{? ?5i{\?%N^sG>w?r5 7ڴmN/Tէ Qp;{Oj?3m?V!z?^zBO ZཿaS;9F? jjǨ/Tէ Qp;{Oj?3m?V!z?^zBO ZཿaS;9F? jjǨ/Tէ Qp;{Oj?3㔛sG3㕫^AOuE*?>c?ڏk0QiGw?r? ?5ijǨ~J56gs+SSV/o=G!z?^zk0QiGw?r? ?5ijǨ~J56gs+SSV/o=G!z?^zk0QiGw?r? ?5ijǨ~J7ziGw?r#7ա {w!z?^zk0QiGw?r? ?5ijǨ~J56gs+SSV/o=G!z?^zk0QiGw?r? ?5ijǨ~J56gs+SSV/o=G!z?^zk0Q >\V!z?^zB3kvw`*=ÒcWWs'5B`3*8p85YX 09ym,+Fv:t)ЅsujЅsu Rտ;~oݷ3?lfF|G#:ghgL?~oAmhտ;~;3d43?dfn?y7CV4hjvfψ玙??2O3G7tv?5o߻o3NgL?x'y~۷#/AmiGEdO3Kψ玙?ٻ [vw#>#:ghgL?~oAmhտ;~;3$43?dfn?y7CV4hjvfψ玙??6O3G7tv?5o߻o3NgL?x'yտ;~!I#>#:giDALd>wA1?5o߻o3GAmix'3$4wA1oݷCV4F|G#:ghgL?~oAmhտ;~;3d43?dfn?y7CV4hjvfψ玙??2O3G7t)S_ [ҷDXæ` f3d4wA1oݷCV4F|G#:ghgL?~oAmhտ;~;3$43?dfn?y7CV4hjvfψ玙??6O3G7tv?uqosV~ D)x'<1}#c:?ٻxcRR vcf@UqlOi)giH2a@:ֵys|Q)ЅsujЅsu#"];?!N|~^ǰr$:/W_QB;c<$J=>r$/ ?zw B=>.Huӿ_'];EŸ`r$:/ ?zw F=>r$:/ ?zw B=>r$/ ?zw B=>.t1o Cޝ?QaOs˹{w~];EŸa˹w~];EŸas˹ w~];EŸ`r$:/Cޝ?QaOs˹{w~)@ީQG|_];?!N|~QG\_];? N|~QG9ܿ ?zw O?ThS^];?!N|~G|_];?!N|~QG\]m]u*nӿ N|~QG9ܿ ?zw O?ThS^];?!N|~G|_];?!N|~QG\_];? N|~QG9ܿ ?zw ßl\>qj{ }]λڟJy3+gpGaЎ\ׂj!QH닼S)ЅsujЅsu?red5-1.0~svn4374.orig-doc/projectplan/include/infrared5_logo.jpg0000644000175000017500000004544711404471610024437 0ustar drazzibdrazzibJFIF,,ExifMM*bj(1r2i-'-'Adobe Photoshop CS3 Macintosh2009:01:26 12:48:03K&(.HHJFIFHH Adobe_CMAdobed            K"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?ԱVɠmgsd}!*w ׋oW㾳QǬm*~>͛\Z}G}f:szع}R4Mim޵_ۏUH_j^Yw בfVrf;1匧۱ߡU+`tKkpiv/իَ?$S&:Wqo_#:Ým[iQ}/ov?fmX&~hsnq.cm-r $k<1^:iRu$v:vO]^潖Of#<ھf?4?ҷ4X֝;^vmsޱ3#PR4c.?œT}'ttα^p8;kwT]q㿝>Woۖt\3+K,Rlf~}/䳉yOľ8Gw1~OGɳ(l=MnϦ>}\o\Ns4~˯,vn岒Jy1Xd?K?Es4S)Н;N$4_H[;$CtέMsUU"v;}zAߏzwڱHYVe~cߚE;/qlק$gU/Llmco1+9]oesnM9;" ۻV2I]S0/ag6ʅ..ue2=n&tmx|ip{)dPhotoshop 3.08BIMPrint8BIM% P +<^ԁ8BIM com.apple.print.PageFormat.PMHorizontalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMHorizontalRes 72 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2009-01-26T17:47:23Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMOrientation com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMOrientation 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2009-01-26T17:47:23Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMScaling 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2009-01-26T17:47:23Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalRes 72 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2009-01-26T17:47:23Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalScaling 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2009-01-26T17:47:23Z com.apple.print.ticket.stateFlag 0 com.apple.print.subTicket.paper_info_ticket com.apple.print.PageFormat.PMAdjustedPageRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPageRect 0.0 0.0 734 576 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2009-01-26T17:47:23Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMAdjustedPaperRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPaperRect -18 -18 774 594 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2009-01-26T17:47:23Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMPaperName na-letter com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2003-07-01T17:49:36Z com.apple.print.ticket.stateFlag 1 com.apple.print.PaperInfo.PMUnadjustedPageRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPageRect 0.0 0.0 734 576 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2009-01-26T17:47:23Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMUnadjustedPaperRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPaperRect -18 -18 774 594 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2009-01-26T17:47:23Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.ppd.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.ppd.PMPaperName US Letter com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2003-07-01T17:49:36Z com.apple.print.ticket.stateFlag 1 com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PaperInfoTicket com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PageFormatTicket 8BIM,,8BIM&?8BIM 8BIM8BIM 8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIM8BIMQKinfrared5_logoKnullboundsObjcRct1Top longLeftlongBtomlongRghtlongKslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongRghtlongKurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM( ?8BIM8BIM8BIM KJFIFHH Adobe_CMAdobed            K"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?ԱVɠmgsd}!*w ׋oW㾳QǬm*~>͛\Z}G}f:szع}R4Mim޵_ۏUH_j^Yw בfVrf;1匧۱ߡU+`tKkpiv/իَ?$S&:Wqo_#:Ým[iQ}/ov?fmX&~hsnq.cm-r $k<1^:iRu$v:vO]^潖Of#<ھf?4?ҷ4X֝;^vmsޱ3#PR4c.?œT}'ttα^p8;kwT]q㿝>Woۖt\3+K,Rlf~}/䳉yOľ8Gw1~OGɳ(l=MnϦ>}\o\Ns4~˯,vn岒Jy1Xd?K?Es4S)Н;N$4_H[;$CtέMsUU"v;}zAߏzwڱHYVe~cߚE;/qlק$gU/Llmco1+9]oesnM9;" ۻV2I]S0/ag6ʅ..ue2=n&tmx|ip{8BIM!UAdobe PhotoshopAdobe Photoshop CS38BIM\http://ns.adobe.com/xap/1.0/ Print Adobed@K      1!aw9Qq"# 3457 !1A"Q2s5u8aqR ?VWmt75hё$޿|K pS7B$Jh>!qzRGJPYM٫=ٺwz1|-* t+L)]T, BQgfzR &X Fc E8JR'OҼ%nr?gW?Tk^~9yD㠩*1!>܈Aq1` ?D,S$5\ߊ=?u^1}DZXs) MaӹT1R)CrŽFfsh?׎lRʐFz۞~ 3 o]GuW?SO_~~k{x'>o?Ok6+Xxbnle$ReQ0Wq\.KcN %$I[<:`յ6FmQG kXE4"@։ٱP4.&TjLeK0*RQf{Fu:Sq4oF%Rdž$MзQ#QvŖ}Bh$L`u=؜"$8q'(o凴Նj!ri8U:q~T"b*V|9Ef}RG- ɀ,U؍NGN&VgǛ3{nͼ cI[E]O(Pm^܇eUS~X)4Y6<_UO8KRD_ZFa$떪#QzK qx/z#}]7 !'Qzo/F`F,KyRO:s,1 @u ݭ(ظlx[$rmmu^0++aBа)`R5K`Jy 9aTOjJ’btz5-RNzT=˺`ݨq%lkdCk"i*nX <%,T5>3O`_asݛmA݀'xgB0ŘX-y!Jρb,YC,YBTZFBRX76#f~%w3Yo# K\'or2bJ]CδRJێ4T.Xйv`Ukt9*h=:8%qwB%L`֥eUڭjn9f_-h8R\V.ؕ,&eU̽DN%)kY@<ʡ]FYLym7cor'lm佣cbyR8,!XGb=ٜ(HJICo*2mؑڛ]nj|=O8CTfM--dהE;X L ^ 32^"J[A )7i~ZV(\#ʹ=ͻ>"c!.m@-}++>Joj`]rҿJTJ)S)id'^EvG+}˵/?<עqTZ)W?j+r~*RhZ"ܧ'red5-1.0~svn4374.orig-doc/projectplan/include/gantt.png0000644000175000017500000000633311404471610022650 0ustar drazzibdrazzibPNG  IHDR szz pHYs   OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3- cHRMz%u0`:o_FIDATxėJQ3I2işZhEހwU*d!b+7iR$-2&1ӍJ]|a3gfmfϯT Hq3}rQfچQr2}"i3j9 {4Qm9XNnn鰜L?V + zø^?ڙ?ie355{["67+hPM79aՎIENDB`red5-1.0~svn4374.orig-doc/projectplan/include/timeline0,0.jpg0000644000175000017500000020116311404471610023547 0ustar drazzibdrazzibJFIFHH AppleMark    % #!,!#'(***.1-)1%)*(  (((((((((((((((((((((((((((((((((((((((((((((((((((  }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzw!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzX " ?ZL4HH^ 3ԟ@z8fnlrI?ϵztE+/(I1]e}ӟNyr:+k9կ&L&B(+Un,Y#h5d/ܺ[5]x R4Q|?;Hi(n"GVFq[Ձae{չ,٤nynsՇ@+~ vf}JE#Ɩ(oRTf4qt8<oot[ `e{!QHSۭs!s?ulw ZAWxL|P~v#h]?N_ mLܺG _lte#0QV"yithK958S|K:xr#׀VmUh8!WRyps׶χ>j$ԧ[[OKJI3 FŒyw9x_~gQE al:QP[8- aY22Cީ zhKIT8Z9ʲ9SО)nB9$WG^w_S;hi;9ܯٕF 2N ^@擽*6S KOVS]&;{Is(&5+8T:kwPũ.d l'<@8Lګk|]v66\D`rIv>rW`TÝ^Rn_k#2F)G`;a8nm6KVxD:hW:%O9LiWx;^Ziu˙5yD[O0?ďMz.ԩkknְA&5$POy}OsHN5x\M:e`Ē_FlmЂH*>nFz>n.&3ݫ3JD'9*OQ׵: QwocZ_ȼYVe6DW+o}*Aɏg3yT^cR2933og_1nqV[`[mmܛv(| <ϼ_v*j(ϼ_v*j(ֶH sK;oOjv(| v(| v(| v(| v+Sp]ئhLFg@}++.>^Oap6,Lhy{Xg~X+}8.K`[jw#ycWp3fA[k:xY6YA,8}+<GvWk F1HDرa;1 IxiMh08.JUa[mY?wW7ao#^^j}"Ԡ\H$gjkB$Bak +);II!A8ck#[ڢȺuЗ $#`@Td䌁Gk'ӵ =/Nk[%}j;D0[B0s[/_F/Q;o5/Q;o5/Q;o5/Q;o5/Q;o5Rݣ$>cPxԿcxE!| >m>!| >m>!| >m>!| >m>9/Aψ Љ;i4їh Y@~N>Vf -גAamZMra̰\i6sUԵ/TW^tk|@Bd:_A|I?[DM..K 8^i.$ cD*9E+Vi2 نqy G0iZB_jjER/DlXd)u_|-uM2 qXX=0P"\ ,p1T>| >m>}cxSQ@}cxSQ@}cxSQ@}Dֶj|crFnoZ>m>ϼ_(((((((((((((((((( vb0^8T? =p*򏉞f_I"]kFiX'P<qH?0<_q'/L\k?ZAv[IAG/<]Fv^?֛D? 7O?2+QHa_t'En~dW(?|QEG!|Ysjt'Li7O?2+n~dW(O̟P_t'En~dW(?|QE? 7O?2+Q@O̟P_t'En~dW(?|V6 T-6JшOzJ:Zlj4#̙bF?>_2)71#yd+@g~dW(?|WM%dgk40,{Z%~ryMoro=ڭ1XѮ!6O=oJH%_`Ta#4_ &zNOI+ӒʼF׮@?|Q_?ҿaٚW??O ̟? +v Q.c >@?|Q_?ҿaٚW??O ̟? +v Q.c >@?|Q_?ҿaٚW??O ̟? +v Q.c >@?|Q_?ҿaٚW??O ̟? +v Q.c >@?|TdCcsfi_ X­4j5Ev^9ma08^AP:*'qt'FOŠ+ܿES(((((((((((((((((2=p*/H@'&˸UFR(Ǥ=ڇciHXc u5,h{kf2,OQH(((((*Az" HZgŒ{@玵/d]+ڄTWPλ'OVdMF}n~"7Ce#XjPuv`f~ymU/TӶhvqҌwVZysa8Ԟ8mL>'sF%Wq;Za\ZI//1Co$@ !PYr 22Fhj[KyYaG̐.LlT#fB}jlw״ۺ 2/ܴYNOfዋ)ԏ1nfK [lLTW<+( pxp7"S"*c  j +Gѭ7Ty I#eܖcI<: ̓^ {+Ep*"ZL,M. Y@\"j|; \\^IKY'ڳ2,mFrakMƲ. Tuc_zUui&BېGG8j!gRU5m'k;Kaup8NO0G6rQ :3~Po$zl?>O3K @wbпAKQlԿ(?7=S'=S'6? _jCcΥAƩ?#?a?#?a?ڻпAKQlԿ(?'$zl?>O3G$zl?>O1GWv3~P? :G64 ?]~_CcΥAƨ6? _j @ @݇u/5G!gRT ? ?]~_CcΥAƨ6? _j=S'=S' lԿ(?AKS#?a_HO|f?t/!gRTu/5MTmhTmhjC :3~POHO|fHO|f?t/!gRUoKw笓\O3V4y/ZѱdrcG?r>QEr袊`QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEf[Ǽ_^u:΋jkwa4[ڵ%tdC>F1WǼ_\/MB-4hM_wG2^ 4ZsS3AOowy M4ˠ {xZGoQMFp֓0ƅ%SjzGjj((QEQE>_즟Li(@QEQEQEQEQE](7qIh."Ҙ3<,N:_E;²s[ίw]Sp%@hp ."(#fv_b^[5omU"ȾY ry=GJ(Z~c8ɼ3{-d4pX 8<2_"ɶMB}iFl V e2#|͜2E GuwmG< "jzz\M`^YD%R|’9NDx,K&Pho}I"tSp :aE-c#Q#+8qU'NiQ@^gyc]6yѸ*8!Agqj}_Կ_?]?pd1rTmsT"K> +Q>w8K> (\"(쿕]Rφ>/j_/>/AsT"K> +AsT"K> +AsT"> +P{>/j_/RφTw8K> (T"(Tw8K> (T"(Tw8K> (\"(쿕]Rφ>/j_/>/AsT"hwMmmh^PciL`rI8ƘקDr\mQEl_)QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEo?yH[;S5i!7WI20x+m/54kJmPZjmLPFn*'EuN-ɤoKw%hRRs#^?ֹ7O̼A6fčH 'tMY؄IET((d~/SOIe4`QE ( ( ( ( ( |uiNI%ԯ"FN2U0$WEEQcZ_jdyXd(Fem Wr*cc6-ݪO&igEDpvDcTsfO}6ѯ_힟Z5 iAa fv}1]7 h!O|4Gj%t=SQ%]8mk hmAo$[ nY1Xi܎݃A,zK|㊒(n{i Hf>T1r鷎fi_ Xº{Zj $(Y|rx 'MU6? _jXQL96afi_ X+v V!gRTu/5Zfff@(ҿanu/5G!gRT}f{)_ٚW??3J]lԿ(?AKQ!afi_ X+v V!gRTu/5Gh.c ?4,[AKQlԿ(?Yff@(ҿanu/5G!gRT}f{)_ٚW??3J]lԿ(?AKQ!afi_ X+v V!gRTu/5Gh.c ?4,[AKQlԿ(?Yff@(ҿanu/5G!gRT}f{)_ٚW??3J]lԿ(?AKQ!afi_ X­4j5Ev^9ma08^AP:+K3~P񪷥~JIn6S5p񞕕\E)A\iJQ^i_)QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEo?q~!յ;]^+xkI6ZhP~bg^G8#]{Ux3>on,,I~]~ľP{ii&q2IsxZ-;{hc$qDUt^?֛H(0((}M>'ߋQE(((((YESCvWOzCHͥjڸot!H yhHI %@h c3x@׿fizyV/WNsM;PIi6| KtTA8U &T>y[]g EdYWvZe$5$ⷒA@iT`@.@88k)<[6s5ĒB.dImC#: 0j6[j[4D l|"Fçs?  Kgwz50ֈK,ٶF:O>=q{{|i4[ Yz np~`0sYpxڥ٠h*I{PgQcO;%E偽xBgZO!iVi ee]7/$Sȼc*[}_-dia Tb@-=7:ֶZO}ipB bg{+@ 0ܛ{FuI>A TKbA%T`Miho?ísa=/qdB7(8:#%V`[ rC3(d&_>Sy6G`@98+qT:Mr5MOIĭ.HdU @wYo z__jVĞTI6(_`p;la^vWKKO.8c[x3$zl?>O1Y厣uv\I3#F R|Ez4Qo994mG64 ?b}_Կ_?Gڥ KLi3k=S'=S'_K> (\"{I ? ?b}_Կ_?Gڥ K}^LTmhTm+Rφ>/j_/f$zl?>O3K @'ڥ K}_Կ_?GL=ͯHO|fHO|f~/j_/rφ>Ga&mG64G65R|Ej|5/Qz?i3o=S'=S'OK> (T"{I_ ?/$zl?>O3Xj|5/QR|EW06#?a?#?aT"> (釴 @ @'ڥ K}_Կ_?GL=ͿHO|fi^_ݨcI|2`B39ϵK> *kw{=օ QH(((((_ܨ'ǯ6_<U6VAg4n;N0HjIhq,ʛXʍ\ukk/tӣ1Y8ccFcتۙ?vʖd9\㷵IMJw?in{i Hf>T1r鷎fi_ X»!r1uc(?ҿaٚW?? yEyf@(ҿaR}GQ^.c ?4,Gԟ=Wfi_ X+v Q'mzٚW??3J]}IyEyf@(ҿaR}GQ^.c ?4,Gԟ=Wfi_ X+v Q'mzٚW??3J]}IyEyf@(ҿaR}GQ^.c ?4,Gԟ=?o+ҿa[ъiՔ6j"r۠`#0pu3TO+8ֻ֊(#rQL((((((((((((((((( J=p*G/RT%Q@Q@Q@ i>_즟L(EhzM{d[C4dٸA[|iyu.^.k4TY<bn By&@sKE h@a( ƓnMEbi+o-{I"xbVy"YDc~V p۟i6ztadIlX32CMYْѻEg:=V1̓B$ pA CY'#&$"xuK[ʚ|Y ~P\tW:< t}BYH8-G1rN0; , ъ>#|_F𰀬VXH `$`A5m.V.e@ѱV#p^3ӡ2hcHe]ȥs0ErM&=Ly/%QZΥ$ x$2i洯SkO_r:̾LFGEpn2#p-}ط+xdQ D\ TrT.V{htd}QP zïZ_h:iR1QdO3K @wbпAKQlԿ(?7=S'=S'6? _jCcΥAƩ?#?a?#?a?ڻпAKQlԿ(?'$zl?>O3G$zl?>O1GWv3~P? :G64 ?]~_CcΥAƨ6? _j @ @݇u/5G!gRT ? ?]~_CcΥAƨ6? _j=S'=S' lԿ(?AKS#?a_HO|f?t/!gRTu/5MTmhTmhjC :3~POHO|fHO|f?t/!gRUoKw笓\O3V4y/ZѱdrcG?r>QEr袊`QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEf[Ǽ_RTvT*?xZ (((d~/SOIe4`QE 5E2kvڔp[õlWmd ucc_[Ul;[Q{47)dQ+e# GϕA}Vvd^f3F]2[F5b+vDJ[]r L(ﯭjw5[˥I eVul HI JJ.~w 8gXv76X@ɖxL`m {VƑ2C`\͠.1cHSjݢ[S7wZvYOHQ`ߏ23).[p:djz}LRK$V@g.,~D%QOmFFVv{2qɧQEqz厣uv\I3#F R|EwF]1Q2Rφ>/j_/D>/j_/rφTw8K> (T"(쿕]Rφ>/j_/>]Rφ>/j_/>]Rφ>/j_/>/AsT"K> +P{>/j_/RφP{>/j_/RφP{>/j_/rφTw8K> (T"(쿕]Rφm5yCOr08$3;a^7qqFNEW~(EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPe{U%Go?IH*?xZ(((Ie4d~/SOER(((kgwc6!4N$µG(bFWxQBΙ54Q^HL6"b2NC^@#dQSZ}GO 'J$RSkD`M4VJbZE $8&IŒiZeLRYG% eEL (#n&.sw^io<mxPokȢЀ9NN0 e-dlj{-UҞ#iaNUTMd8IvǦ8m/[]&ѴMPK];StCe`dлs#.QIt;-7Pm= @p$#M!c$zE(1\xIu;$k%Oi'TqPD=/+v Q.c 6? _jCcΥAƨS04,Gf@+w3~P? :4CLҿaٚW??CcΥAƨ6? _je3 3J]fi_ X· :3~P>D=/+v Q.c 6? _jCcΥAƨS04,Gf@+w3~P? :4CLҿa[ъiՔ6j"r۠`#0pu3V!gRUoKw笓\iWAg VC"̉*ȡQee`Gѥ~O1&U]1'~٬!xbk)oSRc OL!MίPCv&/ d]V;~˩%߆ ;@瑚"1C|u;I<Ų)e%d|xV^qN]y}=6v7pғmPUfpOYhA4w3 Sgg,3+ L\s)9#;A#qmΣ dYeYiľ`28\#!i]x1`2^[_BAah0  ١yZisVpFFFKH$ ii½ͤgil.|\q fHO|b[;F--fFAP #=3SRφiP(&sJsRhTmi#?aT"K> +_f$zl?>O3G$zl?>O3Xj|5/QR|EW06#?a?#?aT"K> (釴 @ @V'ڥ K}_Կ_?GL=ͯHO|f=S'OK> (T"{I_ ? ?b_Կ_?G K}^LTmhTmkRφ>/j_/f$zl?>O3G$zl?>O1Xj|5/QR|EW06#?a_HO|f>/j_/Rφ>Ga&mG64G65R|Ek|5/Qz?i3o=S'=S'OK> (T"{I ?Xu漿K[Qk;F2Ɍd9:gsj|5/UW{i xm#)I'qZ4cKc+:KQE0 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (3-/*;J@?IQQEQEQE2O)$}0 (Q@Q@Q@Q@Q@VO#Zdmd,pG$q@PJZIqbƓℿ^fA}X >uDP{ng}m o\A٤R&,:#$d!F !Ai6Cը($xέcźN'$MrٷH^xSJ|Nu:֧ZʋXHd-#v#9[R29{"-T:VbX BTe!\>,Uwf已6bV$y9&Z^a}9A֡U:6,w\lB ݒdg$ 7+=_YZEоyg-A\#1hJ|.zQR!Ѝ>}MQկ`X-$ ʆ.W[=6+v Wl0QRzٚW??3J]R}{o#(?ҿaٚW??O +4,Gf@(=+v Q.c >@3J]fi_ X>{o#(?ҿaٚW??O +4,Gf@(=+v Q.c >@3J]fi_ X>{o#(?ҿaٚW??O +4,Gf@(=קp_ٚW??z1M;ZDQ][tLfTz b}vEn_)QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEo?IQǼ_RRjJ^?ր$(((}M>'ߋQE(((wWıK#uoo~y$[~qGs FT%;masVo u $Ҙ22+y M+" 35&K]+Zn#qq4!>nz`<+SAcd-|#M>;EnȟpzEIߜn8ml czUxXH#LPQۧs (KH-d*uo?u'>T,M6 ?.,6[iwB6Me(a u;ֹ:^bȽ;#LۇPAFXmKM )o7rN5wr܃?wV/%.tJj;ES,vB1*<)l$m͟-ɷ l#۝:1ҌAX^1Ҵtoc"[HgFe S;' 1Nˏn+9^;RxY  #(55W[kk,}<Azdqu/5S^vWKKO.8c[x3$zl?>O1]p/3~P? :G64 ?_Wv/ lԿ(?AKS#?a?#?a?ڻCcΥAƨ6? _j=S'=S' lԿ(?AKRG64G6wa :3~Po$zl?>O3K @݇6? _jCcΥAƩ ? ?]~w!gRTu/5I @ @݇6? _jCcΥAƩ?#?a?#?a?ڻпAKQlԿ(?7=S'TmhjBu/5G!gRTHO|fHO|f?t;3~P? :TmhTmhjBu/5VW~z5f \>3ҩG65cMך-nEKG&1z8q/EW!~(EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPe{U%Go?IH*?xZ(((Ie4d~/SOER(('ĺj`q1lFxnO׽1<1ksv7"h2LxZа lQTSoݧ&5(^H Ǝ0ny:[Kw8+wͧ4:"ٖ=1 R'ǁvl Hֺ#fc]6z 6cg{^/j_/oF*6TSw}_Կ_?Gڥ KW`ڥ K}_Կ_?]}v_ʃ.R|Ej|5/WE] }_Կ_?Gڥ KG_ }_Կ_?Gڥ KG_ }_Կ_?G KGe=pj|5/QR|EwQ*`ڥ K}_Կ_?]}u*`ڥ K}_Կ_?]}u*`ڥ K}_Կ_?]}v_ʃ.R|Ej|5/WE] }_Կ_?W[[^/(i1T9$vycL?bxN.6ܨI袊6/E(((((((((((((((((̷xʤ/)T%G/@QEQEQE>_즟Li(@QEQEQEQEs6g?Cv, ץUO" O, \=KJJFj^B6Ǹ&bٴHXc5jΟky=yYe8G(N3v}hZ?_<ĺޓwuOq%ݣZEge+7:ni7G\61jc[Ht_yufiYC #ϫъkoG[mSQMK܀w =28SU :F"`9NnM_ٚW??3J]lԿ(?AKVYG.c ?4,[AKQlԿ(?Yff@(ҿanu/5G!gRT}f{)_ٚW??3J]lԿ(?AKQ!afi_ X+v V!gRTu/5Gh.c ?4,[AKQlԿ(?Yff@(ҿanu/5G!gRT}f{)_ٚW??3J]lԿ(?AKQ!afi_ X+v V!gRTu/5Gh.c ?4,[AKQlԿ(?Yff@(ҿanu/5G!gRT}f{)_ٚW??z1M;ZDQ][tLfTz 6? _j~ҮkpA`}!ۻ #~cBo#Xcխ4MuMmľC;h~a#wBFz+l m1'G"F9<)`o쯛|.X1UH\7#vM!5ϵ-^G#,+XOPO|}y|[~UuiRsvIj: @V~gyc]6yѸ*8!Agqj}_Կ_?^*eNyNjM_ ?/$zl?>O3Xj|5/QR|Ekz?#LTmhTmkRφ>/j_/f$zl?>O3G$zl?>O3Xj|5/QR|EW06#?a?#?aT"K> (釴 @G65R|Ej|5/Qz?i3k=S'=S'_K> (\"{I ? ?b}_Կ_?Gڥ K}^LTmhTm+Rφ>/j_/f$zl?>O3K @'ڥ K}_Կ_?GL=ͯHO|fHO|f~/j_/rφ>Ga&mG64G65R|Ej|5/Qz?i3o=S'nחkwj-ghR_291#ЁLsRφm5yCOr08$32F`qܬv4QEyI~(EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPe{U%Go?IH*?xZ(((Ie4d~/SOER񖪾't[QcmN6?g?3;1XU"=~gUny,@bywjg^{mG ӧ&.~@`mzʏK}k{o#(?ҿaٚW??O +4,Gf@(=+v Q.c >@3J]fi_ X>{o#(?ҿaٚW??O +4,Gf@(=+v Q.c >@3J]fi_ X>{o#(?ҿaٚW??O a^7fi_ X­4j5Ev^9ma08^AP:*'qk]kEW~(EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPe{U%Go?IH*?xZ(((Ie4d~/SOER(6ڥͅ~mM #r0!G# baB0/S:9okaye,hжrqsfxm/uCLx.4{6/.I@ghVd_})_K[sh+&\>',IiumM35bkdED&ҿ1ܧ+ּ]xvx/~$@cv**FYy"IFxxY5e1$E(s݌m!hEΫk|f?6He*)Î=j@p3s4W#Fj^%@p<#wKiZeŭ] {w(s"a$PWoӭm] .fkuU dP\Un$nr*aaZ)Ɋ8m 1E!,;4$W401 QYxI7|n6ُO<{f YKzbx`eTQ nu~v4:Z|=zx2[YDqсx |{lPo";-&5F#JspB  @%i.gYfV@*RrFvF(:eP@ -"u 3220*Z`c_zUui&BېGG8j!gRU5m'k;Kaup8NO0G6rQ :3~Po$zl?>O3K @wbпAKQlԿ(?7=S'=S'6? _jCcΥAƩ?#?a?#?a?ڻпAKQlԿ(?'$zl?>O3G$zl?>O1GWv3~P? :G64 ?]~_CcΥAƨ6? _j @ @݇u/5G!gRT ? ?]~_CcΥAƨ6? _j=S'=S' lԿ(?AKS#?a_HO|f?t/!gRTu/5MTmhTmhjC :3~POHO|fHO|f?t/!gRUoKw笓\O3V4y/ZѱdrcG?r>QEr袊`QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEf[Ǽ_RTvT*?xZ (((d~/SOIe4`QE ( ( (9xB?ky{,P[j47?q<1'97⿿u; v/)%"(.[2CTs9  sݦk</$Hщ%wVI!ޛrEfFqEEW3Nu[۫k G{fg+[KdF#9WaCeZ季VQJ|122',Gn]w 3)j:Ꭲ4oC݃iD饷CHyc+?0<Ҹ5ω&ե֑ivG̻@Aճr;"-֍˻ny ]Ynps>.do@O6/}"Mn+o>[4o !`sr@ufDdPv#ЀkVWPC)Tnw+|]FEc캒Y QnmiKp y<#7SXiS["A fR\Gg}MY'qmΣ dYeYiľ`28\#!i]x1`2^[_BAah0  ٮ]Bb.qZ(#l,uO07!@'( 8OK> +B4.Q1pj|5/QR|EwUu*'.R|Ek|5/WE] }_Կ_?Gڥ KGe=pj|5/QR|EwQ=pj|5/QR|EwQ=pj|5/QR|EwQ*`ڥ K}_Կ_?]}v_ʃ.R|Ej|5/WE]ʃ.R|Ej|5/WE]ʃ.R|Ek|5/WE] }_Կ_?Gڥ KGe=pj|5/UW{i xm#)I'qq.S*4Rw(QE0 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (3-/*;J@?IQQEQEQE2O)$}0 (Q@Q@Q@s?ğ M]5ua٦x\^(þգulMBy,f< #,QU-Qf~qWzM5/lKHaf]ɂ\F9p=޿bo_|Qyu=ƽhq_,1uyU%皺|Ujq\{^]LZ  j#|{Mz1E+z-u_gnu2jqoTVH!}̡[$6C}7ďrk36;mQ>`Aϰ⎔~=oi%i-ֆgw$mHGaT,"=AR$W* JO:NbXYBv2a^֌S3Ou7D Qoi/<\"v,~W |kk:{i;v$~gmrZEyktrV-̤(3^Fsސ--_巾#Ra viq/. 6dDPH*R@栽ge{]gN|Kip9\bTCev88k Ƭz :*A>װ^,cC+щ-xjf@+pMmrϷ 1]ǂ L2q_CcΥAƫѥ$iSff@(ҿanu/5G!gRUhafi_ X+v V!gRTu/5Gh.c ?4,[AKQlԿ(?Yff@(ҿanu/5G!gRT}f{)_ٚW??3J]lԿ(?AKQ!afi_ X+v V!gRTu/5Gh.c ?4,[AKQlԿ(?Yff@(ҿanu/5G!gRT}f{)_ٚW??3J]lԿ(?AKQ!afi_ X+v V!gRTu/5Gh.c ?4,[AKQlԿ(?Yff@*ތSN֬QWeគ :z_t=de3\X.GAYUREƜԮlQE%(Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@T{U% ^?֤hJ( ( ('ߋ}M>QH((z{ܬ -3$c.ڣZT5" {GҮ^H⼅g#)GҁMNV!r#9#H.oh=4SKiX*Bl(ΛAEmbc S$v鑝fϳKbpeǜ,FpðR_ Ӷ\Xz$KlMa3K,gRrgv >#:JJBBHΠ#qCq][Z-",w,^HD9 <|= _G>ϱچxA?Ӽ>c;^c_ 7S$-ZEJ{3r8 p8泗Ki0$Z^GݛM*% *#5vFk(5Ht$yD.`~`13X:/4dLz%d[W (ҳF2>fkϲm;-e${o1Hv '(SWTZiO*N"ikiDN6rXvzȹҴKD}&_Y7 4bE sY|.&-8^٢GFQXˀ[9'"[vv-ƅO PjL;ƑePH c$SӦ/%ȷh-I k[V(7 jx6FȿϜ\?JݥuxfO@1KzmpWxItO1{9]˫,&n1/j_/RφG @ @/ڥ K}_Կ_?GL=ͿHO|fHO|f>/j_/Rφ>Ga&mG64G6R|Ej|5/Qz?i3k=S'TmkRφ>/j_/f$zl?>O3G$zl?>O3Xj|5/QR|EW06#?a?#?aT"K> (釴 @ @V'ڥ K}_Կ_?GL=ͯHO|f=S'OK> (T"{I_ ? ?b_Կ_?G K}^LTmhTmkRφ>/j_/f$zl?>O3V4y/ZѱdrcGڥ K{EnkkkB3HJ`+pIlgeV9XhNQL((((((((((((((((( J=p*G/RT%Q@Q@Q@ i>_즟L(EPEPEPEPE|IiwE4<魑k&3l'֚W]_x3ucɡrA6 K8 =vP +6x@mBmOi1^smiipbۆTW~.ǬR++# >WV7BٷV^:$Xm*0'#*ާ ՟O]~Ac-f4hN2Ė|v@Gc]Fh"yw7J}ynmd7ZPf,6\ǐ31A"feNF'oY൉ VRoDk2O=CbtѧusGj/VYIWe@w-u6ƉhZ\i.YSjJ|cso qip!e  z k[~&YHټitIi#3R)V M"] 8Z5Dή~jvRtmKAv"VDzQQKKx$A8`G=x)j2ouZ %@[|bz1%3oMWҿavC+`YǠQ^.c ?4,W'=+v Q.c >@3J]fi_ X>{o#(?ҿaٚW??O +4,Gf@(=+v Q.c >@3J]fi_ X>{o#(?ҿaٚW??O +4,Gf@(=+v Q.c >@3J]fi_ X>{o#)zW.c ӵ(lExAF`z)@8g.WqwkQ\F(Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@T{U% ^?֤hJ( ( ('ߋ}M>QH(((((gG4vLP7y0]My85CmM65mteZErHAx轳Z@vp8Eq8}j-/Nl$=Yu#n x}Dm08[t% x^S Gl_Ea'p<$`6\1Lʤ <kma-jC YAb"22gwa C}7R Ke$Fa;!`y sƦ+Κ s}#$pokq$2(-,H09#i`皟T񶏤5w vf[9GfبG 2+gsGA%wc&l-mO3GWv3~P? :G64G64waAKQlԿ(?'$zl?>O3G$zl?>O3GWv3~P? :TmhTm(jBu/5G!gRTHO|f=S' lԿ(?AKS#?a?#?a?ڻCcΥAƨ6? _j=S'=S' lԿ(?[?k]$7)r8xJ @Ս7^klc)/@l@yOÏQ\(Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@T{U% ^?֤hJ( ( ('ߋ}M>QH((((( Z݌A3M屸Br?돇]Ǧ5H)d,Cz 'MiA +Q>w8K> (\"(쿕]Rφ>/j_/>/AsT"K> +AsT"K> +AsT"> +P{>/j_/RφTw8K> (T"(Tw8K> (T"(Tw8K> (\"(쿕]Rφ>/j_/>/AsT"hwMmmh^PciL`rI8ƘקDr\mQEl_)QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEo?IQǼ_RRjJ^?ր$(((}M>'ߋQE((((+me.%~3{0`k|s9Yf9^E5勵ĺŊϖ+m"Aj7*. O@Aҳuc-Ƶ$]Ja{HGĒ݉$K1?Y=i߽_5mCxKK{d+8Ɏ *̧.J8ۻ I}%ž# h-3pWoW'׭֒67~7.ςt#hV)@ftue#d_4eD=/+v Q.c 6? _jCcΥAƨS04,Gf@+w3~P? :4CLҿaٚW??CcΥAƨ6? _je3 3J]fi_ X· :3~P>D=/+v Q.c 6? _jCcΥAƨS04,Gf@+w3~P? :4CLҿaٚW??CcΥAƨ6? _je3 3J]fi_ X· :3~P>D=/+v Q.c 6? _jCcΥAƨS04,Vbve /0/E w lԿ(?[?k]$7)r8xJʮ".4sb(4/E(((((((((((((((((̷xʤ/)T%G/@QEQEQE>_즟Li(@QEcx\Ik [+5573;bOE$9ȋE:=nɵ$27%jJ0<=F8|AϪՍjtkyd22RUFx#\jv& K`0lSG$NA"v=ƝW2Y-$,)C)ef݁XEVmYKKk#J&O#3apܣv\]!F,n.-b; &P#6 ?x@0@ KxDMacz~ڒ,N #Ei685 4 {%YF JBsPFj$߶k-mR+'Hl8V6?6ׅ_z{w#(Pkw՞-dʮ00'rx:K?며0# nf[4d)'VW۸ ~F!ݘdy#UI *c{a(`I2OŸEii78cѰVf&$S9n k3]~};'aóYyē,Gk3I+_)n@H8]xVp6wQeG`NR@bR3cnZbR PX2p@5}OmPuͤ8'@cUe}N5[G%i{H)&U+r43av/n[{ˑ/>YdDV813izsVoʚpj(]I$KrFqav6϶urigw46zwfc(C6&C#(@A8OLQOus?¨ VisLF0Isی 3҂93H N ԗ~zl]Zy~Vq9ﻯozE=fC{=TI.%C:`+VRo^}?zT{I]\!-.<l8 ?gw:[Msky'Z̍F{fڥ KRFPMѵ @G65R|Ej|5/VW2=ͯHO|fHO|f~/j_/rφ>Ga&mG64G65R|Ej|5/Qz?i3o=S'=S'OK> (T"{I_ ?/$zl?>O3Xj|5/QR|EW06#?a?#?aT"> (釴 @ @'ڥ K}_Կ_?GL=ͿHO|fHO|b>/j_/Rφ>Ga&mG64 ?b}_Կ_?Gڥ K}^LTmhTmkRφ>/j_/f$zl?>O3G$zl?>O3Xj|5/QR|EW06#?a񚱦y~vve%# r=t8>/j_/-kp[[Z4G*SXN;c<*h cEWt袊`QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEf[Ǽ_RTvT*?xZ (((d~/SOIe4`QE ( +,tȬgZNͮK*̀x!؎@wR4~1ԭUک[hu;9D wyCĻ|<͈\"OMYpCN8`e85=1bҵ7Knm,w[plO˜Q%irz^_Eeu 2A57&dҵ_m5֤r)?zkt Pgpep7L\+s_X`˯\Xԡ/-lܥBnOEMcEynREʹ奈+X@Bңn/ sjVں/3ICm s}Kl0G$(J}vKj6kϪF%/5w cP6 N_?ie4Zmn!utI-#FB2-0+3'ynMoKŦyBq})Hd  )*~fi^_>2{_:n֏jא9cJU` y Fѓ-bfsEVi\SAf;t~}#OSuuk/ IEn1򡋕ĖMu5_3J] #TgkEyf@(ҿa_ԟ^ +4,Gf@(=+v Q.c >@3J]fi_ X>{o#(?ҿaٚW??O +4,Gf@(=+v Q.c >@3J]fi_ X>{o#(?ҿaٚW??O +4,Gf@(=+v Q.c >@1\f@*ތSN֬QWeគxG_aƵݬvQEq袊`QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEf[Ǽ_RTvT*?xZ (((OOZȱP;F> øi89 6qg6OH6[PPݔl:7?:{^W Ie4uTJ-k0X$ig_8`zc2X} e`.11$\ZM@h7z^yqgere;X*J3$ f^xOV:餚Xf1H@B[0*l= H50[I<䅣 ȮR`N*Ɲ..dt "D]<’X1`;8vί|6֗Q" v]p Dv+UpN*퟉0]7 mrB(Q2OZ{F+o] uiGlvT@;ؗP|Ğ'WLլ1{c1̧r2222  ^`\ҹM :s[ϳ˙` P(yU@$dY|BҦ\AwA#9G}ujnmb.>e`xet@"[Mt[ZOkw紊eREK't}pZ%ձذ$L{-F*HRpS<="K5Y!4R; T9DcK,'bbe!Ð2\wݵ`>ۛϳL' H#8=@5goE񶟩hi-/5[(cŗ1,1۝RqP^@5K:]>mZw2CF̡̯P jq|Z_3r+kk{6F$7QW!]>D䂣n9tHm<1kod.Kh$`6:qڐnn` 1X 5mV CM;n22"@d~4$KѣĄ",A !sGtzс\,meC o'V2*3q1ՙ{Go.3oVwQ1KzaV$G98]|6:(]nIP+AN:lԿ(?M{I]\!-.<l8 ?u2w_CcΥAƨ6? _j @G65]ؿt/!gRTu/5MTmhTmhjC :3~POHO|fHO|f?t/!gRTu/5I @ @Q݇6? _jCcΥAƩ ?/$zl?>O3GWv3~P? :G64G64waAKQlԿ(?'$zl?>O3G$zl?>O3GWv3~P? :TmhTm(jBu/5G!gRTHO|f=S' lԿ(?AKS#?a?#?a?ڻCcΥAƨ6? _j=S'=S' lԿ(?[?k]$7)r8xJ @Ս7^klc)/@l@yOÏQ\(Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@T{U% ^?֤hJ( ((hmR典rvȎU}}kEzmtH%#r-Mc")m/uuP\YNcnڛpNK{@;b4#./p>_~rzM)R K]8_STڀ:]ݥڕ}r6@39\ <mEOK|wfGdsa;%TQ!3a8^x]?W5_ND[P'/OO[/&Hf;Gm(RWrqP cqZV>z+%ѬZvf h!F N8>sm{{mM;@'!+ÌX7KONTҼA#H0LhX€X2I2*n$gKSMݴK]̒/m2n߼! ui#b'wM&܂!( m9֊a~ Magcs -+ p M] 紣#8>p94h^{\A3J- hivܖ+I;зz9&Jn<H8'Zآ՘ӱX|6i_I s3#6|ЪsX*ImJX51Eoi`%dC)$ ^MZMØ, 7qLgK\6d)"JOE<lxhx_QmFhtH-03=vky߄-f8u^V+UZXL}Y9'=Lw9cuOV `bt1d=wK_ւmxz {iki:2ٙ&#dQE08VQKimo$ ApTpB|T"~}#ObcQMR|Ej|5/WE__}pj|5/QR|EwQ*`ڥ K}_Կ_?]}v_ʃ.R|Ej|5/WE]ʃ.R|Ej|5/WE]ʃ.R|Ek|5/WE] }_Կ_?Gڥ KGe=pj|5/QR|EwQ=pj|5/QR|EwQ=pj|5/QR|EwQ*`ڥ K}_Կ_?]}v_ʃ.R|E^mnu{[м9R q0O8rE'{+ؿES(((((((((((((((((2=p*xʤQԕ?IEPEP3u!ӴNm/I5爞9dE,*Kf˪8 %sV߉mV9"ԢcBGȻ!,<קcҊW߂?'DԴ{}Q$9I  .S{,1/Bdt #r k Σo f}7Z*zoWH6ɗzNbl+O_xS/ikӛK m[MKDL|<إ<G{Vuh5k3^k=>e\`LAWQҏUZotMv5ݖtU##|TZ:|E-֖rgL#EpdVe$@'*9V`by<>&֮-"BEKŵBw,r1H^dZϋ-)tU{d2 d*Hv5i.^4 (&$VVEFQ"t`G^94_O?.̻e#Mgo+ĬԑSR*PP0)hzSuZ %@[|bz1%3oMWҿat]nIP+AN:lԿ(?z4*srlҿaٚW??CcΥAƨ6? _j=/+v Q.c 6? _jCcΥAƨS04,Gf@+w3~P? :4CLҿaٚW??CcΥAƨ6? _je3 3J]fi_ X· :3~P>D=/+v Q.c 6? _jCcΥAƨS04,Gf@+w3~P? :4CLҿaٚW??CcΥAƨ6? _je3 3J]fi_ X· :3~P>D=/+v Q.c 6? _jCcΥAƨS04,Gf@+w3~P? :4CLҿa[ъiՔ6j"r۠`#0pu3V!gRUoKw笓\qgvY[,?smdQ{}CJ%$bPJ T)95Zj[񞁦\=b*2?B39U!QDwH5jmwLYˆ$ ۸RrG8㒗m7}SEy6bguG1/1qjڸ {|/ RGGyWڅk_ןrSywq[ U7;*,@$W;FѴ+sxpaYfVhXv . 0 @'6u SGm 6.wnhĂ@oѕ0pF5+ǵעS{k:-L: @V~gyc]6yѸ*8!Agqj}_Կ_?^*eNiNjM_ ?/$zl?>O3Xj|5/QR|Ekz?#LTmhTmkRφ>/j_/f$zl?>O3G$zl?>O3Xj|5/QR|EW06#?a?#?aT"K> (釴 @G65R|Ej|5/Qz?i3k=S'=S'_K> (\"{I ? ?b}_Կ_?Gڥ K}^LTmhTm+Rφ>/j_/f$zl?>O3K @'ڥ K}_Կ_?GL=ͯHO|fHO|f~/j_/rφ>Ga&mG64G65R|Ej|5/Qz?i3o=S'nחkwj-ghR_291#ЁLsRφm5yCOr08$32F`qܬv4QEyI~(EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPe{U%Go?IH*?xZ((( 4D|)+~qyƶ-*Y~y6ѰrYG{l&ѭ<:-Ye7!\};Ey}|SixzioiOXRMcǍ*Cqo2P !7X>^WjzY2(hP@IG_r(+2vn\Ι<$R|߭;#mrľ\j+lDD;bVS_鴅0RF2y5^j}Zr;^@&$fBʸ5^x;Bmb+|9!Ne"e (H[v܌EJ^v$rK5NOd@;w09 1e$wRj$ei7h#,$DxV!Wk`G'4z=&|Uy-+ۇhՙ H*HN+oO+o1>r/ 6.sj59fHSTz}*ߝ?;g`4ݼ\^QB' : Ċ-FC}p^xZH+w \F$zm㩪ٚW??a}k;X +4,Gf@*GQ^.c ?4,Gԟ=Wfi_ X+v Q'mzٚW??3J]}IyEyf@(ҿaR}GQ^.c ?4,Gԟ=Wfi_ X+v Q'mzٚW??3J]}IyEyf@(ҿaR}GQ^.c ?4,Gԟ=Wfi_ X+v Q'mz0O࿳4,Vb~e /0/E9P:*'qk]kEW~(EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPe{U%Go?IH*?xZ(((YSRc2O)F;EJ(($W%|E-XI4mܤI $v;P]ӥV֖r_#m&i?t@4a7B~`cx]>)utضmVQ4RpIƒ“8sX>4q4pJs\*UwJBI2O:4ů\I%&߄{⫯ K>~7;a H.`#&Z5kWtRi"-(沛TWp}k[VIFx-oU1?5p1qEai/ү4د$2o,eU %Tb w0qgE˓0imO3K @wbпAKQlԿ(?7=S'=S'6? _jCcΥAƩ?#?a?#?a?ڻпAKQlԿ(?'$zl?>O3G$zl?>O1GWv3~P? :G64 ?]~_CcΥAƨ6? _j @ @݇u/5G!gRT ? ?]~_CcΥAƨ6? _j=S'=S' lԿ(?AKS#?a_HO|f?t/!gRTu/5MTmhTmhjC :3~POHO|fHO|f?t/!gRUoKw笓\O3V4y/ZѱdrcG?r>QEr袊`QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEf[Ǽ_RTvT*?xZ (((d~/SOIe4`QE ( (3-L[j.dW$#pr0J$bW̺~|/u,M<HoePp%̒¦PϡMh@V<_x V{Vg|{xXA^#`6|-ROZEjm'[E3F+QmE9H8缤wXѝ"(f8RoMĹ%ZIi&mEcj&N楿eԭoW0M"=CpFa~^F:duу+ SE.Az[<6GӬkX{6[ײLlЄ<щ6!;\uw^h4kxg1EΒe\,ORr1z{ުտ]ok|8DK$M7NK)X-FHy;J &?( "V3/1od`ko`'xY@dڔ]]$xGm{{"uHfFSMV5/.m+^q4墎D8nԈpA](Z^>K6VXf[Ht$3KDv>vwڮ@5#ZvK1v4Pk4w_Վb?z_Gw=v5v}jlMZhlmn|E!I(t&AFk(ERl,uO07!@'( 8OK> +B4.Q1pj|5/QR|EwUu*'.R|Ek|5/WE] }_Կ_?Gڥ KGe=pj|5/QR|EwQ=pj|5/QR|EwQ=pj|5/QR|EwQ*`ڥ K}_Կ_?]}v_ʃ.R|Ej|5/WE]ʃ.R|Ej|5/WE]ʃ.R|Ek|5/WE] }_Կ_?Gڥ KGe=pj|5/UW{i xm#)I'qq.S*4Rw(QE0 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (3-/*;J@?IQQEQEQE2O)$}0 (Q@q'I3:݋ Rӯa9ev{Q|O~Gi>"o jؼM4#1MVR8P &L!Zt=Iݵ4hlP)t+ Kdvz3GZi`[c5i?jIw{,ZyωǜJ~VmNM1miw rca\p]k3cOWg-kŶ7PEc4F&R %3;CbluM?w:5>:li+\,B2 pӨ,Iwn˜W~Ks,ҭTY3[=Kݼ Jڤn%ő9JbJ.O'! )N cR鯗_=>}[ɨkKoqjiI",v%00A)|6vGIĚP9nyc]f([D7Vzegjr.gbCzf (5} ]ŵCʅcݤ.P9EYHzV<zDt_חެ[_XŠ!{A5^[ߒ[~,VCIxCdgBvP1mgrǣ+j,J(z#Z=O4Zկf)euqVqKql^Hx`9ZύM>%i5GNe 6PDf pǰVf;['KV1%n)s#V pE {^Vw 1Ҋ(:K"qPbK`g:.c =i4[\e Wq##u5W3~Pb)F 3Tم.c ?4,[AKQlԿ(?k${)_ٚW??3J]lԿ(?AKQ!afi_ X+v V!gRTu/5Gh.c ?4,[AKQlԿ(?Yff@(ҿanu/5G!gRT}f{)_ٚW??3J]lԿ(?AKQ!afi_ X+v V!gRTu/5Gh.c ?4,[AKQlԿ(?Yff@(ҿanu/5G!gRT}f{)_ٚW??3J]lԿ(?AKQ!afi_ X+v V!gRTu/5Gh.c (lExAF`z)ʀqpAZ_AKU/UߞMsp񲙮,#)J "NjW6(NQL((((((((((((((((( J=p*G/RT%Q@Q@Q@ i>_즟L(EPEPEPEPEPEPEP#͡˧ 6m ͓fgql!S'^<]=GSŦ ZSIdЪm&#ɫu5Ļ[mJ8-yXr +6q:15jڎoyw7vFҰr7~GBUm#JMfno#Xf伥_# hS9]c]AjAm^iFbPr 4kX|4^ͤZpKY[LIXQѮ+WwrK%>Xq?t峷M?s5X%-X̎ Dg)`wsQZf&F5)5F,v9%o6>iSxFkݢMeW-E!\yt<3o}jhgDV8XeH^_+~7?z\nQn"YB8(`5=R{%{ja^vWKKO.8c[x3$zl?>O1Y厣uv\I3#F R|Ez4Qo994mG64 ?b}_Կ_?Gڥ KLi3k=S'=S'_K> (\"{I ? ?b}_Կ_?Gڥ K}^LTmhTm+Rφ>/j_/f$zl?>O3K @'ڥ K}_Կ_?GL=ͯHO|fHO|f~/j_/rφ>Ga&mG64G65R|Ej|5/Qz?i3o=S'=S'OK> (T"{I_ ?/$zl?>O3Xj|5/QR|EW06#?a?#?aT"> (釴 @ @'ڥ K}_Կ_?GL=ͿHO|fi^_ݨcI|2`B39ϵK> *kw{=օ QH(+}NzL+v}n3 qy=*tMxƽᩮ񦺶Vh5Q֛<>PjHa6JC0Lo y1cEcS?$7=h"O@Ҵx4m#=>v6'f ф#$RGa/Hu?kRXZ=q- bqa"CHhKm)ƑiSj31fwR8ox$p_CZxs˭ k{=y4R ~UWy:ʃl/ҵ.I\W:|:%T1De81] .R#.qN~TW? =.ɠHH{{T1r鷎fi_ X»ar0uc(?ҿaٚW?? yEyf@(ҿaR}GQ^.c ?4,Gԟ=Wfi_ X+v Q'mzٚW??3J]}IyEyf@(ҿaR}GQ^.c ?4,Gԟ=Wfi_ X+v Q'mzٚW??3J]}IyEyf@(ҿaR}GQ^.c ?4,Gԟ=?o+ҿa[ъiՔ6j"r۠`#0p@8g.WqwkQ\F(Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@T{U% ^?֤hJ( ( ('ߋ}M>QH((##ފ(EPF( w,lmdE UrN2IjVLvs3~P? :XpsAKQlԿ(?ttQs3~P? :>Wñu/5G!gRUG*0{8v9CcΥAƨ6? _j:(_g9lԿ(?AKWGEX? :3~P=;!gRTu/5]}bc6? _jCcΥAƫU`psAKQlԿ(?ttQs3~P? :>Wñu/5VW~z5f \>3Ҷ)zRjVljN+red5-1.0~svn4374.orig-doc/projectplan/include/gantt1,2.jpg0000644000175000017500000000545311404471610023065 0ustar drazzibdrazzibJFIFHH AppleMark    % #!,!#'(***.1-)1%)*(  (((((((((((((((((((((((((((((((((((((((((((((((((((  }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzw!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz" ?_,nXzSFSFv5Աȿ^IYjߝjߝUڮƷ[?^,d~t}~t}V_ڮƷ[?^,d~t}~t}V_ڮƷ[?^,d~t}~t}V_ڮƷ[?^,d~t}~t}U3jnXz?ԱY3jc,h{?-K/Y?jߝjߝU0-K/Y?jߝjߝU0-K/Y?jߝjߝUڮƷ[?^,d~t}~t}V_ڮƷ[?^,d~t}~t}V_ڮƷ[?^w&?qCYjߝjߝU0-K/Y?jߝjߝUڮƷ[?^,d~t}~t}V_ڮƷ[?^,d~t}~t}V_ڮƷ[?^,d~t}~t}V_ڮƷ[?^,d~t}~t}U3jr½o#9q?oΏ?oΏ{UwRK?oΏ?oΏ{UwRK?oΏ?oΏ{UwRK?oΏ?oΏaWc[-K/G[?^~ѿ:>ѿ:>/aWc[-K/NW#[>sXjߝ5 Wbx*܃QY3j<Ojj !m*?e\jkΜydt\>_BI>_BԀO ϶?<3>ڇiV֧?H?>;H'ځlr~?_OkS7?|vO ϶u{Za؞mCbxg}Өg${ j??|vE֧?9#o'P؞mC(?<3>ڇhj?QGHPہϥ/'P:=OxrGO ϶?<3>ڇiQj3Ò=bxg}?>;NkS7?|vO ϶u{Za؞mCbxg}Өg${ j?:'1OkS7?|vO ϶u{Za؞mCbxg}Өg${ j??|vE֧?9#o'P؞mC(?<3>ڇhj?QGH'ʐڀlp~?_K?>;NkS7?|vO ϶u{Za؞mCbxg}Өg${ j??|vE֧?9#o'P؞mC(?<3>ڇh{K{1 Өg${z[Gy*N-/?ưh5X.m^$I60X uֲh?red5-1.0~svn4374.orig-doc/projectplan/include/tasks.png0000644000175000017500000000654311404471610022663 0ustar drazzibdrazzibPNG  IHDR szz pHYs   OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3- cHRMz%u0`:o_FIDATxĖOHTA?}]_fQQ)%JAfR::T^DHw%$ivDb4MUY^ܷv_9of~_FA6Cz;b%hCNk.EˉN-<95n ~LU U[Ku>GuuXyi @]w07 iJ1g pZ1/+zS1tyQXyL.+'+ׁt'> ׸bcb[=r-~3m<ܜn_!pΒ3v6뭸2VȚʆz+@Š5"윟nK@p.odL,,L}'K҅Qo~*XtYvB-Blw>C+|G_(ZJ%`RwhcccP8~=0ظDRS>ʿ?ϿdZ*HfbffeUR}ʕ+*%wvPի&&&tׁܯ_"? ̷oPC^~Ǐ . @q@ zȅ!.f$?`6 Ύl @[7 @ n  4Zl @D !&P)$iC qA , !Tt߁O> 84`Pы/Ue!\S.]lfzh_0rN8@qPA B 0|ňb @pjdx0 EV`dT%6n(%%)$@ %3P^ 0л@o޼ + DH$O> $ aSNB@O0u :a V@C@!MbrG 8X2`@=>0a9.DC` /^ 0t9,e*[nEV@XF#7aЄ4F YdժUaaa@0b111...GG۷555E. @akҀ2#܉:/(g\hlFHzqz:X0>87݅ ϫWRPY}}}} 3FL 0@Z}˹ss`@s!e -  d899(@AJ P,0@OBm.d  ?"GIENDB`red5-1.0~svn4374.orig-doc/projectplan/include/timeline1,1.jpg0000644000175000017500000000262211404471610023550 0ustar drazzibdrazzibJFIFHH AppleMark    % #!,!#'(***.1-)1%)*(  (((((((((((((((((((((((((((((((((((((((((((((((((((  }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzw!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz " ? O_5YZ|/լS>jV f5k+Tp3Z? Z?֭ejhVO_5YZ|/լS>jV f5k+Tp3Z? Z?֭ejhVO_5YZ|/լS>jV f5k+Tp3Z? Z?֭ejhVO_5YZ|/լS>jV f5k+Tp3Z? Z?֭ejhVO_5YZ|/լS>jV f5k+Tp3Z? Z?֭ejhVO_5YZ|/լS>jV f5k+Tp3Z? Z?֭ejhVO_5YZ|/լS>jV f5k+Tp3Z? Z?֭ejhVO_5YZ|/լS>jV f5k+Tp3Z? Z?֭ejh:³IVjred5-1.0~svn4374.orig-doc/projectplan/include/gantt0,1.jpg0000644000175000017500000031360411404471610023063 0ustar drazzibdrazzibJFIFHH AppleMark    % #!,!#'(***.1-)1%)*(  (((((((((((((((((((((((((((((((((((((((((((((((((((  }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzw!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzX " ?F(EPEPEPEPEN-cLQLQPwh5d r9".W |!㛟ڥ' rHwUrw7RGp|L+mYd#+6ހ,D_hzDVPFbK_/( z0>U[_:DUֻ3٭Yl#۹m*H+KX<-8ɻO=!Xvg0x ?Hef bG'qhƯtKm㳶կo⅛ WʑR%R9rI=kKXYoJAE@L{9e$F}CGOWss $ <Aޮ >F"!֥/V\Cqb0Y.~2}l5{딕 f(̖1e $'Vz2[xDL8/ =҇KV'Ug p&[Ft_|;ծ'յmKP_!MRQCy[6mUd0e^ 6&\qA9 qӥK'3Ż~\[&Ǩ-#K[4=t ^{syugk5*›Yؕr j9ᎋovEzܩI"fR J*9֌:.}R}BeFWwwSzcm6jĚ]XZ[ĪX3o ܅)nndM5f'Ao%*X\fJ)x#ծMK滂8-PBb7(p (Q@W?#Um5;U|tLvMZ:$v> dlz3 >.GNm㻍rq_A5OXץѧK9ep!ݰC;m ikC&Vs^Dmeuɿ1 `q] mm4{gKHe*y%<FxlOQE 8 jrKfQ9`I1gkv_~ѕKh %6)$ 2joK5OXO1^jbR_q?v@oh׿wlY*?,?a ?W*b׿wnK5OXO1G%?a'?_0׿wnK5OXO1G%?a'?_0׿wnK5OXO1G%?a'?_0׿w H v,?a ?5|U)caBO@?燵->Ov@oh׿wlY*?,?a ?->?v@oh׿wlY*?,?a ?->?v@oh׿wlY*?,?a ?->?v@oh׿wlY*?,?a ?->?v@oh׿wlY*?,?a ?->7~/ H;K>* ˰ =釵;SV0Qqʿrcgkv{7%?a'SV0Qqʿrcgkv{7%?a'SV0Qqʿrcgkv{7%?a'SV0Qqʿrcgkv{7%?a'SV0Qqʿrcgkvꌝ?[TU $Vv!'cG*aO?;[j bK5OXO1G*aO?;[j bK5OXO1G*aO?;[j bK5OXO1G*aO?;[j bK5OXO1G*aOQEaEPEPEPEP^c|&x5yf,xbfݲ(b.I1Gz*@+7\!-Zh#GW2v'4O]Ҵ&i$v##.euDNY~4o-yT嵾hGJ+AHDP1|8Wڌk egAi@ւWxr>%[ +vsO`O4ed=_v 1[IzlKODbyoV(/uaۚ}mZCoy%ݦ Z͚ey3,B&Y?xCԣk:ueV^Q%$6R's):W[o]Z @pzb0CHsVs85D?+5SK.;{<նو23g8" vzQOQD?+5O vzLWmǩ377~Vj Q5Q|@ZB#ީ[?zoƩ5Q Q"? ꟕ7~Vj Q5Q|@ZB#ީ[j*2??qo?闽K Q5|^bj?1_'!oT5G!oT?&}?1_j?ݷ1GASTOS1_j?ݷ&}/ SD?+5G!oT?&}?1_j?ݷ1GASTOS1_j?ݷ&}/ SD?_QD?+5O vzLWmǨ -L*1"ާ oLGASTȭ>6bo=Ejc?zoƨ"? ꟕbo=G&+@MG_37~VjB#ީ[&+@MGbo=Ejc?zK?zoƩ5Q Q"? ꟕ7~Vj Q5Q|@ZB#ީ[k*5PFs\_LWmǩunQ|@ZGASTOS1_j?ݷ&}/ SD?_QD?+5O vzLWmǨ -Lg!oTGASTLWmǨ vzOQD?+5O vzLWmǨ -L(6 ( ( ( ( ( O(wQψ}2eY6L`8tP\tfVuu麸k1IV&KrG|\uq{ W7.IŸPszgu!JOk>m%} ~ .@$ i7se>>]ye)U• H/ƲWKmw2cv,psR:] PT\ fOoEҴ -ypq#4AQ2A p 8t/`闖6 6L^8UXFHԬ,?"Zk?r }0j{S6n e+U#gr2޲_կ:g톛S{潳"?]JBCs`CYo}+ AKUda0R{ {V<MO69Ťٍ6-.B]G#b8-m}ٮO5ڔZ 3j1Š#%xv$.Y=ka?7fGRI_o/7BloV͓rF-{x@6zIVݎZRcnX渂s3!3$',ISӪ+lEHT ~TZ[n9/uQiu6 ;$\Dqop*1~ȶv׺۳{v66Hm$+[]b.mLn qJH V#_氵I`,$TTv0J䄝k~7Q4w%s[d&+iq:nX_>y bOgn#De\L\`r{)ݦ+hc/->o`wәBH<U;@Hʕ9>^EmA|,!m+C[bdeA'M6#leMz HʌIZ0_K\ xi]zjWV~geo((q~GĥK[$PPI֒w0ǩåO2Xld]ɝF{o,69 ې$g#<֕Z߽MZýBKu*~5 ?jVվʶf܆H"v\d>U*-eeX+?xM~kyn g#nf`)t]F."7 lyʂB’@?5%2QHaEPEPEPEPEPEP\tfCK+u9x0b|GGET:ny;G| ::Ϳ-.L66ޡՙ09FޣӁWq?]j6w6vVv3F/{5 FFs ۟7G%G nY=c?#ih?#ikHmOlgGe>f??/=o[sHm2o_pgm?gm?w?-t_zϷ|ٯ8o36Ə36ƻL4[?/=o[s̿A7AOGAO]&G ni-t}f__ k{L_{L_#?nL4[>/{5 FFn|] Gn};#?n}1oi4oi5az ~۟7Ge>fῷ?0=o[sHm2o_pgm?gm?w?-tazϷ|ٯ8o36Ə36ƻK[?/=o[s̿A7AOGAO]&G n6Oi,s?Y=c?#ih?#ikHm #?n}1oi4oi5_z ۟7Ge>fῷ?/=o[sHm2o_pgm?gm?w?i-t_zϷ|ٯ7(򎰢((((($F꺓I7iqh2rnNvNy(_QR>k- M@\ *Ć bInl"EZ ͻvF%im[J\yE,8wtRotk#ַ\xNt];TK. 6b)` $n͂ #w&mEui`V[ JG`o'kE`Gj<K\Ӣ]IlbEŲ}p6VSEVFF+Y*I6͐>9ܠ(-?E5ѧ-mKMjR6 $9C5:[!8䝊D(p Mmt?S`{MERb/-˦mdݰ6*:Cnf}_;ޏ:ԱŻc%F1|O:ԱŻc%F1|}_;ޏ:ԱŻc%F1|O:Ա?^/as#Σ,nXz>}_::ԱŻc%F1|z<wRKK{'<wRKK{'(򎰢((((($~']tWKx&0Sl%:K1ەOtP\o~|#quqq6t15HB)wN #[Fp~>#Ɩ4}BEygχf\pj5UE G@-8i/O_>x =>VJl6LN1 F 4QRVQEQEQEQEQEQEQEQEQEQEQEQEWoGxZ۫5-}-#e`,#=zƊ:s`:{zHAc 2@|2rHmt?T mK=&)pNyy,fhر0vvmlw,OzSq/W{b,*lRNW !O֠#B70CIE&J3SFSF#B70\ʿQ{)9ߵ?oΏ?oκ/B4/w 9G!T{?=ڟz7Gڟz7]! xRe>;EFGO~t}~u\?п .?Z~ѿ:>ѿ:п .?h_r֨{)9ߵ?oΏ?oκ/B4/w 9G!=}wO=O= xQF;EF _&IǷ4\_Z~ѿ:>ѿ:п .?h_r֨{)9ߵ?oΏ?oκ/B4/w 9G!T{?=ڟz7Gڟz7]! xQ=}wO=O= xQFѿ:п .?h_rQSsjߝjߝt_h_rB4/w 9G֨{)9ߵ?oΏ?oκ/B4/w 9G!=}wO=O= xQFg3.c ?4,]7 kT5G kT5Ghfi_ X+v WM$??_Q$??_Q!s?ٚW??3J] OT OT}f{)f@(ҿatCAO%5| 3j)Q4CL4,Gf@+ j/ƨ j/ƨS9+v Q.c ZK?ZK>D=g3J]fi_ XºoA!֩jA!֩je3ҿaٚW??H5H54CL4,Gf@+ j/ƨ j/ƨS9+v Q.c *mjx aLCAS%Yg3.c ?4,]7 kT5G kT5Ghfi_ X+v WM$?_Q$??_Q!s?ٚW??3J] OT OT}f{)f@(ҿatCAS%CAS%Yg3.c ?4,]7 kT5MBֵ>ʏe3ҿaٚW??H5H54CL4,Gf@+ j/ƨ j/ƨS9+v Q.c ZK?ZK>D=g3J]fi_ XºoA!֩jA!֩je3+;(((((Bc|L"h0M ^x/ʿ+`kjZ.6g: Q4Hu=s~$_Ap͹G'qSKXy^J/nuU֮mՖDPc T|ok]մMkb\V)Stb| C3tGi*XF$ijzO1>RLJЩʣnAӠozi[X.w塛?VydhRzeݢQH((((((((((((wmjK{"R<˙Z)txFfT,o9Kd9*XQFqږ G$Vi֯lt'Rd ]cFym4HVGMMZmN~]7tN*m@dQE = ?5iB}YF̽56gs+SSV/o=G!z?^z J56gs+SSV/o=G!z?^zk0QiGw?r? ?5ijǨ~J56gs+SSV/o=G!z?^zk0QٌQLjjǩQOA 9*v3vgs(QOBO Zཿ{=Òc/iGw?r5/Tէ Q^AO 9*v2gs(QOBO Zཿ{=Òc/iGw?r5/Tէ Q^AO 9*v2gs(QOBO Zཿ{=Òc/g9^_;9F? imZr {v6jǨ~J56gs+SSV/o=G!z?^zk0QiGw?r? ?5ijǨ~J56gs+SSV/o=G!z?^zk0QiGw?r? ?5ijǨ~J5Bw/Tէ S_ mZ@{w8{\?%Nn? Oj?3㕩^AOSV/o=GrTe?Q;9Z{? ?5i{\?%N^? Oj?3㕩^AOSV/o=GrTe?Q;9Z{? ?5i{\?%NeEWvQ@Q@Q@Q@Q@pW 8U'Sy# %[9@)5W9e &E Z2-Rv{99h^5 sÑ _޽-]qsֺ |7WϧogQFXБOtej7^ntilg#1c'r&λ|&ItQ|)C2B#$dQ>5Ia/M,Is K) AɫQ(]ᾞ7%prF K̿Iſo|EQk+Kϙ ſr2RJpkVu=,f(w3,e=ֺ|+[%mm5vGYy$I'9&GMREЋ0I$(,5l0P@f%yLJ[&#H#|$f(`]yPَ& m+H<G|1AqksgxdY\yشfbJB>Q>uoXbYFV{Qh-ByAq"Kqvi]Bi2[ch1DgiwLWܪP}[m4W{޻r{Nzt7°CE +PPDTC*0䷾yȥa#M_Œiw AsB}3y g!e1nF#LI#4_:UPMw; kLוY]?x<[CZUYuKIJ[ 9<[@j}=5QH]Pv[[DZWDi$d;Yu`@vygAmjτğhҤxnvMyb:83?dfH#:gIiDŇ|2OL?ٻ瘟oݷCV4F|G#:ghgL?~oAmhտ;~;3d43?dfn?y7CV4hjvfψ玙??2O3G7tv?5o߻o3NgL?x'y~۷/Ami`N ?Ͻ/#>#:gIhfc5o߻o3GAmix'3$4wA1oݷCV4F|G#:gIhgL?~oAmhտ;~;3d43?dfn?y7CV4Uaߞs?6O3HtΠ?~O [vw#>#:gIhgL?~oAmhտ;~;3$43?lfn?y7CU4hjvfψ玙??2O3G7tv?5o߻o3NgL?x'yQ^AQEQEQEQEQEYx.<1kA.m͵ I$]+o.I<c@C3>c(MgY5 ;h$ԮYZFF$Wn 'J۬]kßZzuk3Of{=@!OZ}m#`eo6:@ sN{wNOyw@ܣYn-˷3<d|{{3 @,x|! ZZʖVE$IMrÖ@ 99 ڝpZ/u {^Ѭ$NֆH'P/e?)knGq R3_-č+o(/B09岺Z<=>w-HE;,p*][&"2Kx,1eKKTvu1ܦY@9+>-i]֣w,xyD|r? h[7(@QEQEQEQEQEQEQEQEQEQEQEQEk^C ٦a$gwRz۬mwç]gֿΟ l{͟Ƌ'&k;""=A#僠#>9S \m-uuDk4hSL079rc+mt?Sɨ@qEP&6 ˀ'd ?zw V6G"+w0!7A1L_nRG,RHuӿ_'];׿wnx~'fhAޝ?O?Yn;^ {G,*+a2+czZGY4[{IY&hr)Vb3VvZEeqs6BUdy"eI=VSН(3J,J23KNk?ϪMw A;%y\\f1JZ^_EkjST9@S,Dg$ `u:#-bHROSM9e*mvyǡꃣ]xO~lusus$l$6BN0PT۟mt?W)g]zg0Y@0T\pI5dvMERm -fFTYg1F*V,G8rj b.,/]Mʹ5-/%PH cE;Tu^(QqN*L?,?a ?j b>ڧ ?<j.*GdI%?a'SV0W?;TuGq@SEW0:K5OXO1G%?a'ϸv">ڧ ?>Ga&tj bK5OXO1\q@SE}O\}^L?,?a ?5|U)caBO@?燵`?]qR}siڟ]?GL=·SV0Q f@I+?ϸv"{I%?a'SV0W?;TuGq@SEW0:K5OXO1G%?a'ϸv">ڧ ?>Ga&tj bK5OXO1\q@SE}O\}^L?,?a ?j b>ڧ ?<j.(釴|U a#{jw%?a'{ڞ?K;TuGL=΃SV0Q f@I+?ϸv"{I%?a'SV0W?;TuGq@SEW0:K5OXO1G%?a'ϸv">ڧ ?>Ga&tj bK5OXO1\q@SE}O\}^L?,?a ?5U8]IxVq@SE!uӵ1p>Ga&t?j bK5OXO1\q@SE}O\}^L?,?a ?j b>ڧ ?<j.(釴Y*?,?a ?s}O\y?]qQz?i3TU $Y*j.(?gQEEPEPEPEPEPES=#KeLn̲+'m ?pp(6]ӵ-;Mg8acFrrqZUxMooϧ[Im^xab`x$}w}C45rծ-4y%{hwH,a{N-+K]RfKgh?"2WT@GX+xry# ꃣ/^xOլ4Iy})"x9 DdUC5p>mQiw,zanȢ6O/&|F bC5>욊(?7-,dÌ:F]_JۮwFr8|ǟJ|m֍9kmV]]bhxX#T߼m ` ס@h(Doos;o*^W PQ_zmyyop6]4+n$d퇨 }SCE;γNW ۟7G&G nruwWԣ݋۳Hm #?n_::GnΫ#?nK[|z<>=:L4[?/=o[s<>=:L4[jxI mϠuy}J={vu_-taz+QQ(a_z ~۟7\GGԣ݇gU ۟7G%G nru'Gԣ݇gW ۟7G&G nruwRvݝW%G ni-uy}J={vuO6ӿ/=o[s{0=o[sHmWΤ{0=o[sHmWΣQ۳Hm #?n_::GnΫ#?nK[|z<>=:L4[l.Y@o6:O:Glί #?nL4[|=:K[?0=o[s{/=o[sHmWΣQ۳Hm#?n_:ΣQ3袊Π(((((O}GKth6bX>S˳\d1@,K4j2RhxT$݀U~%ׁuy,%$X\PEV #r)ψ&CuGK4:lKABU`Y@8<70JD+$lXz:`{ +iӴ[xV;do'V:dʒy_r(hBq'2z};h.bw+#GZ@a߰}%Ia&!@,BE0^Z .b%2_'X/zABn4R[J*j%mnQVU* do9SO{[;b M\]ghmҘ@d)k%UhV G$&B!VdUU c$93`uGDqI kR6٧240Rsyy‚T TzuoxMTU-:ISIrecVl* ]ZݤݬJQJy_0f'v砩_0bM"";Dd lpA^i\kz;ebA Š&0.Xݙ0emK+6<$sk5h-#ku;ta C֏2mER(((((((ѿ:b-K/Y?jߝjߝU0-K/Y?jߝjߝU0-K/Y?jߝjߝU0'+ϟFqVgڟz7Gڟz7G_0-K/Y?jߝjߝU0-K/Y?jߝjߝU0-K/Y?jߝjߝU0-K/Y?jߝjߝUڮƷ[?^,d~t}~t}V_ڮƙ{8sOwRKOڟz7Gڟz7Ge=kŻc%wRKOڟz7Gڟz7Ge=kŻc%wRKOڟz7Gڟz7G_0-K/Y?jߝjߝU0-K/Y?jߝjߝU0I hwgY3jnXz?ԱW=kŻc%wRKOڟz7Gڟz7Ge=kŻc%wRKOڟz7Gڟz7Ge=kŻc%wRKOڟz7Gڟz7Ge=zQ^YQEQEQEQEQEQ^Iߋ:wQULJ :E lj;J>0^MzQ:wce)Qr`>vIla{0i|1kịB5KH&0T*A|.I'Q\}3X]B-؞/'>t2~vgKYjlv&orCtϹ@me1X❄z5!HjmuMZ͠բ3 5r!lFX!6=\%M;O$Ur$ 1TbuW=_=+džbu)_mM7&?`=tٷ[:A r+o&^x4[K=FKE(вʌW 3֒PV{Us{mPc;7#|]^^g]| j04r]rJXwpۗ EY5 j`)<7qߦtWK鶷w q,mڭ֑lNY\ɹc0k iH,ne" rhZ7=b?$VWVovfu&53O |2:ZZu7s<2/\ΰoBXݩߙ6AnɱveTbqȥD׭mTn-,m1gynBRʨFc^]}wGC5; ymm}qz41,UdycmYd~W#M?MUk{vrߺݶ#u8X4˸6'4 WRjzcǭFj׎ӢNmb! 08a1})_o=bאA+02&-fڄ`\ɖ ۂ`* ' w}\6ћ9;StK 1TޟWiǂck.kks }<ݖA+φn?YY,+_MG/ Yśs@mLq-ׅeXv,nIYrkvAER(((((szn)/5HSڑzbFb6Sp7H8$tR;J ^f#}c-Ʃm5؎Kxuf#at@jv>mv&)q/W{b,*lRNW !O֠#B70J4%ɊW8fP*0n';MҿazPWZmҩuh_rB4/w 9\f@(ҿaW:B4/w 9G!C3J]fi_ XaWx)\?п .?rٚW??3J]{ sN xQF _&IǷ4\?4,Gf@(_0! xW!.c ?4,G\L{W^#I^Csiu Kϵ2mRp PGLy|96!N8'ڇuk$f$18=띬&kONX^ZZW+qhc.."¶gi(]VV4-&}Ř8R%^txܠ_oK֡~U=OGujvn DAGy?%KP, M,BRZ?T }Ewq ·jE üQ!hĀx8sQ̭L|_y@bq^]i+[A _4-睘 FY ?T~ v-хg.0pXi#}2Uj^rbzU]xfM-u4EE@A TU[Q!xCkuF/n[HK D0qE't vo4G$drcbK/3Oy)nGtu8Y'i[b#ppSGE,Alo4W#i_7"|p3 сgּ)Oviu1ZK42%do/Xx<){Ğ R%usufaEcl;kok}/ocҪ+X/m䶹'Uȡ^/W.5=:x-iWyĀ)D K^5!]űf2($gV/Ak>#!SC? 4-;8XVn<65+x 5ě $6q{ ۞P[](f$_&֙s>ְjPZGiQAF$o9|MmvV魦$>h˼ul7LPկO=F41DʂHR2 p:GZi:mzuc lړ#c'ڠu W~".Isd76D~rw* #&.4kdD8QUQWŏA}I2gzn&xm:B 9֗ܗ]<_e+T-4?1/#:UMm+GmI].$ӬqZgÝҎm8#w彵w y3}z]L)]UxpqU$??_Q$??_W+zoOh?=7{:W kT5G kT5\ƙAu?cL:8sSu_CAO%5| 3j)Q_cL:kc8eN{:_ kT5G kT5\ƗAu?cK:8sSu_CAS%CAS%r_v3;GO OT OUliS?4Kο5>U$?_Q$??_W+zoOh=7{:W kT5G kT5\ƗAu?cK:8sSuЉ<O^A!֩jO}/9ݗ>S_3;GO OT OUliS?4Kο5>U$?_Q$??_W+zoOh=7{:W kT5G kT5\ƗAu?cK:8sSu_CAS%CAS%r_v3;GO OT4*kSqW$?_Q$??_W+zoOh=7{:W kT5G kT5\ƗAu?cK:8sSu_CAS%CAS%r_v3;GO OT OUliS?4Kο5>ǩEaEPEPEPEPTt5)Xt8di_Fp2GWhj:ƕcnDIN1\>wǎ.|k-H@C# tVr6PpMt>úLF屉(2AO 1۵hreh0l'oLU|mi^-.x`h|;1u3Bc4=<$^c*9f;8:O+IojoH`AP}.qu]ThUtpUA"SixfdAPՍW{yR($ 1ېWnHQֿ66-K :úT67D1t,`ޜEcxK1ͺ x9cyTVZoKoخ-;pv $Z>t+ B%yVU0SdJI_5go]Foq=z ҭa$q9ޮ6Ĵ,lAC1.c\gW׵ /Ŷ_%2Ė l$i0x9 $dQ)VQdݵث0Us2,+Ⅸ7՝t[=OMtf4LUTa1ɫڶkj) nPY, wmʑsq3D {{-&Vf8m"*I4^Gbal!+ # W-o6}OmdQ6y$< r(8?&|K 3$mo QBr\0 N.%5d΃OhZmYlj60͵g Dr`X6 Py3Y)l1(2R]K"_z3F_H WSCp Yg61 UHzsS_gT--żB@I [=ϭWE,Mx+3nbˌ[OSs񤚝y%ѓQxP>ata*ϋvZej_o,+ۆOvJ?[~`xxoCXl`6"ӜIgM?1TQxGp%C.4/,yI=Ms+"H4?.ocI]Vex1Y3>At[ mN:Z5z^Ab29B` xOñ&*Yl$yiW7Oi\Ow4 2I; py3K ھtҩ-*9xW(ILM#MXOIbIcuC#ɟ1w<=y}cF'>S]$<۸td_٬u{6.$eL+l 1󈭼sszmJ2ZG%(t$FvrN9"z\4nj//nnaI-ʶ\aW-i6/w1pds -=\Sew ywvce>e )8ImQD5`G!I;Aڹo;Bkek7Zx18zCS3L O]AmsgMydA$ N>a88K[%kk6Ю"@*ju.խ%[ib.kuҵ)QE(((*9`phPC;XrqRV O5OpbWৡz;sM4}2;|uݖ,n $'v3@je}4k[+vKTIh`T #ϖz3ODI@cxsBѭ$F&&1`(l~gp=¾R#I#!K7s?5o߻o3]V?yH࿴5o߻o3GAmhO ;+տ;~oݷS=Nޗ+տ;~ A$k>S=N࿴5o߻o3GAmhO ;+;~oݷS=N࿴5o߻o3GAmhO ;?o)UovfCV4}R{hhjvf [JAwWv?5o߻o3G*y\Amhտ;~T'{Ep_oݷCV4}R{h2o?_+տ;~!X`4}R{hhjvf [JAwWv?5o߻o3G*y\Amhտ;~T'{Ep_oݷCV4}R{hQ\EPEPEPEPEP\嗀l= "ZAޥXs5瑑J<'8V5{?$\2~v'3Q֎btHmSy*no睷2;G%H2SF< ̑ے8ؾcI8E!yR8b:Vd=ݯenbZ@v|N3EJ4H.ZG2=4jbUc$ajq^HVrI&mg+IrGv$Yo=Ht,*eJ푳r'5MmFIiѭcf&PAr3%tB{K[L7[R1;`"0ZZտȚh39![k{adW`r\6jc]dWeV[][9XU9'-5tmC̖[eewo#s#G O^:Udw:T7}<ڂ kI=~n3V[kѼK*K;DЃ nF o-pʂ3S "h&dњG81ry1L+q"`1!o lo2i׳^I`x~i:pprnj1-^K7oaecv)s2FȮ͉6 85b]wfK/ tJżm†Q-;kB\hi PRr7 :Zyq6]$j4Cq|{v5)Y[}_"^` ,i*W-_}>YZ?L\ {|b[[[O9՜]I,`A'X{$ y4p.'l/ԁ޳[ƚbO.ח?ee̦%rC0F'UvՃe3}6ok=OgaEU& ]r1Uv6/o4QZ@R,LݶD`;FpsXzEU$F sb1n:ImZ}]@Q"lQ -O#n+=[oyG%X4Q"FaBZ1X I*ܹ8"[u6lO0ʖ*? 7 i|\݂W C}Xj˱xSF jסZy ,̌ m đj;cG BUeO(C $s-! 1x"Eu@.h`8#` ףT+Rk$kLN]سOrI4QH(((( Wc'o_OW8М&^z 6fG-J\s1hꃣ+}hkQZʷ3οsyI#Wuw9!y''kb \4YѥIl+rYU u'p!gL?ZF-4G0UV\xAjdx'3$5?$:/Cޝ?؟ 2F|GAjd?x'N=3Ajd_x'3d5?$/ ?zw sb|??6O3G#>#:gIjHuӿ_'];9>Ajd?x'3$57$:/ ?zw sb|?2O3G#>#:gIjoHuӿ_'];9>Ajdx'3d5?$/ ?zw sb|0_'Lgޗ3$5)קd?O?K ?zw sb|?6O3G#>#:gIjoHuӿ_'w~3?dfF|G#:gjH5ӿ_'w~3?lfF|G#:gIhgL?O ?zw Cޝ?؟ 2F|G#:ghgL?M ?zw Cޝ?؟ 3+:Š(((((]+o.I<c@C3>c+qkddZ+[DLѯ 9E&wK{ue f)dŒ07H3EQռ%M]k=JUr<|Ҥx[>ЯuM|pE "8Wng,k[òR7ǠPdXbrz2GkZ<oLY"R#H,ᘃU1j]'Yha*p0EV!mv.D7S>[nO^/[i_%>j6O<.HRPP|΃qhE K+S| czeS^D`{k5ŹK;e@3iV:ekȻf@뵀a؎ K–گ4j厚Kj,9VRŶy9PNU Ƈɬ:d3C(`DOeb9>%hFt(lL$I+N(<[jKf uF#4җ"TON:4 ߯[ Ou؞+UKe VRW՜.%u+Nc ]RWOثbN6awn4D:*iܩ\^=EKBH[NXTK4j,rq=[vcy{spe|q{0U :U[]E Xc On% xI"gA) 9=AU aF66rxI?,~u]Uw2r8'_ֺ&}í. E %!aݬ3;n̡J |,`d`sT,> h{Geڮ`$X$(UG\u&k"ퟅ,luv)nPsp۱Ql4JőYussoIZThgvd`DÕv0EW6Pci&`rόvV< PVKJ;2YN61 IZk/s?qMlZՌ1Kk<ۡf#uq;Ay-8%jZIauAjP*4э_jM:o 'w\GcZ"IVUY7 +/oET-Hxه$Pp*SK{.)?076zVzQ-[GquDhD̀vcq8Us7 nMV/|7.!X} I4o5].7,\00A FHouRYeO VUC.N]|Km![I5 i]=3GکZxK᫟X dlz3 >6k'VJ4Cc4W7w=Ptfum-uuDk4hSL079rc+mt?V%׌tAV̷W7W2A6@d/)$ ~UA C5>:j(LJ[)Ym 3(DW`Cn$|c;[xe,(eA ň<`g@SV0W UhsJ4﹏?;[j bK5OXO1Wqʿ<n;^ 㵱 f@I(TU ${\Gn;^ 㵱 f@I(TU ${\Gn;^ 㵱 f@I(TU ${\Gn~IA%?a'E,>cI?_0׿wnK5OXO1G%?a'?_0׿wnK5OXO1G%?a'?_0׿wnK5OXO1G%?a'?_0׿wnK5OXO1G%?a'?_0׿wnK5OXO1G%?a'?_0C]oi;ZZpv1'0Y*=#WZ}{7TU $Y*=#WZ}{7TU $Y*=#WZ}{7TU $Y*=#WZ}{7TU $Y*=#WZ}{7?]Q;[?j b*c.r$s<(_9i2;Gv@okcSV0Q f@I(_9i1;Gv@okcSV0Q f@I(_9i1;Gv@okcSV0Q f@I(_9i1;Gv@okcSV0Q f@I(_9i:((((((+t/zq3O,%G(!8㓊(#z=׈|=h=nnf :spszUMWEMa k5AbyPW*6kK]<;\;[[!y-C8li1t7K&hM>DSVkˉ\ xED"+rO[N6t/M /psI==09I V(=OҚO{bq_Y\ɫPe?g<,Aga#+KY]Y&J&TcV%r`SEvGQY[O2X̫5 sH"۲_[2-̤LGP߅-տGvRBA'A+%m ԐoBJpʝass\j7zzgk5h:y+2xAnmk_Ա-xݗx\+래m.Ndx#hIx@a);ct-T[kO[F!X5 F $.v.hr a:+z)}=(0=eP(8pjϵHkVp/& ku(ȏaf!NdxO·S:Kzn$<$ZkmwkZovf\KNHI[%ȝnklOٙ_dȱnx8p;Sտ7~VI[=ΰ'x,@gc,P4,rۖ;L FvZ y^m:#gS%ֶ hi mr1F#8o7Mm|ۋ̡DIڈY~8|-48K;f@iu\('ϐI?ֻ (iuin`I]..i[|Q|fay Sehsun5Y.nIU؃J (Q@Q@Q@Q@Q@`CԵ"kJ=>N4RDa۱uM.N[7Q$ ц [ m^'qGTg]zg0Y@0T\pI5爴-ZIyDҘ(KGM3F@8E^mt?Sj(qqalnmvi~,UA#/>ڧ ?&EiƞjlyFq3`Qbo=^+^(Bq@SE}O\bo=G&+@MG~ޯ/;TuGq@SEu5Q Qޯ${q@SE}O\bo=G&+@MG{zr}O\y?]qWQ Q5Q rC?]qR}siڟ]?]O&+@MGxVs#{{Q rC?]qQ;Tu]G&+@MGbo=G/;TuGq@SEu5Q Qޯ$;q@SE}O\bo=G&+@MG{zr}O\y?]qWQ Q5Q rC?]qQ;Tu]G&+@MGbo=G-O??5G߶LWmǨ9!j.(?&}?1_j?ݷ@s?ϸv"LWmǨ vzoW_ϸv">ڧ ??1_j?ݷ&}=_H9>ڧ ?<j.+ vzLWmǨ9!j.) 㮝OWS Q5^@.mj=_Hw9>ڧ ?<j.+ vzLWmǨ9!j.(?&}?1_j?ݷ@s?ϸv"LWmǨ vzoW_ϸv">ڧ ??1_j?ݷ&}=_Hw:J((((((+<;zGGƗ>!I˖;dWlN21~W S\Anu=BR`H!:(GY𶫥iijW[)RĪ98q}GZTOͣMi=r=˲9l6ʅV+c+յ?C[Fmfؤb <~%Ҽ/Hѧz9W f}o!S`6 IqyQM;+[O_ߑOtX/izΔڒ9$]6'-uq:\K $virLk*`:*ukba7gEsz(4vl|XcimYs Dl^M>ȍ8w@jmŭlBIB# `pZtmK=MER$Ğhu,fῷ?0=o[s$3[#%>Ϸ|ٯ836Ə36ƻK[?0=o[s̿A7AOGAO]%G n-t}f__ k{L_{L_ #?nK[>/{5 FFs ۟7G&G nY=c?#ih?#ikHm #?n}1oi4oi5۟i>b~ ۟ogNHm2o_pgm?gm?w?i-t_zϷ|ٯ8o36Ə36ƻL4[?0=o[s̿A7AOGAO]%G ni-t}f__ k{L_{L_#?nK[>/{5 FFs ۟7MK(xgGe>f??0=o[sHm2o_pgm?gm?w?-tazϷ|ٯ8o36Ə36ƻK[?/=o[s̿A7AOGAO]&G n-t}f__ k(((((+<;|Q:xMcfZ&"EۓNy(?eh6ֺN>? lHI#!s]Vth^Ig/<^[yDVpb(LxNhJe ,q! c4pF"GԚ%("i"w`G&_:c[Au3:N7M#7@YTU;R2naY9aqdF =AS %m#6C5Z<22Cieq,-U#^9Ie+QO]D$@mɘ%36 Fq^%>oq~Jyp6/py55;_[m䗞eO\ꖲGиsق"&P_nh-kh ecpgDF&RA5ʃk9a`}NG Σee,wIBvw?ny_Q]FXdK{&m 2PvzǴaD&VfLL{U0}+Q{Kvd!rszB7cǃX# K%ѿ%0XeT( $$]G᮲4N=6HX'q42up02H8)-?o]0D|b N:2=*;,h%/$UEI'="Icm;Np})uS&+hdyR(bRI#TP2I'HH+ A(2sH(((((((((oW`m.$ U;3# uǚ(IC >֟T,|?'-o.ts4t'V18Mw@jt0C$1K4q;20Qڛ?ɨ@y} wκƲ9Xw$zg?6O3]*z5IpȱcH$}3{Lƻ>W }z{L?/##gkÿ?2?{LƏo[w 3d4=?lf/J;A3#?+ h~?6O3I熙+ hÿ?2?s{L?xxi'{LƏJ;A3#=n߀{8w9GG<4 LXygpd{LƘ*i?}rG=~{L?xxi'{LƏJ;A3#=n߀{8w9GG<4 =?lf/J;A3#?+ h~?6O3G##gkÿ?2?{LƏo[w 3d4xxi'{LƏJ;A3#=n߀{8w9GG<4 熙+ hÿ?2?s`F ?Ͻ/##gk|j3OG=wgG4{zݿpsxxi' 3d5Wi _=dGg;熙_GG<4 C _=dG%~޷o=;##gh{L?t_wgG4Wivù=?lf 3d5Wi _=dGg;熙Fdu?dqS˳\d1^Er弖Mg,vCf.f(Dd"Ccgq[h\G:\i6e%T *J,gWOE,>'oh肋QIY%r?P)nrI淆lmS>SIxm-숖+X+(9bZS@p+m6XKmm&N;iF}ӱk 4~ђ&ŤxKDU=[=AVVۻ_݁M6q5ڬ0K%j*5Byv˷'5U?kmwkoi1ƩqzBVV7Rw՞\?@L4#rV݆<*L㸸.m 2k=9s(Pr6ŹnPIQV6gYZǝ[Dƹ98Ui52X{-NL%6ʰ j]o.BS.fJxB%̈@+m--- 0DEQ¦`QE ( ( ( ( ( ( ( mh \6usq϶ӥ0Dbul#l8$g@qGTyT֖o`Xi,a&HoXNCp{@jmt?SvdQE < ٯ/%,?2Fz.ͭVѿ:n<9ylZeW͊Wd h_r(b(9)_Fsjߝjߝt_h_rB4/w 9W=/e>;EFѿ:п .?h_r֨{)9ߵ?oΏ?oκ/B4/w 9MOenl\ziG֨{)9?oΏ?oκ/B4/w 9G!T{?=ڟz7Gڟz7]! xRe>;EFѿ:п .?h_rQSsjߝjߝt:?B4/w 9KT{?=ڟz7Gڟz7]! xSe>;EFGO~t}~u\?п .?/QSsjߝjߝt_h_r't5PD7x\ziOT{?=ڟz7Gڟz7]! xQ=}wO=O= xQF;EF'԰0:Qӷ$8I,7]H&s+B)QE(((((+Σ߄#mOjG%I@M8c 5QGTãGXkqAMj#$cnx"E$dmz N$vɨ@yK"\x#e * xzð+v W[s+Lx\g3.c ?4,]7 kT5G kT5Ghfi_ X+v WM$??_Q$??_Q!s?ٚW??3J] OT OT}f{)f@(ҿatCAO%5| 3j)Q4CL4,Gf@+ j/ƨ j/ƨS9+v Q.c ZK?ZK>D=g3J]fi_ XºoA!֩jA!֩je3ҿaٚW??H5H54CL4,Gf@+ j/ƨ j/ƨS9+v Q.c *mjx aLCAS%Yg3.c ?4,]7 kT5G kT5Ghfi_ X+v WM$?_Q$??_Q!s?ٚW??3J] OT OT}f{)f@(ҿatCAS%CAS%Yg3.c ?4,]7 kT5MBֵ>ʏe3ҿaٚW??H5H54CL4,Gf@+ j/ƨ j/ƨS9+v Q.c ZK?ZK>D=g3J]fi_ XºoA!֩jA!֩je3+;(((((Bc|L"h0M ^x/ʿ+`kjZ.6g: Q4Hu=+[x/\knȅ$sUjEP{(bK4%U`d*ޥiͣYAh.Yc$r VqUƁ=%-^2Rn17!z,>O F=XTy6HllR3a/Tէ W U9e2gs(QOBO Zཿ{k2y*v2gs(QOBO Zཿ{=Òc/iGw?r5/Tէ Q^AO 9*v2gs(QOBO Zཿ{=Òc/iGw?rf3G3㕫^AOuF,?>S?ޏk0QiGw?r? ?5ijǨ~J56gs+SSV/o=G!z?^zk0QiGw?r? ?5ijǨ~J56gs+SSV/o=G!z?^zk0QiGw?r? ?5ijǨ~Jz}Oj?3㕤| i'?ޝ^AO 9*v2gs(QOBO Zཿ{=Òc/iGw?r5/Tէ Q^AO 9*v2gs(QOBO Zཿ{=Òc/iGw?r5/Tէ Q^AO 9*v2gs) ޢ's+WSV/o=M3hyA{Qp;Oj?3m?V!z?^zBO ZཿaS;9F? jjǨ/Tէ Qp;{Oj?3m?V!z?^zBO ZཿaS;9F? jjǨ/Tէ Qp;Q^AQEQEQEQEQE_|/xVܝN{D2<`El#ku|q\嗀l= "A<%{Z'5GQo+<")3Y>{fVEΥ fErp!**:֞8Ai+M\_3ne*w3.0b@(e4 xl+n/6$yZb8oɮo ڞٮF&€πF[sxoSYЬ5 )ZTCWOqp}*[& g;imЬKTƇ~9Lmt}:M˵a $Qy'ט݌ _VNj1mYfR GIc+NEAwyPIFjuĽK?'ϲG9e2q?gp&a2lb\~7q֥ ..=Y!H|>ckX^ bIVn^Ggyc [ֱKԌ\ȬU 71Լ|, H4?ʲ*GK hזKiQU)gݹу `@8qM[%^[9x|}--,zu44h^66d[ןƝ6ZL-(DO"pÞ0rVRzԵGlH\JF2DŽv$L l໶R24UMQ15_WhrizL˩:B ;7 ʌ$?6Ogԥ%`d.K1T*0$ Vw_GrMRɂfC#Z~w#dhS877WK3L:ī$IX7wP5;}He $oe FsںK hpMm"^LdOp8/g!"7 @98~]5Zkleޣj}vewAj2>#(J.->nʏGa$)yVj-e(2*ll2w݀95YyF|b;y'<_W~'?u˘Oop^M> ~,$FSNU6+s#NsK;;|pSYP<<7F3xx{K1}y]=6g׺1J6F8#bEyA t_+l"Gp5"%]]F"A*p.؜.6zD7e/dUU-dCn2;q[W .`X$; BH, w0`r XZ =,t#3Fz`՛Ry}? [l"[_6erO)ey^H<* daF$P5ʹwmᛸm@19@NGUC|GJ]%%4"S,j$ qRzz ,~c+kSܚk^;/>&7ĩ]=oy7ھR;99 IیRj2)y5{J֭p `x5 ,p"#;a{8ğ>fP$sm"IlGv%yZ*'GB ]ݵ5袊B ( ( ( a|ZBwf R0*\9Q[xoNgFK<"x1Gꃣ0%}4k[+vKTIh`T #ϖz3OV֢oVgGR,3rBNO<mDvMER_/m`&Ib]Xpvs;'4-%x.]cX*A<?x'Rʯc^5o߻o3GAmix'3$5?v?5o߻o3NgL?x'y;~oݷ3?lfF|G#:gIhfc5o߻o3H/PI''vfψ玙A1a)L?Ən?y'Amhտ;~;3$43?lfn?y7CU4hjvfψ玙??2O3G7tv?5o߻o3NgL?x'yտ;~oݷ3?dfF|G#:ghfc>ߪ7@o3Kv_FD/dO3Kψ玙?ٻ [vw#>#:ghgL?~oAmhտ;~;3$43?dfn?y7CV4hjvfψ玙??6O3G7tv?5o߻o3NgL?x'yտ;~!X`4F|G#:gIhfgwEWvQ@Q@Q@Q@s^=K ZKnm@lxGp #=+JC}7>5K;O-n iiukm}mm?#)EdrqGJ۬oxtx+6/x7Yw3F>dn0TqFE> Zͥ[yg$E`pGLw u9mGw/ w_yfX!` )5@O'aQBC^&Rr `qS_xauM1CU.KI4hfߏ68' wh?tvUN{q"·2@{p VRTy⾽8 %v;rvuDdT 0R/`binMA :dPG55ߎ#Y[%׳ݼGPH챶yp*p>iF]YCr$?.UđS x a5-WSçx]eaosSv=?D9Ѭm且ܲmkrV+vw)s!,*Y)y=5[1nLmK.z+6Q4sj)eԱD NII5WUݮZ<[.\< TZQq<]n_EXuXQ/!QyV98sT~%v2_ D%u{qykGi6a֭uhu xHǒTpI d;b `Gw"|T|5+7uuO%-:7n.>i1ER8_.i5څsulb/a@J #+~n Ė9Y Ûo-| [#8OTۛ9!{c8 eGh}yyZqw̞zB@$f8Q$aY̐VYcE$nacxĶY?n!H?7E$hPAn!Y𶭨iRizwnqK5n2ybPpWj j {;:{IPK% A".GUt  $(,I=6o gMVMf6͑C!X$w6um5226:o~ ,a gq{l0ϘqQbR fGV^Pћ;p3 n9^氬cAio%ńֲ^5[(b$b0<OQ~xETեP3ooo* ( QR;]= _y0kۗ9m$Y#$ 𻱸2j[7 [}2+ɘ,H$gs$i fĺ[i66q5*${[$acˮhz.k,~C2 ~26e,3ީ^ Xl6ofM`nB6EjpZW0$G24CCjwZ?nL6TRj舥ئd$3 լn[ZSרAbu"iO0)~:+Lw)܏Z:'[qC S' 6 +%ju&\ʑy g#w0:g5his{|WO+3j(0((((((((((((dX~֒fU2RX38i6^j:{o} ;:%{29!׌NE7li:\4C)V#(l13kb \埃-5[{PsGm`2/n8[ܚ(6XtF_:lb B@&TU $xJ+(s0DLw1ul9sZGASUδ%?a'SV0TGASTOQ|7o?zE f@I(TU $/!oT5G!oTv_j bK5OXO1ROQD?+5Eݿ0%?a'SV0TGASTOQ|7o?zE f@I)QKBz<=B#ީ[j*2??qo?闽v?,?a ?j b"? /ƨ"? ꟕnߘ~SV0Q f@I*_B#ީ[?zoƨ"TU $Y*7~VjB#ީ[/H,?a ?j b"? ꟕ7~Vj~a/K5OXO1G%?a'zK?zoƨ >* ˰ =釵;SV0Sς*mx ޝD?+5Eݿ0%?a'SV0TGASTOQ|7o?zE f@I(TU $/!oTGAST_ ޑY*?,?a ?KD?_QD?+5Eݿ0%?a'SV0TGASTOQ|7o?zE f@I)Q? BN?§"? ꟕUkzP:[?ʋ~aџj bK5OXO1ROQD?+5Eݿ0%?a'SV0TGAS%GAST_ ޑY*?,?a ?KD?+5G!oTv_j bK5OXO1ROQD?+5Eݿ0EnQEQEQEQEQEQ^I߅>#>.>4 O\̶";bpFЩ=/]<;\;[[!yn1n+nǖ̀#c{mY[Yʳ[\Ʋ"ua#\k-5I-I Y 5A^d9KmƑ:`Q7,?V =I^[GOQg>dc'7=O֭.f,;)a7'xr'yji`h)4ٞgvT# 8(9"( 4^!:[η0 nCq`Otۧ[ b3%6ݡ0h'$n㑟Ju<$Cqn A"ppk,!ѭF,'IF 򬭅SRotɧC-z; +rq U  ^?!ޚ .>Q͉4 *Zf=7Cme ##Fq%X~PԠ>sFexb6B#;Fb7rFWj^|ձ޹xT׬?|uiZH.1-ʑeb 03[ ehE`}隆:MHqK[%R!bB]1\AM xās U+06Z-Gal`FE >ԼGeBfK4`B d H'֝ &} Ğq#:]=\eÝJ&Vh-j KdO*td oK I-K]Fo.W; (/;7]j}5)˸d}OoZۘ5puS)Me\"P)`GVGni{p]3M46:^gas-Sr$;=#VW۵W0n*H rG`ᾧ> fö\-nϙ_A@GMIm|Oc);=f$kh#9Fz&;3IKoNN>z}wW_?ΒVֶӽŬyKfqLXFϜm5gM4cFIKq!FR,ms~Htұ/9Z6v߾%.IXDN$ G+$}Aeb,2ߓ4Rcmȥ2> JAzx4hohmA'_, 9\ȯ!K{\iYױXfx͒[/Cv0#tk4 D#YL: N}ėhQ@Q@Q@f:}X-Ǜah-p6 q8*|S7]X Ʌ '>:2爴-ZIyDҘ(KGM3F@8E^mt?WcfrǦMVPjkO#doQDi+mt?Sɨ@sx˴xO5mb<80qȨ1_j?ݷNOIPan4 *cFvQoi5C E3UZv;LWmǨ vz36Ə36Ưp'3 vzLWmǫ?#ih?#ih3 vzLWmǫ?#ih?#ih3 vzLWmǫ?#ih?#ih3 vz/ 5|ހoj??>1_j?ݷ&}㿷?>1_j?ݷ&}㿷?>1_j?ݷ&}㿷?>1_j?ݷ&}㿷?>1_j?ݷ&}㿷?>ϋ[Q}oomN vz36Ə36Ə=;LWmǨ vz36Ə36Ə=;LWmǨ vz36Ə36Ə=;LWmǨ vz36Ə36Ə=;LWmǨ vz36Ə36Ə=;LWmǩunW!FF8gc Q5WFF8gc Q5WFF8gc Q5WFF8gc Q5WFF8gEEPEPEPEPEо(]uWRi<&13rFA"Q'W= V&z?4gu jߠ3b 8'W_׭Z_W]1YwIٙW%cy#SjNERQEQEQEQEQEQEQEQEQEQEQEQEUY;{l%.oN>j~ uN9^I9"\F@gs k[[i-v,F@C5p>Փlʿ[VMc~&C5 `{QE"8-nf'1\:SeB#ڤHmCDAo>g;ˁ]NcY N;=3Zxxi'cEo#yF&G ni-u熙_GG<4 0sm_z ۟7Xxxi' 3d4{*;-t_z'##gi??6O3GS ۟7G%G na=?lfGG<4 0snazSHg'GKn}3_GG<4 LXygpdP`Hm #?n?6O3G##ghT?9v7?/=o[sHmOGG<4 =?lfeCcs #?nK[{L?xxi'P`Hm #?n?6O3K熙=zK[?0=o[s 3d4=?lfeCchI:w%G na`x0_#Lgޗ 3d4{*;i-t_z##gh{L?ʇ=N&G ni-u熙_GG<4 0sm_z ۟7Xxxi' 3d4{*;-t_z'##gi??6O3GS ۟7MK(xgXxxi'oFLgP?NƏeCcw #?nL4[{L?/##ghT?9v6/=o[sHm?GG<4 熙=zK[?/=o[s 3d4xxi'P`Hm#?n?6O3G##ghT?9v;(MŠ(((((+<;?u/U? L#cN.vrqzijGm,$q;}IY&iR(ngvTzkW^-䰗Pk9c7s1B#!Xuȧk>#@=Q,+O), V Wie8⎃G“A*MeaH.`dhDH!'>W1Ʒt{h;d/gVm2{dI\4Q!Ku8+aka_Chukj\-Ūo8FdE0(;ZZkVB2F#Mi<7vp ǥrR:ƫ$Ate$7y-5J}wb˥&-;u%R䴵-?OfQExN{[{r/=H\\KR֌lm.P+w7W=Zēq"eodEF|Q Ǘmv͘f5Ovȵ4 <\!,3lyRC98WX:4s'xY| 恓#yIluv/<*{<`8A&*d$8 7ĵO^mkUO0Z뫧۬Mot4/S"C%HUK(@QEQEQEQEQEQEQEQEQEQEQEǚ(IC >֟\wknn ԷtNDm':6u ,$R$w!GsN`Ojlm_xK7k qg^4d0$ ,C'!˸=C5>ݢj(V$]K",y#$I4J;A3#`Ybѱc$`GXkO=B8K9k3ÿ?2?{Lƹ??oΏ?oΫ^bY _=dG%~rjߝjߝRluwgG4Wi'/0Y _=dG%~rjߝjߝRluwgG4WI32?A\ڟz7Gڟz7GԼg%~wgG5~t}~t}K=Wi _=d\ڟz7Gڟz7GԼg%~wgG5~t}~t}K=Wi _=d\ڟz7Gڟz7GԼg%~wgG5~t}~t}K=ԟx{SciG?{Lƹ??oΏ?oΏy:J;A3#?+ kSFSF{cÿ?2?{Lƹ??oΏ?oΏy:J;A3#?+ kSFSF{cÿ?2?{Lƹ??oΏ?oΏy:J;A3#d*Q{L?2~޹o?oΏ?oΏy:J;A3#?+ kSFSF{cÿ?2?{Lƹ??oΏ?oΏy:J;A3#?+ kSFSF{cÿ?2?{Lƹ??oΏ?oΏy= (4 ( ( ( ( ($ŝX*l"65@J䝥&=n>.\Ai^kxc6e`I-T>ͨ_m 7Or<ԅ9J[fkm>ZKIw<+ktEjd\uOtƾ|g̡@oq4S}y+tZ+wv.n.Yf}`$GI;}2F6@'-}j[]^c@8{WSdd7=RP ;>)C2'C| u1Zƥ_[Z֗= H ul*Ox9;&J;Exn^,,a4YдM-wɨO324HKd (dΦj2z4-fEinѳ& x;OZKߊ_7y^zx餵Mƙ\YEfT0Hb\ysk jڵ:ͭ]Egey 1ӐrAJׯ ^z%QH((((((((((((+Th/aBԿ#Q??9gFaBԿ#??9gFaBԿ#Q??9gFaBԿ#??9b|M ! oiN#B70O??G'~_xsGN xQFaBԿ# ng?};?B4/w 9G!3-K9?`j_sS#B70\>aBԿ# jg?};?B4/w 9G!3-K9?`j_ƨsS袊N(((((- U2I4)zS*8Mumr{K# "`qW5MkA졊,WNOAN8m{h#khbzYA*5`GF1K kZ+V!.8܎c_ΚWGYcEsZ$F{U-$o= GSW1n&563.dO&,!Q+޿_=qgq$88eq;23#y["6sfV#?>P%(њly0AT|?)=x#H%*`A8M82QE# ( ( ( ( ( ( ( ( ( ( ( ( (ojԾ=mVF(1=G`mt?W |Mj)rEmjJ`u&AСu8gODѴMER?DӠ,p{-\`+BMJTK`T H'M7iGw?rVrWlڥ=56gs)N]W?Q;9G==56gs(GQ^s;9F? Spjdz_<QٌQLSpz+vgs(QrEy? Oj?3}N]#Ѩ9QiGw?r˸{dz5;Oj?3m?Q9wlFiGw?r5>.grSvs9ӹm?Q9wlFiGw?r5>.W?Q;9G==56gs(GQ^s;9F? SpjdtWm?R[DNQ9wlGiGw?r5>.W?Q;9G==56gs(GQ^s;9F? Spj(MŠ(((((EPjSjq3nHdSڮ|]㋟Zru;w=]@niͣYAh.Yc$r VqUƁ=%-^2Rn17!zVxOWԴ[iBoCW zTӛyw R8g.=teM "+YX#avK(bG8'֢lA-]qg-8\>/-GF:Qo#byDR2̸$`u: 5E|GgqylnAmԄ L{pd?;Swb5l;iGcZ% ̀H$uh|md,,ēĢa d/ XaTyg'+^75;NIa{a mX]A vvAER(((((((((((K65c-][$ 9R+Wkq Z]'s1HpS=EPteh ^ ˷u\mt?W#/o|IZ[:\ڥ͌MCŔ.2I | N MERyuNG$>llR3a/Tէ UyuBmoa_)f%Հ9oݷJ ʭ/9b!z?^zBO ZཿTտ;~oݷ+']{? ?5iSCV4hjvf_̿~oSV/o=G!z?^zhjvf [Ҷ+v-jǨ/Tէ UO [v-e|]{j7Tbj8{z=Ami #]lW/\/Tէ Q^AOoݷCV4e|]{? ?5iSCU4hjvf_̿~oSV/o=G!z?^zhjvf [lW/[/Tէ Q^AOoݷCV4[ ?5ijǪAmhտ;~;b_ bn/է glozw!z?^zUovfCV4e|]{? ?5iSCV4hjvfb_ b!z?^zBO ZཿTտ;~oݷد_?uط^AOSV/o=U?5o߻o3GAmi ?5ijǪAmhտ;~+b_ b!z?^z gj۹oݷ7 vvfb_ b!z?^zBO ZཿTտ;~oݷد_?uط^AOSV/o=U?5o߻o3GAmi ?5ijǪAmhտ;~+b_ b!z?^zBO ZཿTտ;~oݷد_?uhΰ(((((rӼMqMe-[ rsG\|/x6ۼP HJ[/隊L THKu-)FpG_x;FԬ+-YZsFr6wOvyoRլm๚ sȥQKB+BȽ.AO?;Lx㿨GKV6Q^-%ikm̥Nw%H2W!iQ;jw.vVi Fہ8U=noim(’Iʬv}&\5XؤLkXY!cI}?/nlOa-#L-TF 90@5N:.&do ki5 B`J3@<1OxsNf8gYZ4bQXHr5;+I[m2V4jUrvCL%hd)Rw*8$ddgGֹ(~Wì[^Y_Ϙ$*\]rAKro-mkWX]1Px;[*@CXuMFi+Nbm)_;?&IԮJHFK|0 G8oe+k;r hWX]#Aywo0@đ)H@OjZW'FD|&{8d!߱X$($9z,5颙{gTWo4/ѕ#s]6*שi-m6k[WM5%ݒ@JAI~sľnlE; )QEQEQEQEQEQEQEQEQEQEQEVV;]],dm "7P0<:Z5/R![]BH3廩U rF= Ptc ^o j+YVfy.o)$u*n0'$/$lOƋ'&k;""=A#僠#>9S O(s;'4-%x.]cX*A<?x'REP&6 ˀ'd ?zw BXUcJ?2O3G#>#:gIjoHuӿ_'];lO6Aψ玙??6O3SAޝ?O?G6'-L3d43?df];OHuӿ_'Cψ玙??2O3SCޝ?O?G6'-L3$4~"b>S'O ?zw _T^G6'-L3$43?lf];?!N|~lOZ#>#:ghgL?O ?zw O?G6'-L3d43?df];?!N|~lOZ#>#:gIhgL?M ?zw O?G6'-L3$43?lf];?!N|~lOZ_ 3?df:7GxI!N|~lOZ#>#:ghgL?M ?zw Cޝ?؟ 2F|G#:gIhgL?O ?zw Cޝ?؟ 2F|G#:gi~"Q!N|~u ޝEψ玙??2O3SCޝ?/$:/͉ S gL?x' N|~Huӿ_'Aψ玙??2O3SCޝ?'$:/͉ S!gL?x'!N|~Huӿ_'vQEyGXQEQEQEQEQEW |!㛟ڥ' rHwUrw7RGpwUN-cLQLQPwh5d r9" $non,_QF`2 }:twUg[I^3 .GsTUkgÚ)HdVؠ9b@jMkm C&}X}V:4pY֡uY `C2*#qjFA@9QG?Z-{Sm^_=mA&3PaqͿksv e`$62=995X5vM*;.孚Ѥ#Im"EZzi^Bh:ikZn y9J rIU>7Ơm㼹X,!Q"%-;:@y "r &{8Ұctu)-^L mYN{}&tP<g- EQ #kRGii3 dlz3 >6k'VJ4Cc4W7w=Ptfum-uuDk4hSL079rc+mt?V%׌tAV̷W7W2A6@d/)$ ~UA C5>:j(LJ[)Ym 3(DW`Cn$|c;[xe,(eA ň<`g@SV0W UhsJ4﹏?;[j bK5OXO1Wqʿ<n;^ 㵱 f@I(TU ${\Gn;^ 㵱 f@I(TU ${\Gn;^ 㵱 f@I(TU ${\Gn~IA%?a'E,>cI?_0׿wnK5OXO1G%?a'?_0׿wnK5OXO1G%?a'?_0׿wnK5OXO1G%?a'?_0׿wnK5OXO1G%?a'?_0׿wnK5OXO1G%?a'?_0C]oi;ZZpv1'0Y*=#WZ}{7TU $Y*=#WZ}{7TU $Y*=#WZ}{7TU $Y*=#WZ}{7TU $Y*=#WZ}{7?]Q;[?j b*c.r$s<(_9i2;Gv@okcSV0Q f@I(_9i1;Gv@okcSV0Q f@I(_9i1;Gv@okcSV0Q f@I(_9i1;Gv@okcSV0Q f@I(_9i:((((((+t/zq3O,%G(!8㓊(#z=׈|=h=nnf :spszUMWEMa k5AbyPW*6kK]<;\;[[!yi(Ks2cgkAZhMֲEsw5kmoJ-7!,~bmAj˳{%V krV^i%FqNHjt56+{umB {QwKeodܼʲI %f H2r՗~\ԭ In'Gm)oql [PQ"x7J['T4#,#\N2I'X'լ9|; X_xcY!i.+ENFV*Byv͋ v֟ij!gG*/}7hZ$zF'8FX1'DQ8g q>⋍oKKQm"i˘sa^FٴB]q.KaM[msK!,~bmAj`\)QEQEQEQEQEQEQEQEQEQEV=KX&ԭl=Ne!Y@JFqAެG]uL02@`N2yuAј~׭o zΣ؈̝$_3A]\mxOլ4Iy})"x9 DdUC5=l&)LwiX($I1P"?oZXyv^i歶Gg99&+@MGB^U҄/?]qQ;Tu]G&+@MGbo=W!{o@?緵ޯ$;ϟq@SE}O\bo=G&+@MG{zr}O\y?]qWQ Q5Q rC?]qQ;Tu]G&+@MGbo=G/;TuGq@SEu5Q Qޯ$;q@SE}O\bo=G&+@MG{zrh8`_>ڧ ?鏋[Q}oomN vzoW_ϸv">ڧ ??1_j?ݷ&}=_Hw9>ڧ ?<j.+ vzLWmǨ9!j.(?&}?1_j?ݷ@s?ϸv"LWmǨ vzoW_ϸv"N:ژtEu?5S_=Aݏv@s?ϸv"LWmǨ vzoW_ϸv">ڧ ??1_j?ݷ&}=_H9>ڧ ?<j.+ vzLWmǨ9!j.(?&}?1_j?ݷ@s+:Š(((((ÿ |G|]|isLimùEpvS#'z=7Q|-ZZZnh@T*N3cQ֡ųhAǥjfrN[ rrU⵵]_Od/!3mQRڽě!@ l`I$}oXٍ: ݪ_pJf$g :<|EK[-3o>iW268ӵ;=Z],dܽI AAU|E]_[jVY% P 8Ɲ4#/zv:>{of 7M Ԏ6;3ApOJnecZ6夷P[ΜDJE9; ]R L*zY+/FI0Vݜ_X1(Z;]sv]J{|Gpbq ̓i3^<,f0 1*X.OQQw~p=vwNU -81 h>`x?e-SY]EgӴ.{2] 4k桍q[;p>V+X0B>?R)3UfcRVGs6=B@/ٮQn 2= U^5HR1,*0YcSZwYZU-ׁ2O^7Sn ,ɹ{2AACնB$TQE!Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@s)M.Xold…ÓtRt ;ab;a d(ꃣ8k6(=0jzVg\xQ'zr#N1]muY\KkZuNGOmt?S=[dQE %G nzP˕{iSW{L_{L_ #?nL4[񺿬}O_pgm?gm?w?-tazϷ|ٯ8o36Ə36ƻK[?/=o[s̿A7AOGAO]&G n-t}f__ k{L_{L_ #?n.C9?o?[s?Y=c?#ih?#ikHm #?n}1oi4oi5_z ~۟7Ge>fῷ?0=o[sHm2o_pgm?gm?w?i-tazϷ|ٯ8o36Ə36ƻK[?0=o[s̿A7AOGAO]v+) tK[>/{5 FFs ۟7G%G nY=c?#ih?#ikHm #?n}1oi4oi5_z ۟7Ge>fῷ?/=o[sHm2o_pgm?gm?w?i-t<]>mϨt}f__ k#{L_{L_ #?nL4[>/{5 FFs ~۟7G&G nY=c?#ih?#ikHm#?n}1oi4oi5az ~۟7Ge>fܢ+:Š(((((úM'ݦ1nUh>R$Y:8[9^;ZӬ&(bxt* 22ry:L5_AO'PJE<&'i& Q6f:(9 Asvc1uu,^om?f G*xcZŗw~Z-"iGvBb?|/=qQNB8 [k᭞vhX[kNۓ kt-~D1iga 7wksCDUGF>O oC%]k#w#Oi -W'T |ҏmZ`~oS1̖^i'u ƓG-y#yռӼdb\  ; xuOzl"6wɐyo oe3TU_XKEo{_WOcbu0]?lMϏ$<F-\灿wa}GK&OŦS]I[ @|B'Cd9?_ZmMˣyYǚJrA='&Z(niY%(C ( ( ( ( ( ( ( ( ( ( <\6:=ޡ.n$HD7N|AO|G`ny[˭rڭĺ\IlJFx5#`RA;Cmt?T mK=&)1HחeLҶFOzWi?Pk7'О*i|DwwBi+^DM?GPQG" ;ޏ;ޠDdwwAE.z_BI>_BԌD?+5G!oT?&}?1_j?ݷ Lg!oT6?FoSU/&+@MG^5Sj9mǨ -LOB#ީjB#ީj Q5Q|@ZB#ީ[?zoƩ5Q Q"? ꟕ7~Vj Q5Q|@ZB#ީ[?zoƩ5Q Q"? /ƨ"? /Ʃ5Q QFde=-闵;7~Vjx 5߶LWmǨ -Lg!oTGASTLWmǨ vzOQD?+5O vzLWmǨ -Lg!oT5G!oT5O vzLWmǨ -Lg!oTGASTLWmǨ vzOS[Q cſ^/&+@MGxfB4]G9?=_'!oTGASTLWmǨ vzOTOTLWmǨ vzOQD?+5O vzLWmǨ -Lg!oTGASTLWmǨ vzOQD?+5O vzLWmǨ -LOF oSTB#ީjOhH#w&+@MG_37~VjB#ީ[&+@MGbo=Ejc?zoƨ"? ꟕbo=G&+@MG_37~VjB#ީ[&+@MGbo=Ejc?zK?zK&+@MGbo=Ejc?zoƨ">ާqoƩ5Q @w ۷%$W1j_am*%V2]%R/m|R;pA1#<\nRmk)ЅsujЅsu s_gm?gm?w?-t_zשϷ|_fῷ?0=o[sxIXO m2o_qgm?gm?w?-t_zϷ|ٯ8o36Ə36ƻK[?/=o[s̿A7AOGAO]%G n-t}f__ k{L_{L_ #?nL4[>/{5 FFs ~۟7G%G nY=c?#ih?#ik.|oA>Ν ~۟7Ge>fῷ?/=o[sHm2o_pgm?gm?w?i-tazϷ|ٯ8o36Ə36ƻK[?/=o[s̿A7AOGAO]%G n-t}f__ k{L_{L_#?n.K!o[sY=c?#ih?#ikHm #?n}1oi4oi5_z ~۟7Ge>fῷ?/=o[sHm2o_pgm?gm?w?-t_zϷ|ٯ8o36Ə36ƻL4[?0=o[s̿A7AOGAO].Z'QJ?[s-t}f__ k{L_{L_#?nK[>/{5 FFs ~۟7G%G nY=c?#ih?#ikHm #?n}1oi4oi5_z ~۟7Ge>fῷ_4{I?@5_z|a{Lx}f__ k|oqqq_BI>_BԁQV[?^,zZ__duumŻc%½w#93揭/as#Σέ,nXz>}_;ޏ:ԱŻc%F1|<wRKK{'k-K/G[?^/asΣέ,nXz>}_;ޏ:+5Yяz[?^/asΣέ,nXz>}_::ԱŻc%F1|<wRKK{'k-K/G[?^/asΣέ,1^L3/as#Σέ,nXz>}_::ԱŻc%F1|z<wRKK{'k-K/G[?^/asΣέ,nXz>}_::{>Fsg?-K/G֗0O{V[?^,Z_>/G[_nXz?Ա}i#duumŻc%wRK=byյ-K/G֗0O{qmsqwRKӣ/~ϜQ=K]ͥ\Lo%ª иr>]-Ci'71˚NGTUz?!\t?!\Hjߝjߝt_h_rB4/w 9^֨~ѿ:>ѿ:п .?6/m1쒠\>GO~t}~u\?п .?Z~ѿ:>ѿ:п .?h_rQSsjߝjߝt_h_rB4/w 9G֨{)9ߵ?oΏ?oκ/B4/w 9G!T{?=ڟz7Gڟz7]! xQ=}wO=O=x'CY|BҝF;EFGO~t}~u\?п .?Z~ѿ:>ѿ:п .?h_rQSsjߝjߝt_h_r ?0?ҏQSsjߝjߝt_h_rB4/w 9G֨{)9ߵ?oΏ?oκ/B4/w 9G!T{?=ڟz7Gڟz7]! xQ=}wO=O= xQF;EF;EFGO~t}~u\?п .?Z~ѿ:k\RŔU xRwa//QSCY iW,Wop*`;WKU"X b6eDA1ם9sItYX>_BI>_Bԁ.c ?4,]7 kT5G kT5^hg3.c ?4,]7 kT5MмjZ@?Q!sٚW??3J] OT OT}f{)f@(ҿatCAS%CAS%Yg3.c ?4,]7 kT5G kT5Ghfi_ X+v WM$??_Q$??_Q!s?ٚW??3J] OT OT}f{)f@(ҿatЙ<^A!֩je3ҿaٚW??H5H54CL4,Gf@+ j/ƨ j/ƨS9+v Q.c ZK?ZK>D=g3J]fi_ XºoA!֩jA!֩je3ҿaٚW??H5VAG^}f{)f@(ҿatCAS%CAS%Yg3.c ?4,]7 kT5G kT5Ghfi_ X+v WM$??_Q$??_Q!s?ٚW??3J] OT OT}f{)f@(ҿatCAS%CAS%Yg3.c ?4,]$#f֧ j$??_Q!s?ٚW??3J] OT OT}f{)f@(ҿatCAS%CAS%Yg3.c ?4,]7 kT5G kT5Ghfi_ X+v WM$??_Q$??_Q!s?ٚW??3KY)[tR> ºoA!֩jA-YwgGhcRϦC$2]41,˵[܂so_BI>_BԌQiGw?r? ?5ijǫ~99*v2gs)``] /Tէ SSՠǨ~Jݧ56gs+SSV/o=G!z?^zk0QiGw?r? ?5ijǨ~J56gs+SSV/o=G!z?^zk0QiGw?r? ?5ijǨ~J56gs+SSV/o=G!z?^zk0~רNQ;9ZCVsM{=Òc/iGw?r5/Tէ Q^AO 9*v2gs(QOBO Zཿ{=Òc/iGw?r5/Tէ Q^AO 9*v2gs(QOBO Zཿ{=Òc/iGw?rnq&w?r ?5inGէq '{{Qp;Oj?3m?V!z?^zBO ZཿaS;9F? jjǨ/Tէ Qp;{Oj?3m?V!z?^zBO ZཿaS;9F? jjǨ/Tէ Qp;{Oj?3m?V!z?^zBO ZཿaSS#Q ӹm?V7TDfڴ;A8o=N/Tէ Qp;{Oj?3m?V!z?^zBO ZཿaS;9F? jjǨ/Tէ Qp;{Oj?3m?V!z?^zBO ZཿaS;9F? jjǨ/Tէ Qp;{Oj?3aݾԔ#R8 /Tէ QVxmnl2GrTjJ{>xdfhZleU8k;B tkfG/#Ahח6\n=[AnM[An _oݷCV4F|G#:gIi~"u !0FO3G7tCV4hjvfψ玙??6O3G7tv?5o߻o3NgL?x'yտ;~oݷ3?lfF|G#:gIhfc5o߻o3GAmix'3d4wA1or[v$c]տ;~(߈t̀~I}?6O3G7tv?5o߻o3NgL?x'yտ;~oݷ3?dfF|G#:ghfc5o߻o3GAmix'3d4wA1oݷ7 vo3OgL?!߈01L?ڏn?y'Amhտ;~;3$43?dfn?y7CV4hjvfψ玙??6O3G7tv?5o߻o3NgL?x'yտ;~oݷ3?lfF|G#:gIhfcUe*uo3KvV߈Kt3?lfn?y7CV4hjvfψ玙??6O3G7tv?5o߻o3NgL?x'yտ;~oݷ3?dfF|G#:ghfc5o߻o3G9ڊ܏E;3d413Ǘ/l~PG7t:/ jRV}P\Lc8a v9ޔ48e3L)@0Z֯.|ϗc7=[AnM[And_O?G$:/{7Nj ?zw PN ?Q׿w"A{qjv@ohBէ (x~j{S԰iZ/&xt,݀{0 ҵk\^ u{Y} *(|gگ.|ϗc7=[AnM[An ?,?a ?j b>ڧ ?<j.+霞gA f@I)QW.gBO1X>}O\r24L:"{I%?a'SV0W?;TuGq@SEW0:K5OXO1G%?a'ϸv">ڧ ?>Ga&tj bK5OXO1\q@SE}O\}^L?,?a ?j b>ڧ ?<j.(釴Y*?,?a ?s}O\y?]qQz?i3xxT[.Ð?$K5OXO1\'?<:"ϸv"{I%?a'SV0W?;TuGq@SEW0:K5OXO1G%?a'ϸv">ڧ ?>Ga&tj bK5OXO1\q@SE}O\}^L?,?a ?j b>ڧ ?<j.(釴Y*kxTb.9z?Dӵ>zĺ"{I%?a'SV0W?;TuGq@SEW0:K5OXO1G%?a'ϸv">ڧ ?>Ga&tj bK5OXO1\q@SE}O\}^L?,?a ?j b>ڧ ?<j.(釴Y*?,?a ?s}O\y?]qQz?i3yU:2e hI)j bq8:vtE/q@SEW0:K5OXO1G%?a'ϸv">ڧ ?>Ga&tj bK5OXO1\q@SE}O\}^L?,?a ?j b>ڧ ?<j.(釴Y*?,?a ?s}O\y?]qQz?i3TU $[NdG ~dW?;TuGrx]7S'Ϝ~gw0%d̎7hqʷӸk66Zt]=Lg>^P)# 5^\Rj;QmJz?!\t?!\H˟5Q Qqgm?gm?zSbo=M#U:&z36Ə36Ə=;LWmǨ vz36Ə36Ə=;LWmǨ vz36Ə36Ə=;LWmǨ vz36Ə36Ə=;LWmǨ vz36Ə36Ə=;LWmǨ vz36Ə36Ə=:$fp@~{ӿ1_j?ݷ;{L_{L_pl&}?1_j?ݷ;{L_{L_pl&}?1_j?ݷ;{L_{L_pl&}?1_j?ݷ;{L_{L_pl&}?1_j?ݷ;{L_{L_pl&}kx3!.򜟞oz??>1_j?ݷ&}㿷?>1_j?ݷ&}㿷?>1_j?ݷ&}㿷?>1_j?ݷ&}㿷?>1_j?ݷ&}㿷?>xxF>bo=\wAOGAOGٝ&+@MGbo=\wAOGAOGٝ&+@MGbo=\wAOGAOGٝ&+@MGbo=\wAOGAOGٝ&+@MGbo=\wAOGAOGٝ&+@MGdh6 I?;{L_O lǰYTGٞ^6)um&w >cGpyvG\OC"qUکIBkk.iFM#.짫>_BI>_Bԁ ~۟7G%G nruuzRazbv"۟7\GGԣ݇gU ~۟7G%G nruuRvٝW%G n-uy}J={fu_-t_z+QQ(gU ۟7G&G nruuRvݝW%G n-uy}J={fuO6ӿ/=o[s{/=o[sHmWΣΣQlΫ #?nL4[|<>=:K[?/=o[s{/=o[sHmWΣQ3HmGlg\GGԣٝW&G ni-uy}J={vu_-t_z+QQ(a_z ~۟7\GGԣ݇gU ~۟7G%G nruuR{fu_i-taz+QQ(aK%uo$%?n ~۟7\GGԣ݇gU ~۟7G%G nrwuRvٝW%G n-uy}J>aaz ۟7\GGԣ݇gU ~۟7G%G nruuRvٝW%G n8gAݟNP>ǁ\Hn ŶI(|3gE)Uc YkJ)[iKaTp}s޺ZY81wW)ЅsujЅsu I-K/Y?jߝjߝzU3ڮƷ[?^+)739>k3O=O={UwRK?oΏ?oΏ{UwRK?oΏ?oΏ{UwRK?oΏ?oΏ{UwRK?oΏ?oΏaWc[-K/G[?^~ѿ:>ѿ:>/aWcL½[Em|wŻc%'O=O=fv5ԱŻc%'O=O=fv5ԱŻc%'O=O={UwRK?oΏ?oΏ{UwRK?oΏ?oΏ{UwRK#8>k3O=O=fv5ԱŻc%'O=O={UwRK?oΏ?oΏ{UwRK?oΏ?oΏ{UwRK?oΏ?oΏ{UwRK?oΏ?oΏaWcN_WSg;N1|ԱY3jnXz?ԱY3jnXz?ԱY3jnXz?ԱW=kŻc%wRKOڟz7Gڟz7Ge=kŻc%¿k~~]g}O=u*YO[ >/aWcǓM\ׁd-\"g]v@=]-yӏ,NoB5oB4?п .?h_r+v Q.c _! F0ݒT 9\f@(ҿa¯.x)\?п .?rٚW??3J]{ _Fx)\_B4.,=?3J]fi}%>nGЁQ*;a=O+kU(fTD *s }6$y顎W9f]ܞ+y4ΘoB5oB' j/ƨ j/ƫ?=7liS9y:A!֩jxՎ_cK: _K]Qο5>W$??_Q$??_W+zoOh=7{:W kT5G kT5\ƗAu?cL:8sSu_CAS%CAS%rgv3;GO OT OUliS?4Mο5>U$??_Q$??_W+zoOh=7{:@4&F_O,=闵;H5S_KeϯvcL:8sSu_CAS%CAS%rgv3;GO OT OUliS?4Mο5>U$??_Q$??_W+zoOh=7{:W kT5G kT5\ƗAu?cL:8sSu_CAS%5 O8?=2_cL:kg=:8sSuCAS%CAS%r_v/;GO OT OUliS?4Mο5>U$??_Q$??_W+zoOh?=7{:W kT5G kT5\ƙAu?cL:8sSu_CAS%CAS%r_v/;GOIhR6ajyaƩCAS%rWe ڟliS=j}H5H5WcK:zoOhu9:A!֩jA!֩j_3;GƙAu?pZK?ZK4M_vg_Úc j/ƨ j/ƫ=7liS=j}H5Ku6`D@+zoOh?=7{:X ikŒ'Orz)RQ<Ɨ3J@0bN73tN.2i1wWE=[AnM[AngaEp_oݷCV5JF^'{LL\/AmiUU 5o3G*yQ\Amhտ;~T'{Ep_oݷCV4}R{hhjvf [JAwWv?5o߻o3G*y\Amhտ;~T't??>-1hjvfTm/ [v>S=N࿴5o߻o3GAmhO ;+տ;~oݷS=N࿴5o߻o3GAmhO ;+տ;~oݷS=No2>YJv`hjvfTm/ [v>S=N࿴5o߻o3GAmhO ;+տ;~oݷS=N,*j mabU!TP1k75)u+ >Ш.mh1n0]N;gsϙInk W7]& W7ROF|GG-3?df|7'P3g?$5cw~髯먡Eޝ19>Ajd_x'3d5?$/ ?zw sb|??6O3G#>#:gjHuӿ_'];9>Ajd?x'3$57$:/ ?zw sb|?2O3G#>#:gIjHuӿ_'w~3?dfF|G#:ghgL?M ?zw Cޝ?؟ 2F|GAjdx'3d5?$/ ?zw sb|??6O3G#>#:gjHuӿ_'];9>Ajd?x'>38zgxTO?Hut&NNGsb|ȿ?2O3G#>#:gIjHuӿ_'w~3?dfF|G#:gjVRN ?; w~3?lfF|G#:gIjoHuӿ_'w~3?dfF|G_BI>_Bԁ?;[j bK5OXO1^*g/->?v@oiOX K5OXO1MOjvh?=#WZ}̟{7TU $Y*=#WZ}{7TU $Y*=#WZ}{7TU $Y*=#WZ}{7TU $Y*=#WZ}{7TU $Y*=#WZ}ow%n[_{7ְV] hIL=j bkU|Ös;^ gkv?,?a ?j bkU|Ös;^ gkv?,?a ?j bkU|Ös;^ gkv?,?a ?j bkU|Ös;^ gkv?,?a ?j bkU|Ös;^ 㴇OA7|[TU $VO]s! ={\G?n;^ 㵱 f@I(TU ${\Gn;^ 㵱 f@I(TU ${\Gn;^ 㵱 f@I(TU ${\Gn;^ 㵱 f@I(TU ${\Gn;^ 㵱 f@I(TU ${\Gͧ몥w2}oi;ZQї.ngBO1NTU ${\Gn;^ 㵱 f@I(TU ${\Gn;^ 㵱 f@I(TU ${\Gn;^ 㵱 f@I(TU ${\Gn;^ 㵱 f@I(TU ${\Gn7_< V$'K5OXO1G%6Dz.?LE->旅t:ArW@TQY`."VLq{;+Fٶܷ:d)ЅsujЅsu a?]qQ;Tu]G&+@MGbo=^/$;q@SE ;S Ο&}l~/ 5߶{zs>}O\y?]qWQ Q5Q rC?]qQ;Tu]G&+@MGbo=G/;TuGq@SEu5Q Qޯ$;q@SE}O\bo=G&+@MG{zr}O\y?]qWQ Q5Q rC}|;S)|j.+/FoMG鷽;&}=_Hw9>ڧ ?<j.+ vzLWmǨ9!j.(?&}?1_j?ݷ@s?ϸv"LWmǨ vzoW_ϸv">ڧ ??1_j?ݷ&}=_Hw9>ڧ ?ON1;SK+ vz/ F'?ޏoWgϸv">ڧ ??1_j?ݷ&}=_Hw9>ڧ ?<j.+ vzLWmǨ9!j.(?&}?1_j?ݷ@s?ϸv"LWmǨ vzoW_ϸv">ڧ ??1_j?ݷ&}=_Hw9cq8:vtE/q@SEtxڧ ??1_j?ݷ&}=_Hw9>ڧ ?<j.+ vzLWmǨ9!j.(?&}?1_j?ݷ@s?ι<.g?RWQ Q .r ~RO(9!ܛ66Zt]=Lg>^P)# 5T}F.Gx "כ6&TRJȧ>_BI>_Bԁoi4oi5_z ~۟7^e>9}c?#ih?#ikHm%bE?o(%?n}1oi4oi5_z ~۟7Ge>fῷ?/=o[sHm2o_pgm?gm?w?-t_zϷ|ٯ8o36Ə36ƻL4[?0=o[s̿A7AOGAO]%G n-t}f__ k{L_{L_xIT:w%G nY=c?#ih?#ikHm#?n}1oi4oi5az ۟7Ge>fῷ?/=o[sHm2o_pgm?gm?w?-t_zϷ|ٯ8o36Ə36ƻK[kI,}mϡt}f__ k#{L_{L_ #?nL4[>/{5 FFs ~۟7G%G nY=c?#ih?#ikHm#?n}1oi4oi5_z ~۟7Ge>fῷ?0=o[sHm2o_pgm?gm?vIhG*@m_zϷ|ٯ8o36Ə36ƻK[?/=o[s̿A7AOGAO]%G n-t}f__ k{L_{L_ #?nL4[>/{5 FFs ~۟7G%G nY=c?#iit1U$J;A3#=n߀{8w9GG<4 =?lf/J;A3#?+ h~?6O3G##gkÿ?2?{LƏo[w 3d4xxi'{LƏJ;A3#=n߀{8w9GG<4 熙+ hÿ?2?s{L?'##f/J;A3#UO݂d֏o[̿,|o*j&7+ *zup{jQ"J)gweo9O>U朹ieb W7]& W7R37O=O= xQF;EFGO~t}~u~k/wBSп .?Z~ѿ:>ѿ:п .?h_rQSsjߝjߝt_h_rB4/w 9G֨{)9ߵ?oΏ?oκ/B4/w 9G!T{?=ڟz7Gڟz7]! xQ=}wO=O= xS_:d[&Q=}O=O= xQF;EFGO~t}~u\?п .?Z~ѿ:>ѿ:п .?h_rQSsjߝjߝt'CX7y H\>GO~t}~u\?п .?Z~ѿ:>ѿ:п .?h_rQSsjߝjߝt_h_rB4/w 9G֨{)9ߵ?oΏ?oκ/B4/w 9G!T{?=ڟz7MkUز \_B4.,==}| !m*?e\jjV֫QF̨08U.i6+oB5oB0?4,Gf@+ j/ƨ j/ƫL4,Gf@+ j/ƩXZHX>D=o3J]fi_ XºoA!֩jA!֩je3ҿaٚW??H5H54CL4,Gf@+ j/ƨ j/ƨS9+v Q.c ZK?ZK>D=g3J]fi_ XºoA!֩jA!֩je3ҿaٚW??x#/֧ڝ$??_Q!s?ٚW??3J] OT OT}f{)f@(ҿatCAS%CAS%Yg3.c ?4,]7 kT5G kT5Ghfi_ X+v WM$??_Q$??_Q!s?ٚW??3J] OT4*???ڏe3ҿaٚW??H5H54CL4,Gf@+ j/ƨ j/ƨS9+v Q.c ZK?ZK>D=g3J]fi_ XºoA!֩jA!֩je3ҿaٚW??H5H54CL4,Gf@+ФlZ?SZK>D=g3J]fi_ XºoA!֩jA!֩je3ҿaٚW??H5H54CL4,Gf@+ j/ƨ j/ƨS9+v Q.c ZK?ZK>D=g3J]fi}%>nGЁWM$??_Q%k:0 " hS,x2Yۈd[K9\vr{\{jco%b8bw 3$I=Wk˛RhiYoB5oB;Oj?3m?V!z?^zBO Zཿzg'%N^?  L DQ;9Z{jx7TtVڴ=aS;9F? jjǨ/Tէ Qp;{Oj?3m?V!z?^zBO ZཿaS;9F? jjǨ/Tէ Qp;{Oj?3m?V!z?^zBO ZཿaS;9F? jjǨ/Tէ Qp;{9i6gs+Hx7TWjӀ۾鷵;SV/o=GrTe?Q;9Z{? ?5i{\?%N^? Oj?3㕩^AOSV/o=GrTe?Q;9Z{? ?5i{\?%N^? Oj?3㕩^AOSV/o=GrTe?Rm?:V!z?^z ڴ?ބoj=Òc7iGw?r5/Tէ Q^AO 9*v2gs(QOBO Zཿ{=Òc/iGw?r5/Tէ Q^AO 9*v2gs(QOBO Zཿ{=Òc/iGw?r5/Tէ Q^AO 9*v2d`$w?r5ꈌVh'ǩ{=Òc/iGw?r5/Tէ Q^AO 9*v2gs(QOBO Zཿ{=Òc/iGw?r5/Tէ Q^AO 9*v2gs(QOBO Zཿ{=Òc/iGw?r0ڒjWr?1Z{? mfS~J_ _{̞l֗ M<̪b8 ghZdN-`,HsS8ӓqԧ>_BI>_BԁKCV4hjvfψ玙??2O3^7tr~oAmiUU 5o3OgL?"oN:f~Ihfbhjvf [ӿ?2O3G#>#:ghfc5o߻o3GAmix'3d4wA1oݷCV4F|G#:gIhgL?~oAmhտ;~;3$43?lfn?y3Kn4oݷN?ϵ/#>#:ghfc5o߻o3GAmix'3$4wA1oݷCV4F|G#:gIhgL?~oAmhտ;~;3d43?lfn?y7CV4U$r?wmix'>38zgxQ<տ;~oݷ3?dfF|G#:ghfc5o߻o3GAmix'3d4wA1oݷCV4F|G#:gIhgL?~c_ꬥN0wmi5o߻o3J)c3_F|G#:ghfc5o߻o3GAmix'3$4wA1oݷCV4F|G#:gIhgL?~oAmh#]Q[?3?lfF҆LiWy#8=ZϗuFԧ>_BI>_BԌw~];?;^_S4?!N|~]'?n]?]`h7x##vgٚ?kO?G$/v@oh׿w~S4?!N|~w~v@oh׿w~S/Cޝ?O?T?;Gv@ohx~j ?zw Cޝ?ggkv{7;3C w~];׿wn9vet1o Cޝ?gg+w3gkvgٗ!N|~Huӿ_'n;^ {Ϻ{E[Uϗuԧ>_BI>_Bԁ'%?a'SV0TGASTOWmݿ3ޑY*jxTDU˰;@ГTGASTƬuO$Q|7o?z3SV0Q f@I*_B#ީjB#ީj~a/K5OXO1G%?a'zoƨ"? ꟕnߘ~SV0Q f@I*_B#ީ[?zoƨ"TU $Y*7~VjB#ީ[/H,?a ?j b"? /ƨ"? /ƨ *˰ =釽;SV0Sǂ22mxڝD?+5Eݿ0%?a'SV0TGASTOQ|7o?zE f@I(TU $/!oTGAST_ ޑY*?,?a ?KD?_QD?_Q|7o?zE f@I(TU $/!oTGAST_ ޑY*kxTb.9z7~Vj Yާ-2nߘ~g%?a'SV0TGASTOQ|7o?zE f@I(TU $/!oT5G!oT5Eݿ0%?a'SV0TGASTOQ|7o?zE f@I(TU $/!oTGAST_ ޑY*?,?a ?KD?+5G!oTvQї.ngBO1NTU $<F5O SzK/H,?a ?j b"? ꟕ7~Vj~a/K5OXO1G%?a'zoƨ"? ꟕnߘ~SV0Q f@I*_B#ީ[?zoƨ"TU $Y*77nߘ~SV0Q f@I*_B#ީ[?[/Kf-h䷹1El%T;Vs~ W 'lPʂ(X8#tQEIkR W7]& W7P2&+@MGbo=\wAOGAO^r{fv?5ScxHN>C{L_{L_pl&}?1_j?ݷ;{L_{L_pl&}?1_j?ݷ;{L_{L_pl&}?1_j?ݷ;{L_{L_pl&}?1_j?ݷ;{L_{L_pl&}?1_j?ݷ;{L_{L_plμx 5߶LWmǫ?#ih?#ih3 vzLWmǫ?#ih?#ih3 vzLWmǫ?#ih?#ih3 vzLWmǫ?#ih?#ih3 vzLWmǫ?#ih?#ih3 vz/ F'?޹36Ə36Ə=;LWmǨ vz36Ə36Ə=;LWmǨ vz36Ə36Ə=;LWmǨ vz36Ə36Ə=;LWmǨ vz36Ə36Ə=;LWmǨ vz36Ə36Ə=:<^6Q9 mǩ5WFF8gc Q5WFF8gc Q5WFF8gc Q5WFF8gc Q5WFF8gc Q .r ~RO+?#iit1U$<8g][I)8 AE]wvHavr;P?˚QH닺)ЅsujЅsu j_z ~۟7Xxxi' 3d51=N&G n6/i+)x!@?-u熙EdĶ:{L?!P`>c'珵ʇ=N&G ni-u熙_GG<4 0sm_z ~۟7Xxxi' 3d4{*;-t_z'##gi??6O3GS ~۟7G%G na=?lfGG<4 0snaz ۟7Xxxi'{L?ʇ=N̾.Z'QJ?[s-uK4=?lfeCcs#?nK[{L?'##ghT?9v7?/=o[sHm?GG<4 熙=zL4[?0=o[s 3d4xxi'P`Hm#?n?6O3G##ghT?9v7?/=o[sHmOGG<4 =1.a^hT?9v:}S-դ")I ~)kFo,|o*j&7+ *zup{kTd5)ЅsujЅsu6+ hÿ?2?OO=O=G^g?:J;A3#d>*״B|\ڟz7Gڟz7GԼg%~wgG5~t}~t}K=Wi _=d\ڟz7Gڟz7GԼg%~wgG5~t}~t}K=Wi _=d\ڟz7Gڟz7GԼg%~wgG5~t}~t}K=ԏx{cchO?{Lƹ??oΏ?oΏy:J;A3#?+ kSFSF{cÿ?2?{Lƹ??oΏ?oΏy:J;A3#?+ kSFSF{cÿ?2?{Lƹ??oΏ?oΏy:J;A3#cţs[O=O=^a펳{LƏJ;A3#ѿ:>ѿ:>?+ hÿ?2?OO=O=^a펳{LƏJ;A3#ѿ:>ѿ:>?+ hÿ?2?OO=O=^a펳{LƏJ;A3#ѿ:>ѿ:>fWNT~Z%~rjߝjߝRluwgG4Wi'/0Y _=dG%~rjߝjߝRluwgG4Wi'/0Y _=dG%~rjߝjߝRluwgG4]wMf' ?r_jߝ5 Wbx*܃Q/0weHhe@qpϠf[JDbx{W {.1ںZyd苺OV|+V|+C xQFaBԿ# jg?};?B4/w 9G!3-K9?`j_ƨsS#B70\>aBԿ# ng?};?B4/w 9G!3-K9?`j_sS _&Aǿ4\çɟ~aBԿ#Q??9gFaBԿ#??9gFaBԿ#Q??9gFaBԿ#??9gFaBԿ#Q??9gFaBԿ#??9c/t5Cw\w!,dnP9?/,?Zr=4п .?h_rϰXе/t}G'~_xsGN xQF.W?Q;9G==56gs(G3O9~רNQ;9G==56gs(GQ^s;9F? Spj+vgs(QrEy? Oj?3}N]#ѩ}iGw?rnq&w?r˸{dz=;Oj?3m?Q9wlFiGw?r5>.W?Q;9G==56gs(GQ^s;9F? Sp9T7ziGw?r˸{dz5;Oj?3m?Q9wlFiGw?r5>.W?Q;9G==56gs(GQ^s;9F}IOb5+rnWr\H`9œ`w &+ Ws'5B`3*8p85\MIm)ЅsujЅsu 7SV/o=G!z?^zhjvf [קlW/roSV/o=MOꎊV goݷ[UT(o2ABO Zཿ{v?5o߻o3Nد_?uط^AOSV/o=U?5o߻o3GAmi[ ?5ijǪAmhտ;~2AſBO Zཿ{v?5o߻o3E_̿~oSV/o=G!z?^zhjvf [Ӷ+v,mZp{w6jǪ\ݿWmi5o߻o3Jد_?uط^AOSV/o=U?5o߻o3GAmh+v-jǨ/Tէ UO [v-e|]{? ?5iSCV4hjvf_̿~oSV/o=G!z?^zhjvf [Ҷ+v-jǩQJOAOoݷ7 vo3E_̿~sSV/o=G!z?^zhjvf [lW/[/Tէ Q^AOoݷCV4e|]{? ?5iSCV4hjvf_̿~oSV/o=G!z?^zhjvf [lW/[/Tէ Q^AOoݷCV4[_#7ա {w!z?^zT#vfCV4e|]{? ?5iSCV4hjvf_̿~oSV/o=G!z?^zhjvf [lW/[/Tէ Q^AOoݷCV4[ ?5ijǪAmhտ;~;b_ b!z?^zB3kvw`*v?uqosV~ D)[fA^G9iq18Ѭo jRV}P\Lc8a v9󦚓ꍭOV|+V|+#>#:ghgL?M ?zw Cޝ?z؟#?2O3Ha3 ?zw PN ?؟ 2/F|GAjdx'3d5?$:/Cޝ?؟ 2F|GAjd?x'3$5?$:/ ?zw sb|??2O3G#>#:gjH5ӿ_' w~džEdO3Kψ玙] [zvH<$O?G6'-L3d43?df];?!N|~lOZ#>#:gIhgL?O ?zw Cޝ?؟ 2F|GAjdx'3d5?$:/Cޝ?؟ 2F|GAjd_x'3$5?$:/ ?zw sb|??2O3G#>#:gjH5ӿ_' w~3?lfF|G#:gIjoHuӿ_'w~3?dfF|G#:gjHuӿ_'];9>Ajd?x'3$57$:/ ?zw sb|?2O3G#>#:gIjHuӿ_'w~3?dfF|Gw` >tZg:khSտ/ տ/ @׿wnK5OXO1G%?a'S?_3s;^ 㴋 d~%?a'DE_ ?->Ov@oh׿wlY*?,?a ?->?v@oh׿wlY*?,?a ?->?v@oh׿wlY*?,?a ?->?v@oh׿wlY*?,?a ?->?v@oh׿wlY*?,?a ?->7~7y?/v@okXxT[.Ð?$K5OXO1G*aO?;[j bK5OXO1G*aO?;[j bK5OXO1G*aO?;[j bK5OXO1G*aO?;[j bK5OXO1G*aOC렀tNlY*kxTb.9z=#WZ}̟{7TU $Y*=#WZ}{7TU $Y*=#WZ}{7TU $Y*=#WZ}{7TU $Y*=#WZ}{7TU $Y*=#WZ}fRA?㴿ngV`73'Y*=#WZ}{7TU $Y*=#WZ}{7TU $Y*=#WZ}{7TU $Y*=#WZ}{7TU $Y*=#WZ}{7rOoV%?a'Lrt"=P|a"kU|ÖsK\^ u{Y} *(|gڬQT+&dpFێU~^lrn[QZoB5oB0j.(?&}?1_j?ݷSC_ϸv"\NFF{gOWS Q6?T蚎@=_Hw9>ڧ ?<j.+ vzLWmǨ9!j.(?&}?1_j?ݷ@s?ϸv"LWmǨ vzoW_ϸv">ڧ ??1_j?ݷ&}=_Hw9>ڧ ?<j.+ vzLWmǨ9!>q}O\#7&ޝ Qޯ$;q@SE}O\bo=G&+@MG{zr}O\y?]qWQ Q5Q rC?]qQ;Tu]G&+@MGbo=G/;TuGq@SEu5Q Qޯ$;q@SE''Ν%bo=Mod#E~SzmG3;TuGq@SEu5Q Qޯ$;q@SE}O\bo=G&+@MG{zr}O\y?]qWQ Q5Q rC?]qQ;Tu]G&+@MGbo=G/;TuGq@SEu5Q Qޯ$; ;S:"ϸv"i<^6Q9 mǩ5Q rC?]qQ;Tu]G&+@MGbo=G/;TuGq@SEu5Q Qޯ$;q@SE}O\bo=G&+@MG{zr}O\y?]qWQ Q5Q rC?]qQ\M?@+ vzL}RݿA)'{zM -:i.˞x/ qܚުZEbVoGr#<ywWk͛ros)%dSտ/ տ/ @濷?/=o[sHmS2o1oi4oi5azbv"۟7Ge>f??/=o[sHm2o_pgm?gm?w?-t_zϷ|ٯ8o36Ə36ƻK[?/=o[s̿A7AOGAO]&G ni-t}f__ k{L_{L_#?nK[>/{5 FFn<]*n};#?n}1oi4oi5_z ~۟7Ge>fῷ?0=o[sHm2o_pgm?gm?w?-t_zϷ|ٯ8o36Ə36ƻK[?/=o[s̿A7AOGAO]%G n5]B>dĶ:>/{5FFs ۟7G&G nY=c?#ih?#ikHm#?n}1oi4oi5_z ~۟7Ge>fῷ?/=o[sHm2o_pgm?gm?w?i-tazϷ|ٯ8o36Ə36ƻy|]N Ķӿ/=o[s̿A7AOGAO]%G n-t}f__ k{L_{L_#?nK[>/{5 FFs ۟7G&G nY=c?#ih?#ikHm#?n}1oi4ۺio *~kHmG,V}:@Y=bG\OC"qUکIBkk|\ڬH#3#ʰ,pA5NRmQVV)ЅsujЅsu dyy|z]-`E#;ͳЊQOV|+V|+red5-1.0~svn4374.orig-doc/projectplan/include/mini-ics.png0000644000175000017500000000106611404471610023241 0ustar drazzibdrazzibPNG  IHDRa pHYs  gAMA|Q cHRMz%u0`:o_FIDATxb?LgF&&d>m*# Ϗ  Pϟ wb@7.YYY[nibb  L03ܻw?L X1@!مן?@67#'Cƍ`9"o^x [[['P ~bضm\  .@p 6:} ub PǏ(>|hbAh / %޿3:߿਄/R2,@, 2B DQQQD}ADD  lll  66>nÇ.\#G`URRb S*IENDB`red5-1.0~svn4374.orig-doc/projectplan/include/gantt0,0.jpg0000644000175000017500000031222211404471610023055 0ustar drazzibdrazzibJFIFHH AppleMark    % #!,!#'(***.1-)1%)*(  (((((((((((((((((((((((((((((((((((((((((((((((((((  }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzw!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzX " ?&-:<۶cp]9 f|7ϳDf9wܕoSg\g5wź44y9e PBU~yׄQi5WL aOː Ϸzcjŕ$mF⌒Q^kf5[KoVF16/xr)?Y7cU+z,,c2>ŗ{4-׼zoςѠڌϰ)W\|Þ3mcG˻ Ag˂WdQ|D|#{KW7 +16Jr@'kxŮ-t%.4f XPkĞ!ѡ$lUwdӨ&sӱ>m+cY;7Lcqsq3x?Y-6vO.IXv(0@#):ʎFN*uju-ݫxdeGb!OJ,MJ) (((((((((((((((((((g𖖚w7eVm{@:;O 4ĿғN5+-umF qj"4/@5'.xiendV# cTsqቮm4=4[{{[gS6ƤBao*"g ~LROFϜ$\-AuC}f!tPy̪Q݇y^Ѵo-_j7BKK]m%YAP#k &o|;6}i:}Ggs: JUwr''7֒z7C+C! di\L!GjoP%[MlZH䑜oRi,8]4m>m>ϼ_K[[v1$犗v(H?*!| >m>!| >m>!| >m>!| >m>!| >m>!| >m>!| >m>!| >m>!| >m>!| >m>!| >m>!| >m>!| >m>!| >m>!| >m>!| >m>!| >m>!| >m>!| >m>!| >m> (Q@Q@WxwBowQu]I8ʴMD9GS';O' |]K$:>g},HPΪz6:sқ->UYG] {v#y?-4֙I^gbf Fbwmh!,+}C@Xh4F,B9DRՎ Pr2K9Z]VN6B##0E`dwU%v.=KL,5ηgt̎QR? ^-J_o_b%2eq."Hu;VLںyv"[@ 2eCn#+_A=m44P5G fp$ݹ`5f x%u 3ibqЊjz ( ( ( ( ( ( ( ( ( ( ( (*i}ij˅#ڝŭSOl@#l<= ny4[ pNxfyk-Z6oיUq :}uʖ{p̸[ָA8nw2A(!%4hx*UQ L$$h$$jj(C}-#@yZ|`DAu=)o3\} wκƲ9Xw$zg?6O3]ƊFoJt?W73~Ok' 3d4xxi'P`LSs?)?T\f?6O3G##ghT?9v5)?T\fJt?W7GG<4 =?lfeCc[3~OhLSs{L?xxi'P`LSsA;-O%strGG<4 LXygpdP`LSs?)?T\f?6O3G##ghT?9v5)?T\fJt?W7GG<4 =?lfeCc[3~OhLSs{L?xxi'P`LSs?)?T\f?6O3K熙=z_Jt?W73~Ok' 3d4=?lfeCcW;pJe}i)?T\f?fAjXbYngӴ]YoTq4y689LHן koOEx77[xֱA K}5H^S23F)d0HqUϡiMe;[O)HXʳ,AM_țhQE# ( ( ( ( ( ( ( ( ( ( ( ( ( ( qX\Z\svJ$1$"犳\nKW %gqBYF 2Ԏ8:ymm5Or9f!}NcC5y7?&W34}+_"e';_,2 O`mQE[/FWVv "Y yc$OWiחOf#j=fr_jߝz]&Yg%~wgG5~t}~u_R:J;A3#?+ kSFSF{cÿ?2?{Lƹ??oΏ?oΏy:J;A3#?+ kSFSF{cÿ?2?'<Oizѿ:>ѿ:>?+ hÿ?2?OO=O=^a펳{LƏJ;A3#ѿ:>ѿ:>?+ hÿ?2?OO=O=^a펳{LƏJ;A3#ѿ:>ѿ:>?+ hÿ?2?OO=O=^a펤j3OG=wgG5~t}~t}K=Wi _=d\ڟz7Gڟz7GԼg%~wgG5~t}~t}K=Wi _=d\ڟz7Gڟz7GԼg%~wgG5~t}~t}K=Wi%Wka_#}~t}~t}K=Wi _=d\ڟz7Gڟz7GԼg%~wgG5~t}~t}K=Wi _=d\ڟz7Gڟz7GԼg%~wgG5~t}~t}K=TQEyHQEQEQEQEy'~,GWX4f+VW$(}y4tWr OZ_=ho,wM-C+Il LmBu hl!xf)̊T4_pwzf/H.on5 eto*H['.CJvUO*B+ӎ\PWvk$h4/>ƟulY_O_$PG=e 67sk}'Э5HK)8rǃ6r4=.2cp##xe-KH= KgmB3NެT޺;&{o2i:X2s,'$Tr/c#W؏Jt ݭ2N{EgDHPx(aER(((((((((((((Gz<4<$yRp P8kүa\i72ɩ&<ښJY: :cQڏ?Eq>NkIk$>M%zU_}ֱdV]ۈMсq#8,1$;C??YTyj7QX+r9+'[o]ԖƸ旫o=i_6)^'+G'P\l.%F#K̾UuϷqU$p8ϥ[ RO5^4[9 \?п .?q`j_ RO7O~_xgFaBԿ#Q??9gFaBԿ#??9gFaBԿ#Q??9gFaBԿ#??9b|M ! oiN#B70O??G'~_xsGN xQFaBԿ# ng?};?B4/w 9G!3-K9?`j_sS#B70\>aBԿ# jg?};?B4/w 9G!3-K9?`j_ƨsS袊N((((- U2I4)zS*8G{;i.x#kQb+`jWfe{S:jqH%q$ 1~K`g8Se:ͬ\p [i3|y I ;FQojc+ .gxD<0O nɾzQ^kkuKI5Ƥ[^+r%Y: áEZpUE9Up3Mv ko2L+m.K?LߢŪ1:DH$u ۛ~+HlBy/{8(]fU >C{~oKEy-cV4}?AYV}>.I UF99ӎ;|Aƛ5i>>F=ē^`@ ~ I=7Ep^=ω;Pc$_j f%-r4$3]>QE ( ( ( ( ( ( ( ( ( ( ( ( 0nWf:qHcv'AaEr:d5qaDwyQ.O| zUjZGy*As,n6lFL8*C5qi;OĺZ aк# :qۊ'[o]ԼQEii8=ÖKŏO^TMs CjD6jwƙAu?ߪsl^YzoOh=7.tWliS?4MSp:+?4Mgv˸{dzgv3;G==Nޗ+4M'3v^zo;G==R/;GƗAu?rEygƗAu?cL:9wlScL:z_OhG^YzoOh=7}N]#,=7liS>.rSv\mMi4MSp:+?4Mgv˸{dzgv/;G==N/;GƗAu?rEygƗAu?cL:9wlSMGyƙAu?:z벟OhGQ^YzoOh=7}N]#,=7liS>.tWliS?4MSp:+?4Mgv˸{dzQ\&EPEPEPEPTt5)Xt8di_Fp2GWhj:ƕcnDIN1\>wǎ.|k-H@C# tVr6PpMt>úLF屉(2A_ h)nˢinբ0HcfI;zdSRjL]ZʛL\\g'jnkK{2H` :gpzQ}êC-{ItK/4VGpbwwc 9##'QoVO*[K%1Hg*YpJS<jZ5ƫ$è]ڳE3RX$iDkw`--o S6]Ɗw7$,{ڱƃDhuh\Ai.|?5Y#,ݢlmF@9bAݴsu&֍omNJPi-Wc𯇮ŧдNe#oG1`T>/mRG'7 ȲX%$}}WCkV.P ..7|W%Hc9^Ⅼ6WCJYj~R:urǵ70N:dWg3iWFH^o%I4e׀>d 8,>2Lv<5PY~dFq`Awa*h gOGEvTͶE`OCViEyƟVF|-wQ|4A-paGՉNERQEQEQEQEQEQEU(t].igMi $H3Px,,^ H!tBaHAP@ӥGwi$}̨0M(x$q\s_ԭ5;YA&=߼9P採ML&he2F ݌u4moJo/6佞fCѳ*7|WS?=ɨk[K$Hqy+M0L3nbIPM[V%?7q*\MqUIT oݷϫTX࿴5o߻o3GAmi}R{hhjvf [JAwWv?5o߻o3G*y\Amhտ;~T'{LKhjvf_ꠒ5NOT'}Ep_oݷCV4}R{hhjvf [JAwWv?5o߻o3G*y\Amhտ;~T'{Ep_oݷCV4}R{h\~ߪ7@o3Kv>S=N࿴5o߻o3GAmhO ;+տ;~oݷS=N7/hjvf0u>S=N࿴5o߻o3GAmhO ;+տ;~oݷS=N(C`(((((rӼMqMe-[ rsGEg4R9ee9xde8=p{=Ï VOe}cqu 7p!s&9A+zǾ/o Cjfny yi8r/eA0:(nT[qVsl%E`0^gV4x~#ll59巕Z62X%2*sWZV?멗yEtmA].м\yst5b~ٴ4XûqM<-I=Nu4 R}@VjNki0Bڲ#IRDϾqfxŗ~ӠNK$g07LrH_3OoѹwcM`k1##D`Xq@У"ԣ;4yR~#O83&{Eߏķ672qr73EלV\흥_ԛð\ϥi7Wm=rK>eYf8ʡzInh_֗/VA} Qt淺1ALjUw@1Z=}C˻{0 !8'VSxBcq䶒 Ʉ\Y W75}?Omű~@BISmِF)^ml)ZX>j,WOX\$:Η^J\50![#H7*Ǣ;]oֺnwhYi_WG%mBR 95&=Fk'V[xԑIYIfy'aV+{|mQDOG4dߖGRAZo?}SH=Qgh'b/.Fx(Gڃ |,~JaO09tTʟ:}֗mahhڍɇd2mu ꨢQH(((((((|5_r/0Gq*d)+GVakZ Z_^e1099j:ao N+BK#ʭ>wbvўVmYm,(Ҵ =y24PHx}[o]&rj(2(&Ԭ.lξjƌʪaxnp:?t+_޻yh|D\FpUYp$A㌘!N|~ijcG"q`Cޝ?/$:/<;xw:g)V$/ ?zw { ÞE<;@3 ?t+w~?!N|~a[sñG"q`Cޝ?O?G9Sÿ??'|uwpoRCޝ?·pcOL8E<;@3 ];?!N|~a[sñG"q`Cޝ?/$:/+wxv7t(Sÿ??H5ӿ_'w~<;xw:g)V$:/Cޝ?·pcOL8™/|<cA̿?Huӿ_'m]awu<$s=<;"qxw:g ?zw O?G9Sÿ??OL8° N|~Huӿ_'Vo)QX?O?I ?zw { ÞE<;@3 ?t+w~];=nkEWQEQEQEQEQEQEW |!㛟ڥ' rHwUrw7RGpwUN-cLQLQPwh5d r9" $non,_QF`2 }ywUn,VFYl#۹m*H*ߊ{P-`{C")f8~Uvkb[=PcyHV }zUѧ)5B^QP#Wh#h*9#CMiEdg%G9j[$)V]Cr2gR mpP9jB'NM.\ %}l^^.A'x8q1o_iEI:ZI$}O ]'Q}UռRZO& 641eΪpͅ(9ͭV:$67Ok(!g{[{gkki7RUxsơ״GQu0n0pY}G_԰u\Ck,%&R1=wq-/u{^xicH9Ntp;sWI]yiu<5d3:~lkKdqY8a:bc߅TF8ZY=:M%Ӭjdza\U]~w 隬7Iseaqosy+T\sPjTׯ#i化o$`399+q#-MNڣUWY',n`FrN8K-~dխ Ig43#ALa\6s^E??>_q)[jZ=iktSl| ῳ([EKi<|.ce,:r( i (Q@Q@Q@Q@Q@Q@Q@Q@Q@`CԵ"kJ=>N4RDa۱um.(n`XdO,$Ĭ {#=hꃣ0l}kZf',F ?/:4f +p u@jsjViIst#e&230=*m@{ݓQE &WSgssm;m Kb$y?]qWGo(D^\zM 4&EhbAT vz8֪)9>ڧ ?<j.+ vzLWmǪ_$;q@SE}O\bo=G&+@MG{zr}O\y?]qWQ Q5Q rC?]qQ;Tu]G&+@MGbo=G/;TuIqj|utEu?5SWY&G3;TuGq@SEu5Q Qޯ${q@SE}O\bo=G&+@MG{zr}O\y?]qWQ Q5Q rC?]qQ;Tu]G&+@MGbo=G/;TuGq@SEu5Q Qޯ${'?<:"ϸv"cdVp~{S1_j?ݷ@s?ϸv"LWmǨ vzoW_ϸv">ڧ ??1_j?ݷ&}=_Hw9>ڧ ?<j.+ vzLWmǨ9#j.(?&}?1_j?ݷ@s?7v??]O&+@MGxehP~c]9!|j.(?&}?1_j?ݷ@s?ϸv"LWmǨ vzoW=_ϸv">ڧ ??1_j?ݷ&}=_Hw9>ڧ ?<j.+ vzLWmǨ9!(򎰢((((($Ÿu\'.Zf[pe\8#hT ^Es;5xGVѴ7Zđ|6-zlZyeCcyx+=XOFXǧh'k⼚wC)ff.]g3T!@Ӛh4E2w4䑕saՙA 국jlڞ+iD*; N8oᰳ{Ʉ(b sDG[dyxL5cOҵ=R.dc#V86p8f,m @yփڜWsGqkel/.M$M3e J?U՟ Vĺoos;o*^W PQ_zg y)C_ Y'!^z?0=o[sHm<Ofg!^zWV/o=Z-tazqw3/WV/=K~A??K[?/=o[s?r~A?WV/=Zi-t_zqw33WV/=M_Xl@緽jazSHg'GKn}3<Ofw!^zWV/o=Z-tazqw3/WV/=K~A??K[?/=o[s?r~A?WV/=Zi-t_zqw33WV/=I~A?OL4[?0=o[s?r~A??U՟ V%G ni-t{\G9iL>CٳmN?U՟ Vv+) tK[=#fjǨ?U՟ V&G n-t{\G9iL?U՟ RjǫS #?nL4[=#fjǩ?5gթ ~۟7G&G nZ25gԿ{Hm#?nk-?陟{kGUQ3~ڵ0=o[sxIe} ۟QL?r~A??U՟ V&G ni-t{\G9iL?U՟ RjǫS#?nL4[=#ejǩ5gէ ~۟7G%G nZ3?5gjǫO #?nK[=#nQElQEQEQEQEQEQEо(]uWRi<&13rFA"Q'<Վa5휶CƇsPI3qU|C3]CJE<߼*>c@l5+&5{+deXs,K{gZI{{uKI$h=K^JҬ丹$;N[̀:nG6͍NJnFSKX3! bf!UeGyyk.JOo   maG$}E!Fd㪒:&~][NMfWw}V[}*Q5X@duT,Y/GҖ&kXe'6{OZW3p,X8;H;ϯiڜ:TZ4Vop4PݻJIùkymvH6JŊ8`74L{'_ ivQU-~b:nz sWkms"kih famiuk>OgH(CyuB_5麮ڭkjā=*:Hι4sٍMx3F  / 6SEmR)m!Mɔ<+#FwF/j\YGM'YѦ I;ۆF@ǮK:G?Ck7J8ow/IV[?^,Z_>/G[_nXzb½gZ_>GG[_nXz?Ա}i#dwumŻc%wRK=bԞumŻc%wRK=by-K/G֗0OQV[?^,Z_>/GZ,i{?-K/G֗0ORyշ-K/G֗0OQ{[?^,Z_>/G[_nXz?Ա}i#dwumŻc%wRK=bԞumŻc%½63çEZ_>GG[_nXz?Ա}i#duumŻc%wRK=byյ-K/G֗0ORyշ-K/G֗0OQEaEPEPEPEPEPEP^IOzMa,Ktvc++g7}vhavѕ@TRz0;K;CF5 Km`d%r8,w*Z(9O~no.5+帚M2k`&r91>0$^Ncdm.3$mY8OQTopZv=oN>Y< ]-oW][^L-knX(tPT"\ /b;*VsǔڴlG`#d#̲NO9s4CQ䷆Hɉ29؜mlҽU'fo-5X-&0d$ ]RN/pڳߧ7_gYjg&O7P<|9\ݒ}"+)OZ-k0;Ɲ19)_ usED%UH<.$l;Ccfi1jڥoX4%į9{A( @J/^##t`C+ PEƐƱƊ @*Z};- !JJ)4gJWќڟz7Gڟz7]! xUjg O~t}~u\?п .?Z~ѿ:>ѿ:п .?h_r֨{)9ߵ?oΏ?oκ/B4/w 9G!=}wO=O= xSS:g&Q=}O=O= xQF;EF;EFѿ:п .?h_rQSsjߝjߝt_h_rB4/w 9KT{?=ڟz7Gڟz7]! T BSe>?EFGO~t}~u\?п .?/QSsjߝjߝt_h_rB4/w 9OT{?=Q^QQEQEQEQEQEu\xy`ӭd[ƨ Y\c}׭@gˈ->k|/4 f| %6=0jxBY -ⳑS':2)R cE;3ϾUAky.%xRc"WQGT] <>֭ɭZ[khC6YcBC1Sq[Ctۭ2T艢%7ZE #H|0z('&s×7wҮu){52\)\bBnsVm/k{h\"RU) S}-u?oW~'?uGt2-9ag!>@Af4ϊz η{u խ^UE)A)xr4!vN+03sGZIig_Ks?dxQ𽶧ickqo^7`yd f׮;_P񟈴x/t^]}F[0 + XOZVMM6?1$P@n=OoegLx#Rt=kR x۬RSe=ջ}Y|COzΒѮO z{/JL c[~=jz=(\O ܠ'GjEެK`) (((((((((((+-<<_ ))}5Q@s> .;2F,Vc`[aBԿ#}O9džHuAG]/ RO7G,?Zr:(P+`j_ RO5^E[w<-K9?`j_ƫoCخ}G'-K9?z}m({ϰXе/t}G'SbW?8nLO7K j@O[}[w<-K9?`j_ƫoCخ}G'-K9?z}m({ϰXе/t}G'SbY nXе/UtQWs>aBԿ#=yg,?Zr>aBԿ#שG], RO7G,?Zr:(P+`j_ RO5^E[w (MŠ((((((Bc|L"h0M ^x/ʿ+`kjZ.6g: Q4Hu=#x^I&)gh]]#fRH=@\o4}MV[kXēr|']Դ?Yk=RՈ-+,dA**'$%KFSVܱ6/@yء/tH$%gΞ٣$uN:d&k{[{@vR&i&yF,(I2@\K!e.t_=[KB#{_~Sz5mQ^Gbŝس1'I'tim4<<ȍ *67(=pvG}ҧqvgus+qmZ[yW̘>'Fw,!wox_ۧ`vP^a,Q,mgKvP  j\]Ť?gZFWbeW0O@ZKdmd aW+LZzGjvKk^ t9[(H9*g-璲<ݲ^B2Lf]+Lw%$BFm'u𯇒;BV=I^ s rI<}Ҹ4 kEe6-ݤ2-Ϛ߼̈́7/xw؍";{h/kx+r9A)X`Cj4٭m$^>!hT(_c {;Ug;xÚKGj8D*N6p;Ӻm:ox{Vt8% ѭ70mrMWw2o ޹4P%4[,Kp@ܹ$s[iˍf1 CNyoS4FMnJYW c q*v> -?Qሎim'rB3`$d;~5s[gi{6nQ)-3tn|)-m2 41E-l!*(#je,$UH8L]^W~2ׯco6>JH'0M1um}xCGI:50.N2<>m/na,"-5=D Xlu[7,-$=K$m#R71~Zе8Kկ!H@hgʜ12 ~9z?kc%ֱc:5 E`1#w]MYEKR*H'*-3DҴQ8;pdebʹ sBIy%M3Ӽox{L]/%IBbX$iڗj3jYjrv1:=rB v${ !+g9[8&,};(Y]% NOr''=M/MKCvi3[waj*n!2RppN1z]xuSK-"Q@O9Sk4R9ee9xde8=p{=Ï VOe}cqu 7p!s&9A(<z~ի'rL-x,%x*گnioqg@Ib8\'WX5Ih,2Mq+(ܓ1*úJD[atk6s0Yl!b{rr@n6t}OJç%a$CHN3[#,U{S]kFDƷ'%Cl~OV𮟪s5vW 39 $prZ[ok0HF}=-~pj+"ne[{NB!y\p'cěFB ^׃=Ms"%Ds+W p9n8 .Cy1 7y4qLv%px)<ASxoI])m&Ρ˥K4_hgQ#$!#L.qj"qڏ~A>1v?5o߻o3]?"qxw:g{j?$Amhտ;~txw:g)Q'soݷCV5)QGrOhjvf [OG"qڏ~A>1vCo9WmkSÿ??K_t/=I9 [vt(Sÿ??QO9'?5o߻o3GAmkSÿ??OL8mG? s;~oݷOL8E<;@3 =}cCV4hjvfE<;@3 ?t(I57 ( ( ( ( ( ( 笼{}Cė Yڀ~ FzWC\.7n|kj_w$[ 1 !WI1=OP|-YU*.gF!YO8^=Fld%e$cCcYI%e9A~};STd5[b-1)O;77[گ$zJ -L!aTJ< +K]>!ZZ<>]ogjwnr .21ճsv&{͌wD2$>{r'kiojY%l2OԱGLuEڎrnnE/tfgfPȤ+rsRz/%F4ڬi^55L]C  FWCR+(L?vsy@,zXܺUعoP#hGl@2vOL 1{cxB$yrnB@IPOL?vb7_(Fk,Q̑ݸ+|)`K6PPAm$`xXuz۩P)QEQEQEQEQEQEVj:nMnVXɃ(C0S|:u۝6kБڈv* y0Ǿ:"K?4&O=L3G~%6⺩C5s!SSLVs^x]daosO@v&)K{o#MCokC#*.Q:k8f͕b$seٙz_Ӹ-x{⯆5;;K9.Lͺ ~l b8<Vlj# c|,gC.`v9\7)':i(a$W !@do08F3ԜΙP-k+Jd"REp9<NZ!1;],qIc5:gK#%q/ F2qw})>3dfh'HgľlfGp'#^mv-g(^oo$QEQEQEQEQEQEQEQEQEQEQEQEQEQEQE}WOӚVʳ]UKFwg:kGSӯm[gX2ofR$:m4{gKHe*y%<FxlO}Ŧou{fPAs9C5 `{QEx+h#KVmS$Hۜdj b/ ]sqyqeN`[i.#qkW7~Vj֏0"TU $Y*7~VjB#ީ[/H,?a ?j b"? /ƨ"? ꟕnߘ~SV0Q f@I*_B#ީ[?zoƨ"TU $Y*7~VjB#ީ[/H,?a ?5|U)caBO@?燵OD?+5M_FYާ-2nߘ~g%?a'SV0TGAS%GAST_ ޑY*?,?a ?KD?+5G!oTv_j bK5OXO1ROQD?+5Eݿ0%?a'SV0TGASTOQ|7o?zE f@I(TU $/!oT5G!oTvZpv1'0Y*yTbE_O{ӿzoƨ"TU $Y*7~VjB#ީ[/H,?a ?j b"? ꟕ7~Vj~a/K5OXO1G%?a'zK?zoƨ"TU $Y*7~VjB#ީ[/H,?a ?5U8]IxTGASTTjoSK~Q|7o?z3SV0Q f@I*_B#ީ[?zoƨ"TU $Y*77~Vj~a/K5OXO1G%?a'zoƨ"? ꟕnߘ~SV0Q f@I*_B#ީ[?zoƨ:z(MŠ(((((+<;zGGƗ>!I˖;dWlN21~Px\z5ޯ56jb72'Z`A[x $a6#SZRiuahKanU#%㚿j6ƝkYIZ³DJ<CX/iZPֿ'Μ$7lned.lhy / iGtDy`IR[knS_b\touK;[Xܜ*zJ.MuRXJy`! fi^崰ҬnLIɘ[CFPiN?O+&?Ϲ3xBZⶻP=a& 18aQǨ4MoMo^\.PGPGB<4?]v|C]ah2Td aINN6^h^4[w,CA F OZkmDͺ(Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@eZUg-ԃRۤ*}~XVs)M.Xold…ÓtTMw"[g$d6LX"gpRV_Z֟mt?WcvĖsJ4lkH],ʢ6MF rxv@j}=5QH~oZXyv^i歶Gg99&+@MGI< -Y^x%Wb x:*/36ƽHaa(rʫNc Q5WFFNfv?5Q Qqgm?gm?S{fv?5Q Qqgm?gm?S{fv?5Q Qqgm?gm?S{fv?5SWY&\AOGAOGٝ&+@MGbo=\wAOGAOGٝ&+@MGbo=\wAOGAOGٝ&+@MGbo=\wAOGAOGٝ&+@MGbo=\wAOGAOGٝ&+@MGbo=\wAOGAOGٝyx2+bj8mM5WFF8gc Q5WFF8gc Q5WFF8gc Q5WFF8gc Q5WFF8gc Q5^@.mj??>1_j?ݷ&}㿷?>1_j?ݷ&}㿷?>1_j?ݷ&}㿷?>1_j?ݷ&}㿷?>Z(*SI v cz=J_*^nٟMS?݁m,@ 8 ^OMͻ-wrW()QEQEy't/6uGUԚO LcܫDѐ|Hu;rp3 Ya f["#U;AbNH+ZΏos}vKy!Mr&YrGA>h5[}7)u"[$c2 nFMjW=^FtxEd fSiám;MBxޱ0̒FHzq 6eB;hl4l o3F;m9aKb͏4}Cn%VOo$.*o]ABW#yjiay8om"qRO"ѯlEY^TJB1t=#~ WovBjriQ N632ʷVl 7Q M.vLڬNsrșl ^`tmGRcF ;ck9#h d]\z?~iz>&qȆcd,``fM[ j:U[hfM-t7\³s %&ܚv?uwnk$snŔFR3߭[T/^ZC.c-k̂TFc26㢓TV;DTZ;韻+Ԑ  iZ>sA NZl@!FHZ_S X|[{ b"̻doː5kdzTM*o`mCo77*@(C ( ( ( ( ( ( ( ( ( ( ( Ͼ,4 ^;BC+R,UVs.MFKPQ7A$ "A>dÌ:wZXZf&hmRw:OoR,|/+U]2@|Y"a|ftjTFAz<mD5QH u7Kw*T0J$'ҢHm6)liVHPjm"҆2w9f #?nL4[|=:K[?0=o[s{1[?HmϷ3_z+{Q(aaz ~۟7\IQ(aaz ۟7\GGԣ݇gU ~۟7G&G nruuRvݝW%G n-uy}J={vu_i-t<]>mϨuԞuRvٝ_&G ni-uy}J={vu_-taz+QQ(a_z ~۟7\GGԣ݇gU ۟7G%G nru'Gԣ݇gEATe-I^C88Ph`gg_2wp BjPEPEPEPEPEPEPEHR@@Wa ]1 [.1o|^wx&{4wHHb^N\pd|=Ub 9TQ]%ΝGT n5 kP ]t49!1dT22~~FV5+fni!Djl3C݂nj⤸u;:kwcvClb51o+&AE*mqN;_m=#&Hez I}[[G gx+-D!Pʆnw9!SAZ* ( ;x_|jzlQE(((((((((((*C5MP5QH J_]vWP)Vz\TJMldd)QZSp]E<;@3 ?t+Z99Wc'OL8E<;@3 ֢ywUSÿ??OL8µ]Õv2t)_$:g ~ڶiywUSÿ??OL8µ]Õv2t(Sÿ??j(p]E<;@3 ?t+Z99Wc'OL8E<;@3 ֢ywUSÿ??OL8µ]Õv1|=1˜~ڟZgrSp]E<;@3 ?t+Z99Wc'OL8E<;@3 ֢ywUSÿ??OL8µ]Õv2t(Sÿ??j(p]E<;@3 dQL2˜~ڶi}1G<*f)QZQ.ʻ?xw:g)Vs˸rO"qxw:gEG"qkQG<*QE@Š((((/_P%dž-u%my6A_ci# |!㛟ڥ' rHwUrw7RGpwUW/mlຎ[{Yٙ k,eN  _j ŞŶϩ_XEw3>b?1Ӝ(i\,<ڃaI-Ol/F<ibM=I -!H f$xUmw^!Ey=tmJM U E6F:U+77:RXJcpwH֣wm[&\wQE?#ȱS0p 7)+OwwX>kin}ew} -j k0pr@\Xɫ,|ȰF(%nd^A%R DSR7ս-eFR%$-OJտiu-ԑjbY7x=\ 3P? kOI$Eoܐ{.G##5K=<\BKab^&]Iu2Y 0> >R8Q_ (1[4ãͪFA=8>(hRD ɬn$H2l`SᦌiӍtDJn8DZ^(voReuyY$8bLX`ֿ֟u^OGip 1dr FOZӮs>>V7YdR I+H@-67cq'QE ( ( ( ( ( ( ( ( ( ( ( vA$|"YeLd݄6 c𭼳_^qh{ȘWsKi2i&[ /*cϭ.\ZUҙ*.19* ^{堗ΊZ+%sUOB]N۽-w!' 1w3>aX#-Զ\ILhI'[o]Ջm;]R-A//H[E1#| {mQEp%֥i!Ek7svA =M ?zw P ƫ%Ӵ21ܴI4vA%$ ``֧!Z'z Kr}LHuӿ_'];+DW1+=_;_kO?G$:/֯!Z'y^Q0];OHuӿ_'oBOy9G!Z'aS ?zw Cޝ?k+? ? nZ̟Huӿ_'ľOLz+DW1^YǠ{L?9jw3? N|~Huӿ_'_BOy9G!Z'aS ?zw O?Zh7?rBOy9G+s'w~];+DW1+=_;?O?K ?zw VbS8X`KSnj}me>+ݠyFZ`a a|04JK'B.pc0T8@q$/!J4կtWtLnbi%‚f("[uK, F?->7e2e[w7%C4i*ȡQeepGZ7y5+;ۨm6ۆf(yVvJVȻIs4d3"i3 &=R3iK]B0pۀqXp|2M욊(/7[]>. ,b>TX3q,?a ?b\X_2;iݧkhZ_K`A'=@ϸv"HPU&Y*?,?a ?s}O\y?]qU^:K5OXO1G%?a'ϸv">ڧ ?>Ga&tj bK5OXO1\q@SE}O\}^L?,?a ?j b>ڧ ?<j.(釴Y*jTR.9j?D8ӵ>:ĺ"{I%?a'SV0W?;TuGq@SEW0:K5OXO1G%?a'ϸv">ڧ ?>Ga&tj bK5OXO1\q@SE}O\}^L?,?a ?j b>ڧ ?<j.(釴Y*?,?a ?s}O\y?]qQz?i3xT..ÀF?$K5OXO1\'?<:"ϸv"{I%?a'SV0W?;TuGq@SEW0:K5OXO1G%?a'ϸv">ڧ ?>Ga&tj bK5OXO1\q@SE}O\}^L?,?a ?j b>ڧ ?<j.(釴Y*kTq?>ڧ ?Cq8jc}^L,?a ?j b>ڧ ?<j.(釴Y*?,?a ?s}O\y?]qQz?i3TU $Y*j.(?gA f@I(TU $?]qQ;TuGL=L+;(((((+<;zGGƗ>!I˖;dWlN21~P^Ej^-ӝNV+LQr0NqZxMooϧ[Im^xab`x$}w}C.x^Y5MHf,Š2X$\$\SLmVk CM!ګێz s\ϋ4g 6nd7H̰$\`%Kh^$ϼ{DŊ2rG c}K>CY[ܘ $Il`̃%e-6W1\91)F.$܀"-C;mumܢܹHŚ!F2?7٬? lw6gQKoZ7 ,2l{QP V4РBѵ{*ǛP0$ڷ͠%j鯢oA,ur.O, g8fI iK#jÛ'qQi-&5K#$^rZ Z?Jxk晡j&5UA A"ScUxKqub*æٵ ;;7# ӵI;UwS;J*28 @GJ}ljRbKj^\g}Y2Ң z %E#IăWcxPG8#|80!#s[Fgajnj.5uYEJ53h傝*o"̝P@gUU QƅvvE /mbw`c`- KK ,u]U0HGFM4A98ZjK^'VY\h#!r *ӗTt,v/#XwFy _W-iM7PF0IpCmkcL 7n< y"#z+({!L,&X>p:cP_/ǰڷ^b$e%M SEmshu#p kDsYEIu4dU2{W aMm"kQeV{k:V^w I'8iùΙ|Yb2.$+eȫBBNd~n;+\u^}#TԡFY$ʭ$8<Ѻ_u b/#xPA,@[ĄLnR2ȹ5P )QEQEQEQEQEQEQEQEV^ť_vr]H5)ͺO'7 ?jW;?Y%]Nn&FL(X<9<@uA?~/-|Aa廆}NFCmeM&w!1ueiC5q6>mIg4Mm6VԅjO#dٴm2!Wm?ݓQEEiƞjlyFq3`Qbo=\ğؓeiUv,0nj#;b?#ikԆg,v?5Q Qqgm?gm?_Ogc Q5WFF8gc Q5WFF8gc Q5WFF8gc Q5|^bj?1oi4oi4}Nbo=G&+@MGoi4oi4}Nbo=G&+@MGoi4oi4}Nbo=G&+@MGoi4oi4}Nbo=G&+@MGoi4oi4}Nbo=G&+@MGoi4oi4}Nן"&ڝ Qqgm?gm?S{fv?5Q Qqgm?gm?S{fv?5Q Qqgm?gm?S{fv?5Q Qqgm?gm?S{fv?5Q Qqgm?gm?S{fv?5S_=AݏvC{L_{L_pl&}?1_j?ݷ;{L_{L_pl&}?1_j?ݷ;{L_{L_pl&}?1_j?ݷ;{L_{L_pl&}?1_j?ݷ;{L_{L_plU+;(((((+<;|Q:xMcfZ&"EۓNyϼ,,56WKA-Bʥ.;U+Tzφ^GP73C$ !X"9_PMsZ XHfi q3ն(|Q~5c뤴i|続R(^Bc|ŽNxAü$d au!_knڛGᖶKKSσ:Įr![ٝ^Ѱ[)G4D2yH9+_4z-sxL֭-/eh6O)bp` (ϻZ (Q@Q@Q@Q@Q@Q@Q@gkmܯơ!])l +B&%wGm  ӟ2E$@~PxSPt~ܻ-ln-grj46);ci'ʌyg[o]>VzLJqqo\O >uJ>o3 5*TS#  O`h(Doos;o*^W PQ_zmyyop6]4+n$d퇨 }SCE;γNW ۟7G&G nruwWԣ݋۳Hm #?n_::GnΫ#?nK[|z<>=:L4[?/=o[s<>=:L4[jxI mϠuy}J={vu_-taz+QQ(a_z ~۟7\GGԣ݇gU ۟7G%G nru'Gԣ݇gW ۟7G&G nruwRvݝW%G ni-uy}J={vuO6ӿ/=o[s{0=o[sHmWΤ{0=o[sHmWΣQ۳Hm #?n_::GnΫ#?nK[|z<>=:L4[l.Y@o6:O:Glί #?nL4[|=:K[?0=o[s{/=o[sHmWΣQ۳Hm#?n_:ΣQ3袊Π(((((O}GKth6bX>S˳\d1@U--gwVIN[\.-xY%e3o4ywD!FrG\:3U״ bm[Uӄ#wpywjuqdAj$7wf.$eDF,_!P$!v6Xkt{v$4k0F+!T*p7&x8}N;\e%+}?ںyo?1*呟\sҸ sKEl6EtIf1^F9tT4{Mb$wqvyѦQfdKUsk. .i%q]!S0zqZQϨCmCj)ku5CoyE#o '1?)q &X#e98N:֋<uY7JGV#$tȯ<9{gi7?oص4b(7o.2oΤ1 0RtxWrE&:Mұ7Xϗ;<'?WWKJ =^8.uo*sEp<_f2T33Y-G&氵G@y{7+'p8kڥoch{E_Miӷھ.Vp q1@B0qeG)x/5{mh++2Tbx%M;~O'?V=j`k:&çjfb-aJ(y#-o|G=_ڑi#s+)G  |_U}u,ŵyؐ35)!n~0hCa)$\ϱ EZ\VzbɧOs3'k^ PCtrxbn] MgnW⥮:~{1 vc3JPRq`P=Z]MKF\Q\Fٞ9{3IV^]Ex7Z-yng*GkH''BP3yVJlF Hcˆ'0ݶrlzEmuoymW8nLmt?S=DQE 1uGi`7o[?^'fb~س4lX?Q6;'ZSF҆sWwRK?oΏ?oΫkŻc%wRKOڟz7Gڟz7Ge=kŻc%wRKOڟz7Gڟz7Ge=kŻc%wRKOڟz7Gڟz7Ge=kŻc% sn?gW=kŻc%wRKOڟz7Gڟz7Ge=kŻc%wRKOڟz7Gڟz7Ge=kŻc%wRKOڟz7Gڟz7Ge=kŻc%wRKOڟz7Gڟz7G_0-K/Y?jߝjߝU0^"6Ǿ;SԱY3jnXz?ԱY3jnXz?ԱW=kŻc%wRKOڟz7Gڟz7Ge=kŻc%wRKOڟz7Gڟz7Ge=kŻc%½63çEf}~t}~t}V_ڮƷ[?^,d~t}~t}U3jnXz?ԱY3jnXz?ԱY3jnXz?ԱY3jEWuQ@Q@Q@Q@Q@Wxwο|]|qNyn%erNҏד@EEWt*[[N ์{)tgpHh7NLLFi쭮'EE_Y +1b w_oFg}KSHmĆ o! ΦF\>ܜn9]WHvs[o@4TCWs#Ql9$5苦Zx>LM d)ip*`ClޥC jQ^( 1^/4l <1̅[/fd+ƕkRTX|.WSI' zN1XRO ] OEiV!m,*̑g*͓x8>fWʬ~7"{y-/,1?:clܤ8fJWn3j:lfeX.vNI|KKCX46wыU43O16~mp@07o-+Iw73+ʤu [xy-<ĘjbJ%AIxM?/5.7{5奼po$ m0yy8+?#ѼQw_2xVZ)mo$$(}݁rFNOjk6mkka9ΈHd䀣iENRHf9*+,|suZkqܝ;R\YudP;RJpsyɯ"Bn54 : XU H8%8&I_Ey ^{<\kQg=N@ၓ IbGNunb֒='PӼ<Б3J[~ܮESk_1W iZxR=}hfXcW22"#g89.)QH( Uꎻ^[`ɍ`װQ@Q@Q@Q@Q@Q@W˽[Օ꿸kUaEm=72WQ d,@,c QOˣWso֯ ,Io:1|̺T8-zmDѵؚ(5LJ4^;y-LJ9\t,9<Z xW%+4&)^C$Jž2q073J]B^UisJo\?п .?rٚW??3J]^¯O uoOht_Y-Jv0A:d,1MzmD&)JS1^,6W ٔy 33 j/ƫMJTK`T H'M7iGw?r(Sʭ#R7ZK?ZKQiGw?rry7ZK?ZKQiGw?rg_ÚcwH5H5-56gs(u97ZK?ZKQiGw?rg_ÚcwH5fpuO8=U;9Iޣ_=j}A!֩jA!֩jgs(Qp j/ƨ j/ƫ iGw?r5=j}A!֩jA!֩jgs(Qp j/ƨ j/ƫ iGw?r5=j}A!֩jA!֩jgs(Qp>H凷2 OUQϯiGw?rg_ÚcwH5H5-56gs(u97ZK?ZKQiGw?rg_ÚcwH5H5-56gs(u97ZK?ZKQiGw?rg_ÚcwH5UkZP?sXOj?3㔅sQ?{:CAO%CAS%am?Q;9GO$??_Q$??_V? Oj?3{:CAS%CAS%am?Q;9GO$??_Q$??_V? Oj?3{:EWuQ@Q@Q@Q@Q@REҠԦalg]ݤ &}]J}c> v${ !+g9[8&;\edF$n1,$Oo xljWn˅Dl|݌nʤx}MuhlmÈHAz|?gVzEWKx CLuW8#9U=Tb5|O[բdKU@72UQ=u f?j} uYO'9j36A'.u땀]\iPE#ƪc22Hqq RzjtV^ci`DeUaPRmN7 Ѵ͉W :V x4:`Ď1Tf 3cUC ettKؤ2O#1@o-4[뭿iz|r$cl$:8AY8fz; xv5փ\!gy9d|Ձ'uH7mhCO6ɨf N L`ڸ? ͏ijDZ7lw6K{jMЙ7mm( 9B@Z.ܗ-Բ,N _1TldR@=@$TNk'k;sg"| 0AϮkּ/lH `Yв)Vw o4ՍΈgҖ/ y3D#Pdr!XpW &&җNĒY(.1L`8o荻v`wڋ&Ͳ|'SHJI9D]*dL;SXF0FHIwV=]?G:}.m4͙"3;cدrrAGmkif|?[2Zlȸ’yVtg{D7 "R *J/=3^ifVZI(ONT*pҹX$E5%ޡ#38y,: OWozu/K]ɝ叆-2ݭ4]>ݦYPZ!H*`zU-C1Œ!X(,Y${Mp/JUbUe涴Fp"bT 9#${h[IӛR :?p'q! 0ZL&MOh.Ƿv6Y.f&#'slU+>`xb:+VuWQӵ6Z,"YsA{S>I;4K4R\~$;ZuDyTݷ$g9nX75=DTӯl-ʌ;W8dC3aG I M]uѴEԮN4Xow!R%' d:M %tQj HH!U@r>lUgУ|v";V',@py*2H$7jW^2Gz37lSG?u]gEV/ay ͚],V2,|#ߘ$MoK=6noɩA2+M$1_N# 3erI^O=y[]ej+Zlwp| i.&Fŏ閳X{lE r,cUܡw:#¶aN1 J b2k6=F{* m;&H\rz&QI~'hp1d#vF/`/|W `s,Еt5f>֬4t!&uh ed 2Ru)Eeoi o,4:\KA! ܐX@'Emc; .ˇ\ś`y,_'##jS{;ۨmJV!!2p ]ַ5SzJ^ifI1/_ˎj ]:-: '.b62$rHX,;0qq]=wQݵ֛;Ck$| {5{Kӭ}6MO.%UU()QEQEQEQEQEQEQEVV;]],dm "7P0<:ZMGMԴ)-0cw` ssuAщ+}lkqZʷ3οsGR-Y9!y#:gIjoHuӿ_'];lO6Aψ玙??6O3SAޝ?O?G6'-L3d43?df];OHuӿ_'Cψ玙??2O3SCޝ?O?G6'-L3$4~"b>S'O ?zw _T^G6'-L3$43?lf];?!N|~lOZ#>#:ghgL?O ?zw O?G6'-L3d43?df];?!N|~lOZ#>#:gIhgL?M ?zw O?G6'-L3$43?lf];?!N|~lOZ_ 3?df:7GxI!N|~lOZ#>#:ghgL?M ?zw Cޝ?؟ 2F|G#:gIhgL?O ?zw Cޝ?؟ 2F|G#:gi~"Q!N|~u ޝEψ玙??2O3SCޝ?/$:/͉ S gL?x' N|~Huӿ_'Aψ玙??2O3SCޝ?'$:/͉ S!gL?x'!N|~Huӿ_'vQEyGXQEQEQEQEQEW |!㛟ڥ' rHwUrw7RGpwUN-cLQLQPwh5d r9".V.CK:'DpvHY}uXڶq-I;k>օRH0NDduOw)k :͝xW[Fvl©`ѺGZhm/XC.w=kQ>eaiy2\]}D]if8=vzyZ1`, !-r\(K3.MK1\E5;#I j1]MfKm~qtyAl|Ey$+zū/$M݄ 3Z"y{.xڳboAqm-[K:,"2D\ (, !-gXמXI'W,Rk ,j%^8o7'#Ǯq?'YN|z_o$yy@!PqKwkTlE>r\Kqn\U<emugwe^l[_ G#l)ǚǓF-:['n3$Ӏ#㞞]xtI]s>( iTЌsϣz2֡}sq}5!Mo7 _smwz<,(q7LOTmS񖃤4y}˕cILd"KSTefnFj+i0\Y[$זeX4as"(b$R^&ɫv˿ח63X7B2^u _:\^Oy廍в3c|YG5Yg- IcG; mH 6Zoh+`}|ˮwǗ/o>f6U~m{O'mW<ֻ1 E=q,ōXޝyq]^_j^OXBodfbx2o$FAuIy[vuko,/”+8`qwT0Zn)=tmdϱ>[N#{Gz!SSLVs^x]daosONs=̐\IȱCMUdng[o] {j(LJ[)Ym 3(DW`Cn$|c;[xe,(eA ň<`g@SV0W UhsJ4﹏?;[j bK5OXO1Wqʿ<n;^ 㵱 f@I(TU ${\Gn;^ 㵱 f@I(TU ${\Gn;^ 㵱 f@I(TU ${\Gn~IA%?a'E,>cI?_0׿wnK5OXO1G%?a'?_0׿wnK5OXO1G%?a'?_0׿wnK5OXO1G%?a'?_0׿wnK5OXO1G%?a'?_0׿wnK5OXO1G%?a'?_0C]oi;ZZpv1'0Y*=#WZ}{7TU $Y*=#WZ}{7TU $Y*=#WZ}{7TU $Y*=#WZ}{7TU $Y*=#WZ}{7?]Q;[?j b*c.r$s<(_9i2;Gv@okcSV0Q f@I(_9i1;Gv@okcSV0Q f@I(_9i1;Gv@okcSV0Q f@I(_9i1;Gv@okcSV0Q f@I(_9i:((((((+t/zq3O,%G(!8㓊(hZvz:eѺhibcx %Plnx\z5ޯ56jb72'Z`A[x $a619/ kٕ,R+Kǹ5ΘC(WU7Xp[i*+GSkm͚2El΅Hn+%s,h> {-^)䷚/YNeBOv'xNOi6E/<̗Qc!%yi r9X_Nͩڋױ,)mnnrܡ,@V_2\۽]5ġDRFņT'UɴF1ƀ'bυbB 9eI [O~W\.[.Z;=`xRec#UvoqW%;tLllK.?fiF+!tgUg$dAYhkG^19кg,eK7̒ƍۖ\,hmws 1%İrs#`<1 mK0;ߙ#2 냜t_xՖ$t#X=d"C V>i6ڻO3[ėJ=:ɸlzt\xmu [yib)D\ne :fw M;dx'dPeH٢'o m9*I;To\ikQ?OTɕsWuZFy={$B<&L#wʧ'pm䰮={Jig}B+XDVqlg2hO}ڵi7my&͘D9;3ۭiL&nfխaDcxQIi= C!2p Mjk\Z}l#XenxW'x/#Zlr$8 !AS)QEQEQEQEQEQEQEQEV=KX&ԭl=Ne!Y@JFqAެS]J崺jSt%SOo2 :Sֺb}2Q`K`2 Y? >y#!d2M&;:ִmDvɨ@yŅ+xfV {`sj.+]vymdge8qEG QzPW{4 r}O\y?]qWQ Q5UzO$;q@SE}O\bo=G&+@MG{zr}O\y?]qWQ Q5Q rC?]qQ;Tu]G&+@MGbo=G/;TuIqj|utEu?5SWY&G3;TuGq@SEu5Q Qޯ${q@SE}O\bo=G&+@MG{zr}O\y?]qWQ Q5Q rC?]qQ;Tu]G&+@MGbo=G/;TuGq@SEu5Q Qޯ${'?<:"ϸv"cdVp~{S1_j?ݷ@s?ϸv"LWmǨ vzoW_ϸv">ڧ ??1_j?ݷ&}=_Hw9>ڧ ?<j.+ vzLWmǨ9#j.(?&}?1_j?ݷ@s?7v??]O&+@MGxehP~c]9!|j.(?&}?1_j?ݷ@s?ϸv"LWmǨ vzoW=_ϸv">ڧ ??1_j?ݷ&}=_Hw9>ڧ ?<j.+ vzLWmǨ9!(򎰢((((($Ÿu\'.Zf[pe\8#hT ^EaMu jVuk%(:,Ju5h]>4Ziv*#ܻ,S`\\b2MkZ6J@!yJjp:*kl,a3Ċ yf<}=HԴK[+=9Y[m,*c欯KՎIxoZ[MQHm$EX<@{uFcO{H'GRUe`A -7VI5ƞ.t̻'psJ}IC]X^u417zjجvp0]AG2faoDm&fU_21eRAGs[ZޑoIfu1[#'[FQ^ [y#1۵NrR?\ ^׮tȴe֤xn$yMqf3|C r;6[Trh/Y~fB}^vs35t9 xM4 Ԍ}Z$"tI\[gp'5]wÖPf1L2y^H!Hg=4q{vhi o ,yi$MŘkԵ{}-#'K|RK :*&ӳOg 7YRL9[f3둜VuÝJGAmeWJ4YPo N|t@"B#Fv8Uڛ}_kA%߇9k~R%MpBydRqsp9ygW'U;uE[EcFXlڧq9d`3ҒVEK=Nv Q8`QU'v1\$T771"fῷ?0=o[sHm2o_pgm?gm?w?i-tv-۟AL̿AGAOGAO]%G ni-t}f__ k{L_{L_#?nK[>/{5 FFs ۟7G%G nY=c?#ih?#ikHm #?n}1oi4oi5_z ۟7Ge>fῷ?ϋ1[?HmϷ3_zϷ|ٯ8o36Ə36ƻL4[?/=o[s̿A7AOGAO]&G ni-t}f__ k{L_{L_#?nL4[>/{5 FFs ~۟7G%G nY=c?#ih?#ikHm%n}G32o_qgm?gm?w?i-tazϷ|ٯ8o36Ə36ƻK[?0=o[s̿A7AOGAO]%G n-t}f__ k{L_{L_ #?nK[>/{5Q^QQEQEQEQEQEо(]uWRi<&13rFA"Q'<Վa5휶CƇsPI3qU|C3]CJE<߼*>c@l5+&5{+deXs,K{gZI{{uKI$h=Ko H4Fi,rg7(*22|)WX o%Âd+eŘn$]ņeGyyk.JOo   |wVM4Xh27#{2ls}yr=iEl$[:;‰ G ݆smI]zwQ_[Iwj)z\Aj-V1.D!RE*O$rz"t_1oƝyNoh~ЯZu: ;q~>SwmZž{$vͶ{u {*܁зuw#ȖzxdκbV8rIQ4h<~MM%QQp0}nM][n-[χ#._=J2xcEkc.UIj>ԗQiqi!Y3QB$ Iɪv:Ɲ7\| ݱ=i?y:}`զX]L*(Ve\̞`HLq{:%ǎ}VKk^Tw)!ߖ/#R +NM _a[FAxU÷mޟ|/.&Ӗ[tʹ <ѾfMŞ@ V5Xu;O= +9tau%԰y>R@U\H8cע[ZNӠ)cmFCSRzRx?:ƣj!E$6jb@R65=D:u&2 KlOȨJؖ,H){X5&fZp Ve"Fsmw*dqmcn5MvIm48YDeq/IV[?^,Z_>/G[_nXzb½gZ_>GG[_nXz?Ա}i#dwumŻc%wRK=bԞumŻc%wRK=by-K/G֗0OQV[?^,Z_>/GZ,i{?-K/G֗0ORyշ-K/G֗0OQ{[?^,Z_>/G[_nXz?Ա}i#dwumŻc%wRK=bԞumŻc%½63çEZ_>GG[_nXz?Ա}i#duumŻc%wRK=byյ-K/G֗0ORyշ-K/G֗0OQEaEPEPEPEPEP^IOzMa,Ktvc++g7}vhavѕ@TRz0;K;CF5 Km`d%r8,w*Z(9 ?~lį-ƙ=bţu YA=x,rqaVkzi%y^sb^d/QHE2w⻎?z QFgt)G*%ٱ^uan4moXֵ3gΛ=HM)J }^%ss嫿: o Jk<6lVE"dq=+hwǕkV!KK]ƻ2^"=ly1DKd1P`Ew?![U"դx2ڈ4b2z842T:ޟ7w[ nk% A Hҧ?*xh E 2 TnMGO~t}~u\?п .?/QSsjߝjߝt_h_rB4/w 9OT{?=ڟz7Gڟz7]! xQ=}wO=O= xQF;@|M ! oiN#B70㔾GO~t}~u\?п .??QSsjߝjߝt_h_rB4/w 9G֨{)9ߵ?oΏ?oκ/B4/w 9G!T{?=ڟz7Gڟz7]! xRe>;EFѿ:п .?h_rQSsjߝjߝt_h_rB4/w 9KT{?=ڟz7Gڟz7]! xSe>AEWuQ@Q@Q@Q@Q@y'~,GWX4g+VW$(}y5tP!X?b W3l>X۱8?>*𥿆.n5I- ʞc2\!=䬿ŒhP=| h&(RGN'rIc~l1H$rpߓ$o-[%"m>[7\<n+s$UE٧[Kg'Aͭqb8`R#85x[3 i6V;e\xY,&kc0F7m˩]\{~;ьRHx&->JQ%8bJPa, ;Pc ]m.]>]wnZMGdDW˄y˗|v?y5Ӵ𧈵n|'f^#471B2ˌStmj@B"[m;Cϕfpuϱ`uܧ(߁-ZjVzZot^P5rw/-@ T^"⋫ɵ;G._N[xFCo,,(I$a}CZNԒL̓p$C3Q; ?F3Xʚ7#bbP&,\j:XK/t*0tĉ(72~WbF(,(l"ӯ|5,v]$Kn u.AT 4L29KQZ:â8J |fE~f!̨WQVm_}n5O=tzmp5-f{J(6 ˿'}Fm $i.Ů|[4rĬ *ϟ,#>@Vgv_dxbڋ5,l92 _ 0!bxZPQ\[FqO@h$GCKQ/4ثߓ_zVGAi6ZkR$,+m'iExC\n ƤAWQB/^y姅%iϦ^YI$P%MpD`v7;ch~ӥn"*9F†pt0]ܼ rzndܯފ:tyDzXuv?abe-X?/\6Y'Qmt?TPDݲj(e+4&)^C$Jž2q073J]JS1^,6W ٔy 33 j/ƫԆ"L9s?ٚW??3J] ?T OUYOfi_ X+v WM$??_Q$??_Q!s?ٚW??3J] OT OT}f{)f@(ҿatCAS%CAS%Yg3.c ?4,]7 kS5M_BZp?z<S9+v Q.c ZK?ZK>D=g3J]fi_ XºoA!֩jA!֩je3ҿaٚW??H5H54CL4,Gf@+ j/ƨ j/ƨS9+v Q.c ZK?ZK>D=g3J]fi_ XºChDZ'X{/zw kT5Ghfi_ X+v WM$??_Q$??_Q!s?ٚW??3J] ?T OT}f{)f@(ҿatCAS%CAS%Yg3.c ?4,]7 kT5G kT5Ghfi_ X+v WM$??_S_Ъ5Où4CL4,Gf@+ j/ƨ j/ƨS9+v Q.c ZK?ZK>D=g3J]fi_ XºoA!֩jA!֩je3ҿaٚW??H5H54CLh(((((2о5X/<=/B ! K199ずڥAMæǨλ%HM"38Oj$צkk kYWHٔRP8W52AU;q$x2$6IWu-+OmTb Au #J#/4 ~.m-,{q ha3<)#Å_4,[O9"Xd'sN2pUu^ HזgXy(dP0;+/hl6XZȋ *Y@+9>\d d\^}bדjmiEk=slFa1FUXHMRA[d2cqװ}ϛ́19>ӂ@=%dkrZX^igkoj}S<ޒDe1p8JuFg "\ /}Ĝ&~`_~'f]B}>Hfmo"GO2yUX# 0młc7P{EM0ҩ`cP#p~sbYH 8qUcy#9~QO5?1/|w~3lдO~@_3ymK[Vi--nc )wS-lo c+nkKٯƫk)6ݸ66;cіagU$  @}jt IO>`#զ\xU>tn-կVqq!KHRBg&^*>Y;G֦]>H1,RJJL`s"5ܧ4HVGMMkնA9vӎ8G<6-m.{nq1=-~&]&]k][K=K2M KeN @smXvť~_R[nmb d2NN0{iL:}Ӽ'~J>^1f1z,tm>pl 8PR4ҵ_ñj,kk[ +}WI42)pWWMjH4MK^rbBVK`x ד&%岪Ap֑"U9P:vmGr"JPUb (=@%W#Uuӻz*~Ǘxq=sZ>bʱ3?n 7\cɤڥѯ0 1s)!c6]ʀ1 r[y .[_5n|۾RW7::Զh|X{W۱;BGr5JL ~7A҂ЊVH!PCɝ89=sS[go1(#(*"(@QEQEQEQEK⻺:;$rC)!7*g8t՟xFfT,o9Kd9*XQG$Uռ_?Ƶ}dq+ZFߵ`c95@j#[XM579kնA9vӎ8@j}&)rjW:]C.E6A=p8iOj?3㕵sty &H|ٱ I\g$^AORh(r5.e?Q;9Z{? ?5i~dTe?Q;9Z{? ?5i{\?%N^? Oj?3㕩^AOSV/o=GrTe?Q;9Z{? ?5i{\?%N^? &gz=gs+WSV/o=M_XmZ|o@緽aS;9F? jjǨ/Tէ Qp;{Oj?3m?V!z?^zBO ZཿaS;9F? jjǨ/Tէ Qp;{Oj?3m?V!z?^zBO ZཿaS;9F? jjǨ/Tէ Qp;{9i6gs+H7TjӐN۶?鷽;SV/o=GrTe?Q;9Z{? ?5i{\?%N^? Oj?3㕩^AOSV/o=GrTe?Q;9Z{? ?5i{\?%N^? Oj?3㕩^AOSV/o=GrTe?R[DNV!z?^z gj۹ 9*v3vgs(QOBO Zཿ{=Òc/iGw?r5/Tէ Q^AO 9*v2gs(QOBO Zཿ{=Òc/iGw?r5/Tէ Q^AO 9*v;*((((((+Ҿ._Xςe:dx.FN /x_N5NJ-4xbnwy@IoB܀ S@6n幎dpF0x Qѧ]MX|/,߼VAl= "b j7I;"I<\]"C1EPqV7ï:u 9O&{[8Yu?,u~aY<=aeqV&fTgr\aā S4=>H=s:3g)ʐF=ԝL[A|kX|Y: m42H1AWI5/^ͫjzWWZI"0( @q`Pg=~bfה]hMNc:(I=Ik"8e E%ԓ< F#3lyzևC^h4Ԛ ڌL8XX #OFqg\Kt@{{]W.Ϊ߻ۂ`PxUm6[n$X R6*L[1pP\2^{K >+FFw ϶6j b\玻Ji|+.YF~Gܾ>~3"Gwjl{o3ǖ:nt]"OCkk`@9'yA+,E ( ( ( ( ( ( ( ( Kugxu/.5\ۈіd1Hܒ tzk+Xޝeq|.2yEc  GjOj*mmdn^%۔dzQ$dIkmt?V< Эk*ެ:bIJ[fy'[o] {j(,x춷ck0Hv [Ջ ߉>ѥIl+rYU u'p!gL?zx~U{v?5o߻o3NgL?x'f [vw#>#:gIhgL?~oAmhտ;~;3d43?dfn?y7CV4hjvfψ玙??2O3G7tvAHo9?4F|G#:ghgL?~oAmhտ;~;3$43?dfn?y7CV4hjvfψ玙??6O3G7tW!o?_ [7 |3$z_F|G#:gIhfc5o߻o3GAmix'3$4wA1oݷCV4F|G#:ghgL?~oAmi ]<]3?lf7%0@;?ٻ瘟oݷCV4F|G#:gIhgL?~oAmhտ;~;3d43?dfn?y7CV4hjvfψ玙??2O3G7t;((((((+\xbX]fwjd66;I9] |/9[W=CE𶫪fV6\" e<xK#$h{}k#^&Mjo?Pev7۝gAmGP{b<ȗvcre BPH oj>L'? ~]) dHƓ`?j/s`}+I75߯siuۗ%լnųZFQYX {3|At)u.$0m{5mūEm!;+~*&6mi]F\Wc"=2TVMgaWZk GfGo.IvHep*e`~:Wϟ?pwzZ7/qHk/S+|d!9 S+0o';B#[ϴG yZ|Pꠈ.A#\d|/];]ӌUj-xoOܧo/UݽC-|uEom̖c%Kx!9 g.=2M:+\j3)#r;vXS^gȩؗ7CD[o'ZҤ*8.OK[\ƥgΫ}Ԑie,R;1P~RFMM]x~u;;Y& -YlmVcq=;Jf]%+4|*]?UEE'@(ҵX4-/&y-IECyI1l)hgg}sv1cN^3*"M jwS_?Y>ŤVMW4{~sx-%ӵQ,W#1YM6.)0K%(2@櫯'Yt-bH-aXWy"<\mEsӣ; j_D[;4loTyLn2ݻp 9ln]̂;8d.b d;AwJKI6W/W{2glgqHlaͼsKij!9J;i6I i\A㚏:%QfI7Z_Okx}"Vmfc"'|qñ!v1[Sx+yD_5mh`i<݊y\%o*1jڗ4Zy_pDH49m,-VkBKpk)9*zV4{خm5 k[?/y tbBA 3\S&5_o}xwqcs?AKyW]ř̆D]wǾA\ ޾m/]W:| "U˻.y#ǦƋ#g땟z;?~boLk760 >kginSsrHҼq&˽>K,༖(%Ӯ7Nf"nRIǟ7#R]|$~R#e>۬G ńْ) 78YQi+ɾ [FgY*GVw (QEQEVj:nMnVXɃ(C0S[=תƶ~)igFXO)紸SɑFh$ߕ.H5ӿ_'w~{ }]O?I ?zw F=>.Huӿ_'w~-Ÿ`r$:/Cޝ?PaOs˹ w~];EŸ`rקd?O?K ?zw F=>.Huӿ_'w~-Ÿ`r$:/Cޝ?PaOs˹ w~];EŸ`r$:/Cޝ?QaOs˹{w~_X`A ;zKG9ܽ ?zw O?T(S_];?!N|~QG9ܿ ?zw O?ThS^];?!N|~R)yw?red5-1.0~svn4374.orig-doc/projectplan/include/timeline1,0.jpg0000644000175000017500000000304611404471610023550 0ustar drazzibdrazzibJFIFHH AppleMark    % #!,!#'(***.1-)1%)*(  (((((((((((((((((((((((((((((((((((((((((((((((((((  }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzw!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzX " ?/v+Y"EcuO? ? ˛ լS>jV fk+Tp3@?Z?ejkVO_4YZ|/լS>jV fk+Tp3@?Z?ejkVO_4YZ|/լS>jV fk+Tp3@?Z?ejkVO_4YZ|/լS>jV fk+Tp3@?Z?ejkVO_4YZ|/լS>jV fk+Tp3@?Z?ejkVO_4YZ|/լS>jV fk+Tp3@?Z?ejkVO_4YZ|/լS>jV fk+Tp3@?Z?ejkVO_4YZ|/լS>jV fk+Tp3@?Z?ejkVO_4YZ|/լS>jV fk+Tp3@?Z?ejkVO_4YZ|/լS>red5-1.0~svn4374.orig-doc/projectplan/include/resource.png0000644000175000017500000000160511404471610023357 0ustar drazzibdrazzibPNG  IHDR szz pHYs  gAMA|Q cHRMz%u0`:o_FIDATxb?@bba XYY12110Y_zĉݤ@ W LLLYX0120111022}?ԩS8 UhddhIH1_P%)  b{% (ƀ Dt$> )Hq@@|L ":?$ 8 v?^g#GR4!D|󋉙 {F&@9 8 XH Lj5O9d15) (,G8a+) Ǐ@6#((J-Z,}(?s\3$~&0^8MRkCb"U0G7oެ'<"@Ayo?R@$9H*A:)f>J (:r0m"ZjOZ䲑z>|"p?? d>}sewtI;,,,@&ȷ  wqǏOXYYAK#C L }0FbBPD C@L  h@KG{vE,| \p| 1yj=IENDB`red5-1.0~svn4374.orig-doc/projectplan/include/timeline.png0000644000175000017500000000710511404471610023337 0ustar drazzibdrazzibPNG  IHDR szz pHYs   OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3- cHRMz%u0`:o_FpIDATxĖOhUǿ7fg6١H-֊x"ڃ@ЃOU`*=zPsb@T֚(XR72٦;7=m 鎛}cw~!bmEfΡ ڜL$%,4Xr~RԺ!@lN, ,RJF" %PJ!0cPG+[5֎u@rFYH]klgJ~m+|ܞO˭.(z"Z]]=u8CD'_J0xFQ yN7rmtuw}CBnH[s`O=G[ p]8ƘEE=8΢8'llm5p]+٭&m{qͿr)^ 2X˲֥0oZMZ710sYH?`}˿dv_$Щ Cn ^?n+'~dfx{<盁'A[@Ȟ @`:TJUd(7LRi3bV2e(-f %0Tx H8`03O-uljh i0+[@00 ;GD,ԽhI3$HH1pWxWk;;wyh3UՎE;!Ֆ% ߮+km%ScO9d2H0Id^~95= l}tןnmNo3M jvD1O}$ )L!W|n Й}%yIa}'IENDB`red5-1.0~svn4374.orig-doc/projectplan/index.html0000644000175000017500000001423411404471610021376 0ustar drazzibdrazzib Red5 1.0 Project Plan

project report: Red5 1.0 Project Plan

project status

start date: end date: variance: cost: completion:
5/26/10 8:00 AM 5/26/10 5:00 PM 0%

detailed reports

resource calendars

esource calendar to-do list
red5-1.0~svn4374.orig-doc/projectplan/Red5 1.0 Project PlanTimeline.html0000644000175000017500000000054211404471610025273 0ustar drazzibdrazzib

red5-1.0~svn4374.orig-doc/projectplan/Red5 1.0 Project PlanGantt.html0000644000175000017500000000066511404471610024610 0ustar drazzibdrazzib
red5-1.0~svn4374.orig-doc/projectplan/Red5 1.0 Project PlanResources.html0000644000175000017500000000211111404471610025471 0ustar drazzibdrazzib Red5 1.0 Project Plan

Resource Report: Red5 1.0 Project Plan

Name Start Date End Date Duration % Complete Assignment Cost

red5-1.0~svn4374.orig-doc/projectplan/Red5 1.0 Project Plan.html0000644000175000017500000011327011404471610023607 0ustar drazzibdrazzib Task Report: Red5 1.0 Project Plan

Task Report: Red5 1.0 Project Plan

Task Start End Duration Completed Dependencies Total Cost Assigned Planned Start Start Variance Constraint Start Planned End End Variance Constraint End
0) Red5 1.0 Project Plan 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1) Development (RoadMap) 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.1) issues/bugs 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2) features 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.1) general 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.1.1) Supported File Formats 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.1.1.1) AMF3 support 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.1.1.2) AMF0 support 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.1.2) protocols 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.1.2.1) IPv4 compliance 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.1.2.2) IPv6 compliance 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.1.3) examples 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.1.3.1) Ready to stream out of the box 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.1.4) errors 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.1.4.1) Server 302 redirection 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.2) build 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.2.1) maven support 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.3) dependencies 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.4) streaming 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.4.1) Live HD/H.264 streaming 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.4.2) dynamic streaming 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.4.3) digital video recordiing 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.4.4) DRM-protected H.264 streaming 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.4.5) XMP metadata support 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.4.6) Bandwidth detection 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.4.7) Custom stream delivery 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.4.8) Timeshifting seek 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.4.9) SWF verification 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.4.10) Dynamic buffering 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.4.11) Quality of service monitoring 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.4.12) Firewall and proxy transversal 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.4.13) Mobile delivery to Adobe® Flash® Lite™ 3 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.4.14) H.264 video and HE-AAC audio streaming 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.4.15) Server-side playlists 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.4.16) Server-side recording, including H.264 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.5) protocol 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.5.1) Apple http live streaming 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.5.2) Microsoft Smooth Streaming 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.5.3) RTSP/RTP 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.5.4) MPEG2 Transport Protocol (MPEG-TS) 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.5.5) RTMP 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.5.6) RTMPT 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.5.7) RTMPTE 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.5.8) RTMPS 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.5.9) RTMFP 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.5.10) RTMPE 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.5.11) ICY (SHOUTcast/icecast) 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.5.12) QucikTime/3GPP (RTSP/RTP) 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.6) Security & Content Protection Options 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.6.1) SecureToken anti-ripping protection 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.6.2) swf Domain/IP address validation 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.6.3) Encrypted delivery (RTMPS/E/TE) 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.6.4) User access controls 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.7) Management 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.7.1) WC3 compliant logging 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.7.2) Interface to standards-based management tools 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.7.3) Management console 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.7.4) Centralized configuration management 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.8) redundancy/failover 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.9) edge/origin 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.9.1) Unlimited scalability with Origin/Edge 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.10) clustering 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.10.1) terracotta 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.11) scripting 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.11.1) rhino 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.11.2) javascript 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.11.3) perl 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.11.4) php 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.11.5) Actionscript 1 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.11.6) Actionscript 3 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%
1.2.12) EIS Support 5/26/10 8:00 AM 5/26/10 5:00 PM 1d 0%

red5-1.0~svn4374.orig-doc/reference/0000755000175000017500000000000011760512606017020 5ustar drazzibdrazzibred5-1.0~svn4374.orig-doc/reference/readme.txt0000644000175000017500000000557311247455116021032 0ustar drazzibdrazzibWe're using the DocBook XSL distribution for HTML and PDF generation. The best results can be achieved with the Saxon XSLT processor (don't use Xalan!) and the Apache FOP library. The documentation is generated by Red5's build.xml file for Ant. Targets included are: * doc-pdf - generates the PDF documentation * doc-html - generates the HTML documentation * doc-htmlsingle - generates single page HTML documentation * doc-clean - clean any output directories for docs NOTE: You will need to setup trac login details so the wiki2docbook tool is able to collect the trac wiki pages to convert to docbook xml. In the red5 build.properties file locate these properties, and place your trac login details here. trac.url=http://trac.red5.org/login/xmlrpc trac.username= trac.password= trac.page=Documentation/UsersReferenceManual To generate documentation, you need to include a lot of libraries, which haven't been added to SVN because they're simply too big. The libraries can be found at: http://red5.electroteque.org/doc/reference/docbook-reference-libs.tar.bz2. doc-prepare target will download these libs and extract them to the lib directory. The fulllist of required libraries are: ant-contrib-1.0b3.jar - Ant Contrib - http://downloads.sourceforge.net/ant-contrib/ant-contrib-1.0b3-bin.tar.gz?modtime=1162486708&big_mirror=0 fop.jar - FOP - http://xmlgraphics.apache.org/fop/download.html fop-hyph.jar - Objects For Formatting Objects required for FOP hypenation - http://offo.sourceforge.net/ avalon-framework-4.2.0.jar - Apache Avalon Framework required by FOP - http://avalon.apache.org/closed.html batik-util.jar - Batik required by FOP - http://xmlgraphics.apache.org/batik/download.cgi commons-io-1.4.jar - Apache Commons IO required by FOP - http://commons.apache.org/io/ commons-logging-1.1.1.jar - Apache Commons Logging required by FOP - http://commons.apache.org/logging/ xmlgraphics-commons-1.3.1.jar - XML Graphics Commons required for FOP images - http://xmlgraphics.apache.org/commons/download.html saxon.jar - Saxon 6.5 - http://saxon.sourceforge.net/ xercesImpl.jar - Xerces required for Xinclude parsing - http://xerces.apache.org/xerces-j/ xalan.jar - Xalan required by Xerces ?? - http://xml.apache.org/xalan-j/ docbook-5.0 - Docbook 5 XML - http://www.docbook.org/xml/5.0/ docbook-xsl-ns - Docbook XSL Namespace Stylesheets required by Docbook 5 - http://sourceforge.net/project/showfiles.php?group_id=21935&package_id=219178 saxon-dbxsl-extensions.jar - Docbook XSL Extensions for Saxon - http://sourceforge.net/project/showfiles.php?group_id=21935&package_id=243973 xslthl-2.0.0.jar - XSLT Syntax Highlighting Extension - http://sourceforge.net/projects/xslthl The Docbook 5 reference - http://www.docbook.org/tdg5/en/html/docbook.html Thanks to Hibernate + Spring Framework, for providing the skeleton for the DocBook documentation! Author: Dan Rossi (spam@electroteque.org) red5-1.0~svn4374.orig-doc/reference/build.xml0000644000175000017500000001455311561764617020663 0ustar drazzibdrazzib red5-1.0~svn4374.orig-doc/reference/styles/0000755000175000017500000000000011760512604020341 5ustar drazzibdrazzibred5-1.0~svn4374.orig-doc/reference/styles/fopdf.xsl0000644000175000017500000005060711044632124022172 0ustar drazzibdrazzib ]> Version Copyright ©right; , -5em -5em Red5 Open Source Flash Server () bold 1 0 1 1 book toc 2 0 0 0 5mm 10mm 10mm 15mm 10mm 0mm 18mm 18mm 0pc Helvetica left false 11 8 1.4 0.8em 17.4cm 4pt 4pt 4pt 4pt 0.1pt 0.1pt wrap wrap 1 left bold pt 0.8em 0.8em 0.8em pt 0.1em 0.1em 0.1em 0.6em 0.6em 0.6em pt 0.1em 0.1em 0.1em 0.4em 0.4em 0.4em pt 0.1em 0.1em 0.1em bold pt false 0.4em 0.6em 0.8em pt 1em 1em 1em #444444 solid 0.1pt 0.5em 0.5em 0.5em 0.5em 0.5em 0.5em 1 #F0F0F0 0 1 90 #F0F0F0 '1' &admon_gfx_path; figure after example before equation before table before procedure before 1 0.8em 0.8em 0.8em 0.1em 0.1em 0.1em xml red5-1.0~svn4374.orig-doc/reference/styles/javadoc.css0000644000175000017500000000411511754746347022503 0ustar drazzibdrazzib/* Javadoc style sheet */ /* Define colors, fonts and other style attributes here to override the defaults */ /* Page background color */ body { background-color: #FFFFFF; color:#333; font-size: 100%; } body { font-size: 0.875em; line-height: 1.286em; font-family: "Helvetica", "Arial", sans-serif; } code { color: #777; line-height: 1.286em; font-family: "Consolas", "Lucida Console", "Droid Sans Mono", "Andale Mono", "Monaco", "Lucida Sans Typewriter"; } a { text-decoration: none; color: #16569A; /* also try #2E85ED, #0033FF, #6C93C6, #1D7BBE, #1D8DD2 */ } a:hover { color: #EEEEEE; background-color: #16569A; } a:visited { color: #CC3300; } a:visited:hover { color: #fff; background-color: #CC3300; } table[border="1"] { border: 1px solid #ddd; } table[border="1"] td, table[border="1"] th { border: 1px solid #ddd; } table[cellpadding="3"] td { padding: 0.5em; } font[size="-1"] { font-size: 0.85em; line-height: 1.5em; } font[size="-2"] { font-size: 0.8em; } font[size="+2"] { font-size: 1.4em; line-height: 1.3em; padding: 0.4em 0; } /* Headings */ h1 { font-size: 1.5em; line-height: 1.286em;} /* Table colors */ .TableHeadingColor { background: #ccc; color:#444; } /* Dark mauve */ .TableSubHeadingColor { background: #ddd; color:#444; } /* Light mauve */ .TableRowColor { background: #FFFFFF; color:#666; font-size: 0.95em; } /* White */ .TableRowColor code { color:#000; } /* White */ /* Font used in left-hand frame lists */ .FrameTitleFont { font-size: 100%; } .FrameHeadingFont { font-size: 90%; } .FrameItemFont { font-size: 0.9em; line-height: 1.3em; } /* Java Interfaces */ .FrameItemFont a i { font-style: normal; color: #666; } .FrameItemFont a:hover i { font-style: normal; color: #fff; background-color: #666; } /* Navigation bar fonts and colors */ .NavBarCell1 { background-color:#E0E6DF; } /* Light mauve */ .NavBarCell1Rev { background-color:#16569A; color:#FFFFFF} /* Dark Blue */ .NavBarFont1 { } .NavBarFont1Rev { color:#FFFFFF; } .NavBarCell2 { background-color:#FFFFFF; color:#000000} .NavBarCell3 { background-color:#FFFFFF; color:#000000} red5-1.0~svn4374.orig-doc/reference/styles/html.xsl0000644000175000017500000001037311044632124022034 0ustar drazzibdrazzib ]> html.css 1 0 1 0 book toc 3 1 1 &callout_gfx_path; 90 '1' &admon_gfx_path; figure after example before equation before table before procedure before ,

Authors

xml
red5-1.0~svn4374.orig-doc/reference/styles/html_chunk.xsl0000644000175000017500000003161211044632124023223 0ustar drazzibdrazzib ]> '5' '1' html.css 1 0 1 0 book toc qandaset toc 3 1 1 &callout_gfx_path; 90 #F0F0F0 '1' &admon_gfx_path; figure after example before equation before table before procedure before ,

Authors

1 xml
red5-1.0~svn4374.orig-doc/reference/styles/fopdf_javadoc.xsl0000644000175000017500000004660011046332373023664 0ustar drazzibdrazzib ]> Version Copyright ©right; , -5em -5em Red5 Open Source Flash Server () bold 1 0 1 1 book toc 2 0 0 0 5mm 10mm 10mm 15mm 10mm 0mm 18mm 18mm 0pc Helvetica left false 11 8 1.4 0.8em 17.4cm 4pt 4pt 4pt 4pt 0.1pt 0.1pt wrap wrap 1 left bold pt 0.8em 0.8em 0.8em pt 0.1em 0.1em 0.1em 0.6em 0.6em 0.6em pt 0.1em 0.1em 0.1em 0.4em 0.4em 0.4em pt 0.1em 0.1em 0.1em bold pt false 0.4em 0.6em 0.8em pt 1em 1em 1em #444444 solid 0.1pt 0.5em 0.5em 0.5em 0.5em 0.5em 0.5em 1 #F0F0F0 0 1 90 #F0F0F0 '1' &admon_gfx_path; figure after example before equation before table before procedure before 1 0.8em 0.8em 0.8em 0.1em 0.1em 0.1em xml red5-1.0~svn4374.orig-doc/reference/styles/html.css0000644000175000017500000001105311243167744022026 0ustar drazzibdrazzibbody { text-align: left; margin-right: 2em; margin-left: 2em; } a, a[accesskey^="h"], a[accesskey^="n"], a[accesskey^="u"], a[accesskey^="p"] { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 12px; color: #003399; } a:active { color: #003399; } a:visited { color: #888888; } p { font-family: Verdana, Arial, sans-serif; } dt { font-family: Verdana, Arial, sans-serif; font-size: 12px; } p, dl, dt, dd, blockquote { color: #000000; margin-bottom: 3px; margin-top: 3px; padding-top: 0; } ol, ul, p { margin-top: 6px; margin-bottom: 6px; } p, blockquote { font-size: 90%; } p.releaseinfo { font-size: 100%; font-weight: bold; font-family: Verdana, Arial, helvetica, sans-serif; padding-top: 10px; } p.pubdate { font-size: 120%; font-weight: bold; font-family: Verdana, Arial, helvetica, sans-serif; } td { font-size: 80%; } td, th, span { color: #000000; } td[width^="40%"] { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 12px; color: #003399; } table[summary^="Navigation header"] tbody tr th[colspan^="3"] { font-family: Verdana, Arial, helvetica, sans-serif; } blockquote { margin-right: 0; } h1, h2, h3, h4, h6 { color: #000000; font-weight: 500; margin-top: 0; padding-top: 14px; font-family: Verdana, Arial, helvetica, sans-serif; margin-bottom: 0; } h2.title { font-weight: 800; margin-bottom: 8px; } h2.subtitle { font-weight: 800; margin-bottom: 20px; } .firstname, .surname { font-size: 12px; font-family: Verdana, Arial, helvetica, sans-serif; } table { border-collapse: collapse; border-spacing: 0; border: 1px black; empty-cells: hide; margin: 10px 0 30px 50px; width: 90%; } div.table { margin: 30px 0 10px 0; border: 1px dashed gray; padding: 10px; } div .table-contents table { border: 1px solid black; } div.table > p.title { padding-left: 10px; } table[summary^="Navigation footer"] { border-collapse: collapse; border-spacing: 0; border: 1px black; empty-cells: hide; margin: 0px; width: 100%; } table.summary, table[summary^="Note"], table[summary^="Warning"], table[summary^="Tip"] { border-collapse: collapse; border-spacing: 0; border: 1px black; empty-cells: hide; margin: 10px 0px 10px -20px; width: 100%; } td { padding: 4pt; font-family: Verdana, Arial, helvetica, sans-serif; } div.warning TD { text-align: justify; } h1 { font-size: 150%; } h2 { font-size: 110%; } h3 { font-size: 100%; font-weight: bold; } h4 { font-size: 90%; font-weight: bold; } h5 { font-size: 90%; font-style: italic; } h6 { font-size: 100%; font-style: italic; } tt { font-size: 110%; font-family: "Courier New", Courier, monospace; color: #000000; } .navheader, .navfooter { border: none; } div.navfooter table { border-style: dashed; border-color: gray; border-width: 1px 1px 1px 1px; background-color: #cde48d; } pre, .literallayout, .programlisting { font-size: 110%; padding: 5px; border-style: solid; border-width: 1px; border-color: #CCCCCC; background-color: #f3f5e9; } ul, ol, li { list-style: disc; } hr { width: 100%; height: 1px; background-color: #CCCCCC; border-width: 0; padding: 0; } .variablelist { padding-top: 10px; padding-bottom: 10px; margin: 0; } .term { font-weight:bold; } .mediaobject { padding-top: 30px; padding-bottom: 30px; } .legalnotice { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 12px; font-style: italic; } .sidebar { float: right; margin: 10px 0 10px 30px; padding: 10px 20px 20px 20px; width: 33%; border: 1px solid black; background-color: #F4F4F4; font-size: 14px; } .property { font-family: "Courier New", Courier, monospace; } a code { font-family: Verdana, Arial, monospace; font-size: 12px; } td code { font-size: 110%; } div.note * td, div.tip * td, div.warning * td, div.calloutlist * td { text-align: justify; font-size: 100%; } .programlisting .interfacename, .programlisting .literal, .programlisting .classname { font-size: 95%; } .title .interfacename, .title .literal, .title .classname { font-size: 130%; } /* everything in a is displayed in a coloured, comment-like font */ .programlisting * .lineannotation, .programlisting * .lineannotation * { color: green; } .question * p { font-size: 100%; } .answer * p { font-size: 100%; } red5-1.0~svn4374.orig-doc/reference/build.properties0000644000175000017500000000001511561336507022234 0ustar drazzibdrazziblocale=en-US red5-1.0~svn4374.orig-doc/reference/html/0000755000175000017500000000000011760512605017763 5ustar drazzibdrazzibred5-1.0~svn4374.orig-doc/reference/html/security.html0000644000175000017500000001765611561764617022552 0ustar drazzibdrazzib Chapter 13. Security

Chapter 13. Security

This document describes the Red5 API that was introduced in version 0.6 to protect access to streams and/or shared objects similar to what the properties Client.readAccess and Client.writeAccess provide in the Macromedia Flash Communication Server / Flash Media Server 2.

13.1. Stream Security

Read (playback) and write (publishing/recording) access to streams is protected separately in Red5.

13.1.1. Stream playback security

For applications that want to limit the playback of streams per user or only want to provide access to streams with a given name, the interface IStreamPlaybackSecurity http://dl.fancycode.com/red5/api/org/red5/server/api/stream/IStreamPlaybackSecurity.html is available in Red5.

It can be implemented by any object and registered in the ApplicationAdapter http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html . An arbitrary number of stream security handlers is supported per application. If at least one of the handlers denies access to the stream, the client receives an error NetStream.Failed with a description field giving a corresponding error message.

An example handler that only allows access to streams that have a name starting with liveStream is described below:



import org.red5.server.api.IScope; 
import org.red5.server.api.stream.IStreamPlaybackSecurity; 
            
public class NamePlaybackSecurity implements IStreamPlaybackSecurity { 
            
    public boolean isPlaybackAllowed(IScope scope, String name, int start, 
     int length, boolean flushPlaylist) { 
         if (!name.startswith("liveStream")) { 
            return false; 
         } else { 
            return true; 
         } 
     };             
} 

To register this handler in the application, add the following code in the appStart method:



registerStreamPlaybackSecurity(new NamePlaybackSecurity()); 

Red5 includes a sample security handler that denies all access to streams (DenyAllStreamAccess http://dl.fancycode.com/red5/api/org/red5/server/api/stream/support/DenyAllStreamAccess.html).

13.1.2. Stream publishing security

In most applications that allow the user to publish and/or record streams, this access must be limited to prevent the server from being misused. Therefore, Red5 provides the interface IStreamPublishSecurity http://dl.fancycode.com/red5/api/org/red5/server/api/stream/IStreamPublishSecurity.html to deny publishing of certain streams.

Similar to IStreamPlaybackSecurity http://dl.fancycode.com/red5/api/org/red5/server/api/stream/IStreamPlaybackSecurity.html, it can be implemented by any object and registered in the ApplicationAdapter http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html. If one of the registered handlers denies access, the client receives an error NetStream.Failed with a description field giving a corresponding error message.

An example handler that only allows authenticated connections to publish a live stream starting with liveStream and deny all other access is described below:

red5-1.0~svn4374.orig-doc/reference/html/system-requirements.html0000644000175000017500000001252211561764617024733 0ustar drazzibdrazzib Chapter 8. Recommended System Requirements

Chapter 8. Recommended System Requirements

The following are suggested system requirements:

Table 8.1.  Red5 System Requirements

Supported operating systems


Windows 2000 Server
Windows 2003 Server, Standard Edition
Linux Variants
Mac OSX 10.4 and above


Minimum Hardware Requirements
(Development / Budget / Low Traffic)


X86-compatible CPU (Pentium 4, 3.2 GHz or better, Intel Duo Core 2, PentiumD)
1 GB Available Memory
100MB or 1GB Ethernet card
200 MB of available disk space (SATA II)


Recommended Hardware Requirements
(High Traffic Production)


Dual-core / Quad Core (Intel XEON 2Ghz and above, Opteron 2Ghz and above)
2 - 4 GB Available memory or above
1GB Ethernet Card with big pipe network
200 MB of available disk space (10K RPM and above SATA II \ SCSI RAID 1-5)
Network Storage Cluster Solution for mass content storage (ie Isolon, Dell MD1000)

Software Requirements


Java JRE 1.5 or 1.6
Service Scripts (Java Service Wrapper, FireDaemon Pro)


red5-1.0~svn4374.orig-doc/reference/html/tomcat-deployment.html0000644000175000017500000012506011561764617024335 0ustar drazzibdrazzib Chapter 11. Deploying Red5 To Tomcat

Chapter 11. Deploying Red5 To Tomcat

11.1. Preface

This document describes how to deploy Red5 to Tomcat as web application archive (WAR). The standard Red5 deployment consists of a standalone Java application with an embedded J2EE container (Jetty or Tomcat) running as a system service, whereas the WAR version runs inside of a J2EE container.

11.2. Deployment

The Tomcat war deployer scans the webapps directory for wars periodically. When a war is found that has not yet been deployed, the deployer will expand the war file into a directory based on the filename of the war. A war named myapp.war would be expanded into a directory named myapp; depending upon your installation the full path would look similar to this C:\Tomcat- 6.0.14\webapps\myapp.

Red5 server is packaged into a file named ROOT.war, this filename has a special connotation on most J2EE application servers and is normally the default or root web context. The root web context is responsible for servicing requests which do not contain a path component. A url with a path component looks like http://www.example.com/myapp wheres root web application url would resemble this http://www.example.com/. An additional configuration file the context descriptor, is located in the META-INF directory for each web context. Applications that are not accessed via HTTP, do not require a web / servlet context. The root war file contains nearly everything that is in a standalone server build except for embedded server classes and select configuration files.

11.3. Context descriptors

A Context XML descriptor is a fragment of XML data which contains a valid Context element which would normally be found in the main Tomcat server configuration file (conf/server.xml). For a given host, the Context descriptors are located in $CATALINA_HOME/conf/[enginename]/[hostname]/. Note that while the name of the file is not tied to the webapp name, when the deployer creates descriptors from the context.xml files contained in the war; their names will match the web application name.

Context descriptors allow defining all aspects and configuration parameters of a context, such as naming resources and session manager configuration. It should be noted that the docBase specified in the Context element can refer to either the .WAR or the directory which will be created when the .WAR is expanded or the .WAR itself.

11.4. Red5 Configuration

Configuration of the Red5 server consists of a few context parameters in the web.xml, a default context file, a bean ref file, and a Spring web context file for each application that will utilize Red5 features. Web applications that use only AMF to communicate with Red5 do not require a configuration entry in the servers application context. The application context which is managed via Spring is only available to applications that are contained within the root war; due to the way that the web application classloaders work. In addition, Red5 uses a context counterpart called a Scope which serves as a container for the context, handler, server core instance, and a few other objects. A scope is similar to the application model in FMS. The initial entry point or startup servlet for Red5 is the WarLoaderServlet and it is configured as a servlet listener in the web.xml as shown below. Functionally this servlet takes the place of the Standalone class in a standard Red5 server



<listener> 
  <listener-class>org.red5.server.war.WarLoaderServlet</listener-class> 
</listener> 

This listener is responsible for starting and stopping Red5 upon receipt of context initialized and context destroyed container events. The war loader is similar in function to the Spring ContextLoaderListener servlet but is specialized for Red5.

11.4.1. Spring contexts

There are two types of contexts used by Red5, "default" and "web"; there may be only one default context but any number of web contexts.

11.4.2. Default context

The default context is synonymous with the global application context and is responsible for providing objects and resources at the top or global level. Spring beans in this level are configured via the defaultContext.xml and beanRefContext.xml which are located in the ROOT classes directory (ex. C:\Tomcat-6.0.14\webapps\ROOT\WEB-INF\classes). The bean ref file defines the default.context bean which as an instance of org.springframework.context.support.ClassPathXmlApplicationContext. Two other configuration files red5-common.xml and red5-core.xml are used to construct the default context; these files are derived from the standalone configuration files of the same names, the primary difference is that the server embedding sections have been removed.

The default context is referenced in the web.xml via the parentContextKey parameter:



<context-param> 
  <param-name>parentContextKey</param-name> 
  <param-value>default.context</param-value> 
</context-param> 

This parameter is used by the ContextLoader to locate the parent context, which in turn allows the global resources to be located. The context loader is used by the WarLoaderServlet to initialize the web contexts.

The scope counterpart to the global context is the global scope and it is referenced in the web.xml via the globalScope parameter:



<context-param> 
  <param-name>globalScope</param-name> 
  <param-value>default</param-value> 
</context-param> 

11.4.3. Web context

Web context definitions are specified in Spring configuration files suffixed with -web.xml; If your application is named oflaDemo then its configuration file would be named oflaDemo-web.xml. The Spring web context files should not be confused with J2EE context descriptors as they are only used for red5 web contexts and the later are used by Tomcat. Each web context must have a corresponding configuration file, the configuration files are specified using an ant- style parameter in the web.xml as shown below.



<context-param> 
  <param-name>contextConfigLocation</param-name> 
  <param-value>WEB-INF/classes/*-web.xml</param-value> 
</context-param> 

Context configuration files specify the resources that are used to notify the application about joining / leaving clients and provide the methods that a client can call. Additionally, the configuration files specify the scope hierarchy for these classes.

Every context configuration must contain a minimum of three entries - a context, scope, and handler. The only exception to this rule is the root web application since it does not have a handler application, in this case the global handler is used.

  • Context - Each context must have a unique name assigned since all the

contexts exist within a single Spring application context. The root web context is named web.context, additional contexts suffix this base name with their web application name; for example oflaDemo would be named web.context.oflaDemo. A context is specified in the web context file as shown below.



<bean id="web.context" class="org.red5.server.Context"> 
  <property name="scopeResolver" ref="red5.scopeResolver" /> 
  <property name="clientRegistry" ref="global.clientRegistry" /> 
  <property name="serviceInvoker" ref="global.serviceInvoker" /> 
  <property name="mappingStrategy" ref="global.mappingStrategy" /> 
</bean> 

  • Scope - Every application needs at least one scope that links the handler

to the context and the server. The scopes can be used to build a tree where clients can connect to every node and share objects inside this scope (like shared objects or live streams). You can consider the scopes as rooms or instances. The root scope has the name web.scope, additional scope names should follow the naming convention specified for contexts. A scope for oflaDemo would be named web.scope.oflaDemo so that it will not conflict with other contexts.

  • A scope bean has the following properties:

    1. server - This references the server red5.server

    2. parent - The parent for this scope is normally global.scope

    3. context - Context for this scope, use the web.context for root and

  • web.context.oflaDemo for oflaDemo

    1. handler - Handler for this scope, which is similar to a main.asc in

  • FMS.

    1. contextPath - The path to use when connecting to this scope.

    2. virtualHosts - A comma separated list of host names or IP addresses this scope listens on. In the war version we do not control the host names, this is accomplished by Tomcat.

The root scope definition looks like this:



<bean id="web.scope" class="org.red5.server.WebScope" init-method="register"> 
  <property name="server" ref="red5.server" /> 
  <property name="parent" ref="global.scope" /> 
  <property name="context" ref="web.context" /> 
  <property name="handler" ref="global.handler" /> 
  <property name="contextPath" value="/" /> 
  <property name="virtualHosts" value="*,localhost, localhost:8080" /> 
</bean> 

The contextPath is similar to the docBase in the J2EE context file for each web application. Where the docBase is used to locate resources by HTTP, the contextPath is use to find resources via RTMP. Your applications may add additional elements after the configured path to dynamically create extra scopes. The dynamically created scopes all use the same handler but have their own properties, shared objects and live streams.

  • Handler - Every context needs a handler to provide the methods called by

connecting clients. All handlers are required to implement org.red5.server.api.IScopeHandler, however you may implement additional interfaces for controlling access to shared objects or streams. A sample implementation is provided with Red5 that may be used as your base class: org.red5.server.adapter.ApplicationAdapter. Please refer to the javadoc for this class for additional details. As an example the scope handler for the oflaDemo is shown:



<bean id="web.handler.oflaDemo" 
class="org.red5.server.webapp.oflaDemo.Application"/>

The id attribute is referenced by the oflaDemo scope definition:



<bean id="web.scope.oflaDemo" class="org.red5.server.WebScope" init- 
  method="register"> 
  <property name="server" ref="red5.server" /> 
  <property name="parent" ref="global.scope" /> 
  <property name="context" ref="web.context.oflaDemo" /> 
  <property name="handler" ref="web.handler.oflaDemo" /> 
  <property name="contextPath" value="/oflaDemo" /> 
  <property name="virtualHosts" value="*,localhost, localhost:8080" /> 
</bean> 

If you don't need any special server-side logic, you can use the default application handler provided by Red5:



<bean id="web.handler" class="org.red5.server.adapter.ApplicationAdapter" /> 

11.4.4. External applications

An external application refers to a web application that accesses Red5 outside of the ROOT web application. Whether these applications exist within the same JVM instance or not, they may only access Red5 via RTMP or the AMF tunnel servlet. The tunnel servlet is configured in the web.xml for each application that requires AMF communication with Red5, an example is shown below:



<servlet> 
  <servlet-name>gateway</servlet-name> 
  <servlet-class>org.red5.server.net.servlet.AMFTunnelServlet</servlet-class> 
</servlet> 
    
<servlet-mapping> 
  <servlet-name>gateway</servlet-name> 
  <url-pattern></servlet-mapping> 
</servlet-mapping> 

The tunnel servlet class must be on the classpath of the application under which it is executed. In addition to the tunnel servlet the org.red5.server.net.servlet.ServletUtils class is required along with the following library jars:


commons-codec-1.3.jar 
commons-httpclient-3.0.1.jar 
commons-logging-1.1.jar 
log4j-1.2.14.jar 
mina-core-1.1.2.jar 

These jars should be placed in the WEB-INF/lib directory of your application. ex.


C:\Tomcat-6.0.14\webapps\myapp\WEB-INF\lib

11.5. Creating and deploying your application

In the following section, two applications will be covered. The first will be a web application that communicates with Red5 via AMF or RTMP and has its own handler, referred to as "RemoteApp". The second will consist an SWF that communicates with Red5 via RTMP, this application will be called "LocalApp". Any IDE may be used to create these applications as long as it supports Java; the Eclipse IDE is suggested. SWF files outlined in the examples were created using AS3 in Flex.

11.5.1. Remote application

This example will provide you with the minimum amount of configuration needed for a remote Red5 application. The following resources will be created:

  • J2EE web application

  • Client SWF

  • Red5 handler class

  • Spring web context

Steps

  1. Create a web application named RemoteApp in your IDE.

  2. Obtain a red5.jar, which may be downloaded from http://red5.googlecode.com/files/red5.jar or built from source with the command "ant jar". This library is needed if you extend the ApplicationAdapter for your scope handler.

  3. Obtain the red5-remoting.jar, this may be accomplished by building yourself from the command line with "ant remotejar" or by downloading it from http://red5.googlecode.com/files/red5-remoting.jar. This library provides the AMF tunnel servlet.

  4. Place the library jars in your project library directory and add them to your build classpath.

  5. Compile the Java and Flex source.

  6. Create a directory named RemoteApp in the Tomcat webapps directory. ex. C:\Tomcat-6.0.14\webapps\RemoteApp

  7. Copy the contents of the web directory to the RemoteApp directory.

  8. From the bin directory copy the RemoteApp.swf to the webapps\RemoteApp directory.

  9. Copy the lib directory and its contents to the WEB-INF, excluding the red5.jar file.

  10. Copy the whole example directory and the RemoteApp-web.xml file from the bin directory to the classes directory under ROOT. ex. C:\Tomcat- 6.0.14\webapps\ROOT\WEB-INF\classes

  11. Restart tomcat

  12. Open your browser and go to: http://localhost:8080/RemoteApp/RemoteApp.html

  13. Click on the RTMP or HTTP connect buttons. For a successful test you should see a server response of "Hello World".

11.5.2. Local application

A simple application that resides entirely within the ROOT web application. This example consists of a Spring web context, handler class, and a client SWF.

'Steps '

  1. Create a web application named LocalApp in your IDE.

  2. Obtain a red5.jar, which may be downloaded from http://red5.googlecode.com/files/red5.jar or built from source with the command "ant jar". This library is needed if you extend the ApplicationAdapter for your scope handler.

  3. Place the library jar in your project library directory and add it to your build classpath.

  4. Compile the Java and Flex source.

  5. Copy the LocalApp.html and LocalApp.swf from the bin directory to the ROOT directory. ex. C:\Tomcat-6.0.14\webapps\ROOT

  6. Copy the whole example directory and the LocalApp-web.xml file from the bin directory to the classes directory under ROOT. ex. C:\Tomcat- 6.0.14\webapps\ROOT\WEB-INF\classes

  7. Restart tomcat

  8. Open your browser and go to: http://localhost:8080/LocalApp.html

  9. Click on the connect button. For a successful test you should see a server response of "Hello World".

11.5.3. Example Source

The example application source is available in Subversion at https://red5.googlecode.com/svn/java/example/trunk/

11.6. Additional web configuration

Log4j - The path to the logging configuration file and the Spring logging startup servlet are shown below. These entries should precede the war loader servlet entry so that logging is initialized prior to Red5 startup.



<context-param> 
  <param-name>log4jConfigLocation</param-name> 
  <param-value>/WEB-INF/log4j.properties</param-value> 
</context-param> 
<listener> 
  <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 
</listener>  

AMF gateway - This servlet provides communication with server applications using AMF.



<servlet> 
  <servlet-name>gateway</servlet-name> 
  <servlet-class>org.red5.server.net.servlet.AMFGatewayServlet</servlet-class> 
  <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
  <servlet-name>gateway</servlet-name> 
  <url-pattern>/gateway</url-pattern> 
</servlet-mapping> 

RTMPT - This servlet implements an RTMP tunnel via HTTP, this is normally used to bypass firewall issues.



<servlet> 
  <servlet-name>rtmpt</servlet-name> 
  <servlet-class>org.red5.server.net.rtmpt.RTMPTServlet</servlet-class> 
  <load-on-startup>2</load-on-startup> 
</servlet> 
<servlet-mapping> 
  <servlet-name>rtmpt</servlet-name> 
  <url-pattern>/open/*</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
  <servlet-name>rtmpt</servlet-name> 
  <url-pattern>/idle/*</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
  <servlet-name>rtmpt</servlet-name> 
  <url-pattern>/send/*</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
  <servlet-name>rtmpt</servlet-name> 
  <url-pattern>/close/*</url-pattern> 
</servlet-mapping> 

Security - The following entries are used to prevent retrieval of sensitive information.



<security-constraint> 
  <web-resource-collection> 
    <web-resource-name>Forbidden</web-resource-name> 
    <url-pattern>/WEB-INF/*</url-pattern> 
  </web-resource-collection> 
  <auth-constraint /> 
</security-constraint> 
<security-constraint> 
  <web-resource-collection> 
    <web-resource-name>Forbidden</web-resource-name> 
    <url-pattern>/persistence/*</url-pattern> 
  </web-resource-collection> 
  <auth-constraint /> 
</security-constraint> 
<security-constraint> 
  <web-resource-collection> 
    <web-resource-name>Forbidden</web-resource-name> 
    <url-pattern>/streams/*</url-pattern> 
  </web-resource-collection> 
  <auth-constraint /> 
</security-constraint>

11.7. Troubleshooting

If you have problems with deployment or if your application does not start, follow these steps prior to posting a bug. Directory examples use a typical windows based path structure.

  1. Stop the Tomcat server

  2. Locate your Tomcat installation directory


C:\Program Files\Apache\Tomcat 

  1. Delete the "work" directory


C:\Program Files\Apache\Tomcat\work 

  1. Delete the "Catalina" directory from the "conf" directory


C:\Program Files\Apache\Tomcat\conf\Catalina 

  1. Delete the expanded war directories, if they exist


C:\Program Files\Apache\Tomcat\webapps\ROOT 
C:\Program Files\Apache\Tomcat\webapps\echo 
C:\Program Files\Apache\Tomcat\webapps\SOSample 

  1. Ensure your WAR files are in the webapps directory


C:\Program Files\Apache\Tomcat\webapps\ROOT.war 
C:\Program Files\Apache\Tomcat\webapps\echo.war 
C:\Program Files\Apache\Tomcat\webapps\SOSample.war 

  1. Restart Tomcat

If you still experience problems, gather the following information and post an issue on Trac after you do a quick search to see if others have experienced the same problem.

  1. Java version

  2. Tomcat version

  3. Operating system

  4. Red5 version (0.8, Trunk, Revision 2283, etc...)

11.8. Definitions

AMF::

A binary format based loosely on the Simple Object Access Protocol (SOAP). It is used primarily to exchange data between an Adobe Flash application and a database, using a Remote Procedure Call. Each AMF message contains a body which holds the error or response, which will be expressed as an ActionScript Object.

Ant::

Software tool for automating software build processes. It is similar to make but is written in the Java language, requires the Java platform, and is best suited to building Java projects.

AS3::

A scripting language based on ECMAScript, used primarily for the development of websites and software using the Adobe Flash Player platform.

Flex::

Software development kit and an IDE for a group of technologies initially released in March of 2004 by Macromedia to support the development and deployment of cross platform, rich Internet applications based on their proprietary Macromedia Flash platform.

RTMP::

Real Time Messaging Protocol (RTMP) is a proprietary protocol developed by Adobe Systems that is primarily used with Adobe Flash Media Server to stream audio, video, and data over the internet to the Adobe Flash Player client. RTMP can be used for Remote Procedure Calls. RTMP maintains a persistent connection with an endpoint and allows real-time communication. Other RPC services are made asynchronously with a single client/server request/response model, so real-time communication is not necessary.

RTMPT::

RTMP using HTTP tunneling.

SWF::

Proprietary vector graphics file format produced by the Flash software from Adobe. Intended to be small enough for publication on the web, SWF files can contain animations or applets of varying degrees of interactivity and function. SWF is also sometimes used for creating animated display graphics and menus for DVD movies, and television commercials.

Tomcat::

A web container, or application server developed at the Apache Software Foundation (ASF). Tomcat implements the servlet and the JavaServer Pages (JSP) specifications from Sun Microsystems, providing an environment for Java code to run in cooperation with a web server. It adds tools for configuration and management but can also be configured by editing configuration files that are normally XML-formatted. Tomcat includes its own internal HTTP server.

11.9. Bibliography

red5-1.0~svn4374.orig-doc/reference/html/demo-applications.html0000644000175000017500000006005011561764617024275 0ustar drazzibdrazzib Chapter 17. Red5 Demo Applications

Chapter 17. Red5 Demo Applications

The Red5 demo applications are available for downloaded on demand using the installer application located at http://localhost:5080/installer.

17.1. Getting Red5 Demo Applications Server-Side and Client-Side Source

  1. With your favourite SVN client check out the source code from svn at this address http://red5.googlecode.com/svn/java/example/trunk/ or https://red5.googlecode.com/svn/java/example/trunk/ if you have a google code login.

  1. With your favourite SVN client check out the source code from svn at this address http://red5.googlecode.com/svn/flash/trunk/ or https://red5.googlecode.com/svn/flash/trunk/ if you have a google code login.

17.1.1. List Of Available Demo Applications (Server Side)

  • SOSample - A simple shared ball demo that makes use of Shared Objects.

  • admin - The Red5 administration panel.

  • echo - A test application that runs RTMP/AMF datatype tests.

  • oflaDemo - Simple video player as shown on the Online Open Source Flash conference.

  • bwcheck - Demo application that detects the client bandwidth.

  • fitcDemo - Video conference with chat.

17.1.2. List Of Available Demo Applications (Client Side)

  • admin - The admin panel client application

  • bwcheck - Demo to interface with the bandwidth check application, tests both download and upload rates.

  • echo - Simple echo test AMF client

  • loadtest - Simple loading testing tool, requesting a file multiple times.

  • port-tester - Open port tester application.

  • publisher - Simple broadcaster application

17.2. Environment Build Setup

To build the demo applications and add WAR snapshots to the subversion repository, the ant environment requires a SvnAnt task library added to the ant common library directory:

  1. Go here: http://subclipse.tigris.org/svnant.html

  2. Download the latest SvnAnt

ex: http://subclipse.tigris.org/files/documents/906/43359/svnant-1.2.0-RC1.zip

  1. Unzip the archive and place the jar files in your Ant lib directory

C:\dev\ant\lib

4. Using your svn client or subclipse svn client in eclipse checkout or update the snapshots repository https://red5.googlecode.com/svn/snapshots. It will keep the registry.xml file up to date for modifying later.

  1. Add these variables to a build.properties file into user home directory

 
 svn.url=http://red5.googlecode.com/svn/snapshots/
 svn.login=youruser
 svn.password=the google code password
 snapshot.path=/www/red5_snapshots/
 Where snapshot.path is the path to the checked out snapshots directory. 

17.3. Building The Demo Application

To build the application and upload the created WAR file to the snapshots repository run the following ant target.

$ ant upload-snapshot

17.4. Updating The Applications Registry

Once the updated WAR has been uploaded to the snapshots repository, the registry.xml file requires to be updated so the demo applications installer will collect the update.

  1. Locate in the console output after uploading snapshot something like Destination: /www/red5_snapshots/admin- r3197-java6.war the file of the new war will be admin- r3197-java6.war.

  2. Edit the registry.xml in the snapshots checkout update the webapp entry with the new filename and commit the change

ie



<application name="admin">
			<author>Martin M, Dan Rossi</author>
			<desc>Administration console</desc>
			<filename>admin-r3197-java6.war</filename>
</application>

[Note]Note

Subclipse version for committing changes also made by svnant in the snapshots repository, needs to be version 1.4 which is bound to subversion version 1.5 using this update site http://subclipse.tigris.org/update_1.4.x. Other svn clients also need to be bound to subversion 1.5 or you will get client too old errors.

17.5. Demo Applications Documentation

Following is documentation for the demo applications:

17.5.1. Bandwidth Check Application

This section explains the bandwidth check application and how to use it. The bandwidth check application handles two service method calls to trigger a download or upload rate check and return information to the flash client to determine what video bitrate to use.

17.5.1.2. Bandwidth Check Service Methods

The service method is enabled in the bean with a name bwCheckService.service.

	
	
	<bean id="bwCheckService.service" class="org.red5.demos.bwcheck.BandwidthDetection" />
	
	

Inside the BandwidthDetection class there are two service methods:

  • Trigger a server to client rate check

	
	
	 public void onServerClientBWCheck(Object[] params) {
			IConnection conn = Red5.getConnectionLocal();
			ServerClientDetection serverClient = new ServerClientDetection();
			serverClient.checkBandwidth(conn);
	 }
	
	
  • Trigger a client to server rate check

	
	
	 public Map<String, Object> onClientBWCheck(Object[] params) {
			ClientServerDetection clientServer = new ClientServerDetection();
			return clientServer.onClientBWCheck(params);
	 }
	
	

17.5.1.3. ServerClientDetection

The ServerClientDetection class detects server to client bandwidth. 3 set of payload data arrays are intialized, the first with 1200 keys, and the next two with 12000 keys ie

	
	
	for (int i = 0; i < 12000; i++) {
	  payload_1[i] = Math.random();
	}
	
	  p_client.setAttribute("payload_1", payload_1);
	
	

The start microtime is recorded, along with an initial number of bytes sent to the client.

To initiate the handshake with the client method onBWCheck is called with parameters

  • count - the number of times a result has been received from the client

  • sent - the number of times the client method onBWCheck has been called

  • timePassed - The interval time in milliseconds since the beginning of the bandwidth checking has occured.

  • latency -

  • cumLatency - the value of the increased passes from server to client.

	
	
	private void callBWCheck(Object payload)
		{
			IConnection conn = Red5.getConnectionLocal();
			
	
			Map<String, Object> statsValues = new HashMap<String, Object>();
			statsValues.put("count", this.count);
			statsValues.put("sent", this.sent);
			statsValues.put("timePassed", this.timePassed);
			statsValues.put("latency", this.latency);
			statsValues.put("cumLatency", this.cumLatency);
			statsValues.put("payload", payload);
			
			if (conn instanceof IServiceCapableConnection) {
				((IServiceCapableConnection) conn).invoke("onBWCheck", new Object[]{statsValues}, this);
			}
		}
	
	

An initial payload is sent with a size of 1200 keys, of the second pass, if the pass count is less than 3 and the time interval passed is less than 1 second progressively increase the payload packet sent with a size of 12000 keys.

On the next pass if its between 3 and less than 6 times and less than 1 second, send the 3rd payload packet.

On the next pass if its greater than 6 times and less than 1 second, send the 4th payload packet.

Once the times passed reaches the amount of times sent, send the client the calculated rate, calculated by the following

	
	
	this.deltaDown = (endStats.getWrittenBytes() - beginningValues.get("b_down")) * 8 / 1000; // bytes to kbits
	            this.deltaTime = ((now - beginningValues.get("time")) - (latency * cumLatency)) / 1000; // total dl time - latency for each packet sent in secs
	            
	            if (Math.round(deltaTime) <= 0) {
					this.deltaTime = (now - beginningValues.get("time") + latency) / 1000;
				}
				this.kbitDown = Math.round(deltaDown / deltaTime); // kbits / sec
				
	            if (kbitDown < 100) this.kbitDown = 100;
	            
	            log.info("onBWDone: kbitDown: {} deltaDown: {} deltaTime: {} latency: {} ", new Object[]{kbitDown, deltaDown, deltaTime, this.latency});
	            
	            this.callBWDone();                                 
	
	

This will call a client method onBWDone

  • kbitDown - the kbits down value

  • deltaDown -

  • deltaTime -

  • latency - The latency delay calculated between server and client

	
	
	private void callBWDone()
		{
			IConnection conn = Red5.getConnectionLocal();
			
			Map<String, Object> statsValues = new HashMap<String, Object>();
			statsValues.put("kbitDown", this.kbitDown);
			statsValues.put("deltaDown", this.deltaDown);
			statsValues.put("deltaTime", this.deltaTime);
			statsValues.put("latency", this.latency);
			
			if (conn instanceof IServiceCapableConnection) {
				((IServiceCapableConnection) conn).invoke("onBWDone", new Object[]{statsValues});
			}
		}
	
	
17.5.1.3.1. Client Side Download Detection

Client side callback methods are setup to enable the detection.


public function onBWCheck(obj:Object):void
{
dispatchStatus(obj);
}

public function onBWDone(obj:Object):void 

dispatchComplete(obj);


And then the information is obtainable on the Object argument


public function onServerClientComplete(event:BandwidthDetectEvent):void
{
txtLog.data += "\n\n kbit Down: " + event.info.kbitDown + " Delta Down: " + event.info.deltaDown + " Delta Time: " + event.info.deltaTime + " Latency: " + event.info.latency;
txtLog.data += "\n\n Server Client Bandwidth Detect Complete";
txtLog.data += "\n\n Detecting Client Server Bandwidth\n\n";
ClientServer();
}

17.5.1.4. ClientServerDetection

The ClientServerDetection class helps detect client to server bandwidth. The server side method onClientBWCheck is called with some information to help the client to determine the bandwidth.

  • cOutBytes - The bytes read from the client

  • cInBytes - The bytes sent to the client

  • time -

	
	
	public Map<String, Object> onClientBWCheck(Object[] params) {
			final IStreamCapableConnection stats = this.getStats();
	
			Map<String, Object> statsValues = new HashMap<String, Object>();
			Integer time = (Integer) (params.length > 0 ? params[0] : 0);
			statsValues.put("cOutBytes", stats.getReadBytes());
			statsValues.put("cInBytes", stats.getWrittenBytes());
			statsValues.put("time", time);
			
			log.info("cOutBytes: {} cInBytes: {} time: {}", new Object[]{stats.getReadBytes(), stats.getWrittenBytes(), time});
	
			return statsValues;
	
		}
	
	
red5-1.0~svn4374.orig-doc/reference/html/stream-paths.html0000644000175000017500000003417511561764617023306 0ustar drazzibdrazzib Chapter 12. Customize Stream Paths

Chapter 12. Customize Stream Paths

This document describes how applications can stream ondemand videos (VOD) from or record to custom directories other than the default streams folder inside the webapp.

12.1. Filename generator service

Red5 uses a concept called scope services for functionality that is provided for a certain scope. One of these scope services is IStreamFilenameGenerator http://dl.fancycode.com/red5/api/org/red5/server/api/stream/IStreamFilenameGenerator.html that generates filenames for VOD streams that should be played or recorded.

12.2. Custom generator

To generate filename in different folders, a new filename generator must be implemented:



import org.red5.server.api.IScope; 
import org.red5.server.api.stream.IStreamFilenameGenerator; 
public class CustomFilenameGenerator implements IStreamFilenameGenerator { 
 /** Path that will store recorded videos. */ 
 public String recordPath = "recordedStreams/"; 
 /** Path that contains VOD streams. */ 
 public String playbackPath = "videoStreams/"; 
 /** Set if the path is absolute or relative */ 
 public boolean resolvesAbsolutePath = false; 
 public String generateFilename(IScope scope, String name, GenerationType type) { 
  // Generate filename without an extension. 
  return generateFilename(scope, name, null, type); 
 } 
 public String generateFilename(IScope scope, String name, String extension, GenerationType type) { 
  String filename; 
  if (type == GenerationType.RECORD) 
   filename = recordPath + name; 
  else 
   filename = playbackPath + name; 
  
  if (extension != null) 
   // Add extension 
   filename += extension; 
  
  return filename; 
 } 
 
 public boolean resolvesToAbsolutePath() 
    { 
     return resolvesAbsolutePath; 
    } 
} 

The above class will generate filenames for recorded streams like recordedStreams/ red5RecordDemo1234.flv and use the directory videoStreams as source for all VOD streams.

12.3. Activate custom generator

In the next step, the custom generator must be activate in the configuration files for the desired application.

Add the following definition to yourApp/WEB-INF/red5-web.xml:



<bean id="streamFilenameGenerator" 
    class="path.to.your.CustomFilenameGenerator" /> 

This will use the class defined above to generate stream filenames.

12.4. Change paths through configuration

While the class described here works as expected, it's a bit unhandy to change the paths inside the code as every change requires recompilation of the class.

Therefore you can pass parameters to the bean defined in the previous step to specify the paths to use inside the configuration file.

Add three methods to your class that will be executed while the configuration file is parsed:



public void setRecordPath(String path) { 
 recordPath = path; 
} 
public void setPlaybackPath(String path) { 
 playbackPath = path; 
} 
public void setAbsolutePath(Boolean absolute) { 
 resolvesAbsolutePath = absolute; 
} 

Now you can set the paths inside the bean definition:



<bean id="streamFilenameGenerator" 
   class="path.to.your.CustomFilenameGenerator"> 
   <property name="recordPath" value="recordedStreams/" /> 
   <property name="playbackPath" value="videoStreams/" /> 
   <property name="absolutePath" value="false" /> 
</bean> 
<bean id="streamFilenameGenerator" 
   class="path.to.your.CustomFilenameGenerator"> 
   <property name="recordPath" value="/path/to/recordedStreams/" /> 
   <property name="playbackPath" value="/path/to/videoStreams/" /> 
   <property name="absolutePath" value="true" /> 
</bean> 

You can also move the paths to the yourApp/WEB-INF/red5-web.properties file and use parameters to access them:



<bean id="streamFilenameGenerator" 
   class="path.to.your.CustomFilenameGenerator"> 
   <property name="recordPath" value="${recordPath}" /> 
   <property name="playbackPath" value="${playbackPath}" /> 
   <property name="absolutePath" value="${absolutePath}" /> 
</bean> 

In that case you will have to add the following lines to your properties file:

red5-web.properties -


recordPath=recordedStreams/ 
playbackPath=videoStreams/ 
absolutePath=false 
recordPath=/path/to/recordedStreams/ 
playbackPath=/path/to/videoStreams/ 
absolutePath=true 

red5-1.0~svn4374.orig-doc/reference/html/clustering.html0000644000175000017500000001606011561764617023046 0ustar drazzibdrazzib Chapter 15. Clustering

Chapter 15. Clustering

In Red5 0.7 the Ant build.xml file contains a build target that creates a 'cluster' folder containing the same setup as described below. Use 'ant dist-cluster' to create the Red5 clustering setup.

[Note]Limitations

As of now, the current trunk only supports the clustering configuration for multiple Edges with one Origin. The Edge server only accepts RTMP connection.

15.1. Server Configuration

15.1.1. Configuration Files

There are several configuration files added to support Edge/Origin configuration.

red5-edge.xml, red5-edge-core.xml - used for edge spring bean configuration. They are under conf/.

red5-origin.xml, red5-origin-core.xml - used for origin spring bean configuration. They are under conf/.

15.2. Configure Edge Server

You don't need to deploy your application on Edges.

We strongly recommend you to deploy Edge on a different server from Origin. But it should be OK to deploy the Edge on the same server as Origin.

15.2.1. Edge on a different Server from Origin

Update the configuration of bean "mrtmpClient" in red5-edge-core.xml to point to Origin server:



<bean id="mrtmpClient"
    class="org.red5.server.net.mrtmp.MRTMPClient" init-method="start" >
    <property name="ioHandler" ref="mrtmpHandler" />
    <property name="server" value="${mrtmp.host}" />
    <property name="port" value="${mrtmp.port}" />
</bean>

Replace red5.xml with red5-edge.xml. Start the server by

$ ./red5.sh

or

$ java -jar red5.jar	
			

15.2.2. Edge on the same Server as Origin

You don't need to change red5.xml. Copy red5-edge.xml to $(RED5_ROOT) from $(RED5_ROOT)/conf. Start the server by

$ java -jar red5.jar red5-edge.xml

or update red5.sh to add a parameter "red5-edge.xml", then

$ ./red5.sh

15.3. Configure Origin Server

Deploy your application to webapps/. Make sure your 9035 port is not blocked by firewall. The port will be used by Edges to connection Origin.

Update red5.xml with red5-origin.xml. Start the server by

$ ./red5.sh

or

$ java -jar red5.jar			
		

15.4. Use Your Appliation

Your RTMP can go through Edges now. Your RTMPT and HTTP can go through Origin as normal.

red5-1.0~svn4374.orig-doc/reference/html/javadoc.css0000644000175000017500000000525011561341421022101 0ustar drazzibdrazzibbody { text-align: justify; font-family: Verdana, Arial, helvetica, sans-serif; } a { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 12px; color: #000000; } a:active { color: #999999; } a:visited { color: #000000; } p { font-family: Verdana, Arial, sans-serif; } dt { font-family: Verdana, Arial, sans-serif; font-size: 12px; } dd { font-family: Verdana, Arial, sans-serif; font-size: 12px; } p, dl, dt, dd, blockquote { color: #000000; padding-top: 0; } p, blockquote { font-size: 90%; } td { font-size: 12px; } td, th, span { color: #000000; } code { color: #e01c2f; } h1, h2, h3, h4, h6 { color: #000000; font-weight: 500; margin-top: 0; font-family: Verdana, Arial, helvetica, sans-serif; margin-bottom: 0; } td { font-family: Verdana, Arial, helvetica, sans-serif; } /* Headings */ h1 { font-size: 20px; } /* Top Class Heading */ h2 { font-size: 18px; color: #e01c2f; } h3 { font-size: 14px; } h4 { font-size: 12px; } tt { font-size: 110%; font-family: "Courier New", Courier, monospace; color: #000000; } pre { font-size: 14px; padding: 5px; border-style: solid; border-width: 1px; border-color: #000000; background-color: #CCCCCC; font-family: Verdana, Arial, helvetica, sans-serif; } hr { width: 100%; height: 1px; background-color: #CCCCCC; border-width: 0; padding: 0; } FRAMESET[^cols="20%,80%"] { cols:"40%,100%"; } /* Top Table Heading */ tr.TableHeadingColor th font b { font-size: 16px; color: #e01c2f; } tr.TableHeadingColor th font { font-size: 16px; } /* Table colors */ .TableHeadingColor { background: #999999 } /* Subheading Background */ .TableSubHeadingColor { background: #f3f5e9 } .TableRowColor { background: #FFFFFF } /* Font used in left-hand frame lists */ .FrameTitleFont { font-size: 14px; font-family: Verdana, Arial, helvetica, sans-serif; } .FrameHeadingFont { font-size: 14px; font-family: Verdana, Arial, helvetica, sans-serif; } .FrameItemFont { font-size: 12px; font-family: Verdana, Arial, helvetica, sans-serif; } /* Navigation bar fonts and colors */ .NavBarCell1 { background-color:#999999;} /* Light mauve */ .NavBarCell1Rev { background-color:#CCCCCC;} /* Dark Blue */ .NavBarFont1 { font-family: Verdana, Arial, helvetica, sans-serif; color:#000000; font-size: 12px;} .NavBarFont1Rev { font-family: Verdana, Arial, helvetica, sans-serif; color:#FFFFFF; font-size: 12px;} .NavBarCell2 { font-family: Verdana, Arial, helvetica, sans-serif; background-color:#FFFFFF;} .NavBarCell3 { font-family: Verdana, Arial, helvetica, sans-serif; background-color:#FFFFFF; font-size: 14px;} red5-1.0~svn4374.orig-doc/reference/html/frequently-asked-questions.html0000644000175000017500000012055411561764617026206 0ustar drazzibdrazzib Chapter 2. Frequently Asked Questions

Chapter 2. Frequently Asked Questions

The best way you can help make this FAQ more useful is by asking questions: either in any of the places above, or by leaving your questions in the comments below.

  • Bugs and requests for new features can be submitted to Trac

  • Ideas for new features can be talked about on the mailinglist

2.1. Questions

2.1.8. Shared Objects

2.1.9. Legal

  • Codec Licenses (TODO)

  • Third Party Licenses (TODO)

2.2. Answers

2.2.1. General

2.2.1.1. What is Red5?

Red5 is an open source Flash RTMP server written in Java that supports:

  • Streaming Audio/Video (FLV and MP3)

  • Recording Client Streams (FLV only)

  • Shared Objects

  • Live Stream Publishing

  • Remoting

2.2.1.2. What does Red5 stand for?

Originally referenced to Star Wars.&nbsp; Red5 was the "one who did the impossible".&nbsp;

2.2.1.3. Is there a migration guide from FMS to Red5?

Yes: Migration Guide

2.2.1.4. How do I create new applications?

Creating New Applications

2.2.1.5. What are configuration files?

see: Configuration Files In Red5

2.2.1.6. Is there a mailing list?

Check the mailing list page.

2.2.1.7. What Ports does Red5 use?

http.port=5080  // tomcat or jetty servlet container 

rtmp.port=1935  // traditional rtmp 

rtmpt.port=8088  // rtmp tunneled over http 

mrtmp.port=9035  // used with an edge/origin setup 

proxy.source_port=1936  // used to debug 

These default ports can be changed in "RED5_HOME]\conf\red5.properties"

Additionally, most users only forward port 1935 and 5080

2.2.1.8. I'm interested in helping the project. How can I help?

You can create a new Trac ticket for any contributions you want to make, attach the files there or link it. Make sure you signup on the mailinglist as well..

2.2.1.9.  Who is on the Red5 Team?

The Red5 Project (red5 AT osflash.org)

2.2.1.9.1.  Project Managers
  • Chris Allen (mrchrisallen AT gmail.com)

  • John Grden (johng AT acmewebworks.com)

2.2.1.9.2.  Active Members
  • Dominick Accattato (daccattato AT gmail.com)

  • Steven Gong (steven.gong AT gmail.com)

  • Paul Gregoire (mondain AT gmail.com)

  • Thijs Triemstra (info AT collab.nl)

  • Dan Rossi (electroteque AT gmail.com)

  • Anton Lebedevich (mabrek AT gmail.com)

2.2.1.9.3.  Inactive Members
  • Luke Hubbard (luke AT codegent.com)

  • Joachim Bauch (jojo AT struktur.de)

  • Mick Herres (mickherres AT hotmail.com)

  • Grant Davies (grant AT bluetube.com)

  • Steven Elliott (steven.s.elliott AT gmail.com)

  • Jokul Tian (tianxuefeng AT gmail.com)

  • Michael Klishin (michael.s.klishin AT gmail.com)

  • Martijn van Beek (martijn.vanbeek AT gmail.com)

2.2.2. Documentation

2.2.2.1. Where is the official documentation?

2.2.2.2. Can I get the documentation in PDF format?

\

2.2.2.3. Where can I find the latest javadocs?

http://api.red5.nl

2.2.3. Configuration

2.2.3.1. How to disable Socket policy checking for 443 (rtmps and https)?

You can change the port to something over 1024 like 8443 or comment out the RTMPS section.

2.2.4. Streaming

2.2.4.1. How do I stream to/from custom directories?

Customize Stream Paths

2.2.4.2. How to detect the end of recording ?

See the API docs.

2.2.4.4. Does Red5 support multicast streaming?

It should be noted that multicasting support is not available in the Flash Player. For that reason, no media server can deliver a multi-casting solution to the Flash Player. In addition, many networks have multicasting turned off so it may not be realiable for other platforms either such as Windows Media Player. These solutions usually fall back to unicasting when clients cannot receive muliticasted media. In regards to Unicasting, Red5 already has this functionality. In addition, we have an edge-origin solution sometimes referred to as stream-reapeating.

2.2.4.5. Can Red5 stream using UDP?

No. Even though Java can stream using UDP, the Flash Player can not receive data sent using UDP.

2.2.5. Codecs

2.2.5.1. What Codecs does Red5 Support?

Video codecs:

  • ScreenVideo

  • On2 VP6

  • Sorenson H.263

  • H264

Audio codecs:

  • ADPCM

  • NellyMoser

  • MP3

  • Speex

  • AAC

2.2.5.2. What is RTMFP and when will it be available in Red5?

RTMFP stands for "RTMFP (Real Time Media Flow Protocol". You can read more about it in the release notes. Just search the following page.

To understand what this protocol is and does, read the following FAQ.

Red5 does not support RTMFP. At the moment, there isn't enough exposure to RTMFP and discussion can resume once it is released and more is known about the protocol.

2.2.6. Database

2.2.6.1. What databases are supported?

Red5 is built with Java. So any database that has a JDBC driver will work.

2.2.6.2. Can I use Hibernate with Red5?

2.2.7. Scripting

2.2.7.1. What scripting languages are available?

Scripting support (JavaScript, Groovy, Beanshell, JRuby, Jython)

2.2.7.2. Does Red5 support Actionscript 1?

Not yet, but there is development in this area and proof of concepts have been presented at conferences.

2.2.7.3. Does Red5 support Actionscript 3?

Not yet, but there is development in this area and proof of concepts have viewed by Red5 team members.

2.2.9. Legal

2.2.9.1. Licence Information

http://www.opensource.org/licenses/lgpl-license.php

For an easier explanation, please see:

2.2.9.2. Is Red5 Legal?

Please read our response: http://osflash.org/red5/fud

2.2.10. Red5 WAR version

2.2.10.1. Is there any documentation on the Red5 war version?

read: Deploying To Tomcat

2.2.11. Misc

2.2.11.1. Is there an IRC channel?

Yes: #red5 on irc.freenode.net

Flash non-IRC based chat: http://red5.newviewnetworks.com/iChatBar2/#

2.2.11.2. Are there any examples on the web?

Below is a list of applications that use Red5.

2.2.11.3. Is there any professional support?

Companies Listed:

2.2.11.4. Are there hosting solutions?

2.2.11.5. Are there forums?

see: http://red5server.com/forum/

2.2.11.6. What is Jedai?

see: http://jedai.googlecode.com

2.2.11.7. Are there any frameworks that I can start with?

2.2.11.8. Are there development tools?

See http://trac.red5.org/wiki/Red5Plugin

2.2.11.9. What is Paperworld3D ?

See http://www.paperworld3d.org

2.2.11.10. What Red5 groups can I join?

Linked in Red5 group

2.2.12. Troubleshooting

2.2.12.1. Why am I receiving "closing due to long handshake?

issue: Closing RTMPMinaConnection from [IP_ADDRESS] : 2610 to [IP_ADDRESS] (in: 3415 out 3212 ), with id 512231886 due to long handshake

solution: Have you installed the example your trying to connect to? The examples are installed on demand starting with Red5 0.8. Just check the welcome page http://localhost:5080/ and look for a link that allows you to install them. After an example is installed, you should be able to run the examples.

Note: We are improving this so that if an example is chosen, it will be installed.

red5-1.0~svn4374.orig-doc/reference/html/migration-guide.html0000644000175000017500000013657511561764617023771 0ustar drazzibdrazzib Chapter 4. Migration Guide

Chapter 4. Migration Guide

This document describes API differences between the Macromedia Flash Communication Server / Adobe Flash Media Server and Red5. It aims at helping migrate existing applications to Red5.

If you don't have an application in Red5 yet, please read the tutorial about howto create new applications first.

4.1. Application callbacks

When implementing serverside applications, one of the most important functionalities is to get notified about clients that connect or disconnect and to be informed about the creation of new instances of the application.

4.1.1. Interface IScopeHandler

Red5 specifies these actions in the interface IScopeHandler http://dl.fancycode.com/red5/api/org/red5/server/api/IScopeHandler.html. See the API documentation for further details.

4.1.2. Class ApplicationAdapter

As some methods may be called multiple times for one request (e.g. connect will be called once for every scope in the tree the client connects to), the class ApplicationAdapter http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html defines additional methods.

This class usually is used as base class for new applications.

Here is a short overview of methods of the FCS / FMS application class and their corresponding methods of ApplicationAdapter http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html in Red5:

Table 4.1. FMS to Red5 Callback Methods

onAppStartappStart / roomStart
onAppStopappStop / roomStop
onConnectappConnect / roomConnect / appJoin / roomJoin
onDisconnectappDisconnect / roomDisconnect / appLeave / roomLeave

The app''' methods are called for the main application, the room''' methods are called for rooms (i.e. instances) of the application.

You can also also use the ApplicationAdapter http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html to check for streams, shared objects, or subscribe them. See the API documentation for further details.

4.1.2.1. Execution order of connection methods

Assuming you connect to rtmp://server/app/room1/room2

At first, the connection is established, so the user "connects" to all scopes that are traversed up to room2:

  1. app (-> appConnect)

  2. room1 (-> roomConnect)

  3. room2 (-> roomConnect)

After the connection is established, the client object is retrieved and if it's the first connection by this client to the scope, he "joins" the scopes:

  1. app (-> appJoin)

  2. room1 (-> roomJoin)

  3. room2 (-> roomJoin)

If the same client establishes a second connection to the same scope, only the connect methods will be called. If you conect to partially the same scopes, only a few join methods might be called, e.g. rtmp://server/app/room1/room3 will trigger

  1. appConnect("app")

  2. joinConnect("room1")

  3. joinConnect("room3")

  4. roomJoin("room3")

The appStart method currently is only called once during startup of Red5 as it currently can't unload/load applications like FCS/FMS does. The roomStart methods are called when the first client connects to a room.

4.1.3. Accepting / rejecting clients

FCS / FMS provide the methods acceptConnection and rejectConnection to accept and reject new clients. To allow clients to connect, no special action is required by Red5 applications, the *Connect methods just need to return true in this case.

If a client should not be allowed to connect, the method rejectClient can be called which is implemented by the ApplicationAdapter http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html class. Any parameter passed to rejectClient is available as the application property of the status object that is returned to the caller.

4.2. Current connection and client

Red5 supports two different ways to access the current connection from an invoked method. The connection can be used to get the active client and the scope he is connected to. The first possibility uses the "magic" Red5 http://dl.fancycode.com/red5/api/org/red5/server/api/Red5.html object:



import org.red5.server.api.IClient; 
import org.red5.server.api.IConnection; 
import org.red5.server.api.IScope; 
import org.red5.server.api.Red5; 
public void whoami() { 
    IConnection conn = Red5.getConnectionLocal(); 
    IClient client = conn.getClient(); 
    IScope scope = conn.getScope(); 
    // ... 
} 

The second possiblity requires the method to be defined with an argument of type IConnection http://dl.fancycode.com/red5/api/org/red5/server/api/IConnection.html as implicit first parameter which is automatically added by Red5 when a client calls the method:



import org.red5.server.api.IClient; 
import org.red5.server.api.IConnection; 
import org.red5.server.api.IScope; 
public void whoami(IConnection conn) { 
    IClient client = conn.getClient(); 
    IScope scope = conn.getScope(); 
    // ... 
} 

4.3. Additional handlers

For many applications, existing classes containing application logic that is not related to Red5 are required to be reused. In order to make them available for clients connecting through RTMP, these classes need to be registered as handlers in Red5.

There are currently two ways to register these handlers:

  1. By adding them to the configuration files.

  2. By registering them manually from the application code.

The handlers can be executed by clients with code similar to this:


nc = new NetConnection(); 
nc.connect("rtmp://localhost/myapp"); 
nc.call("handler.method", nc, "Hello world!"); 

If a handler is requested, Red5 always looks it up in the custom scope handlers before checking the handlers that have been set up in the context through the configuration file.

4.3.1. Handlers in configuration files

This method is best suited for handlers that are common to all scopes the application runs in and that don't need to change during the lifetime of an application.

To register the class com.fancycode.red5.HandlerSample as handler sample, the following bean needs to be added to WEB-INF/red5-web.xml:



<bean id="sample.service" 
   class="com.fancycode.red5.HandlerSample" 
   singleton="true" /> 

Note that the id of the bean is constructed as the name of the handler (here sample) and the keyword service.

4.3.2. Handlers from application code

All applications that use handlers which are different for the various scopes or want to change handlers, need a way to register them from the serverside code. These handlers always override the handlers configured in red5-web.xml. The methods required for registration are described in the interface IServiceHandlerProvider http://dl.fancycode.com/red5/api/org/red5/server/api/service/IServiceHandlerProvider.html which is implemented by ApplicationAdapter http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html.

The same class as above can be registered using this code:



public boolean appStart(IScope app) { 
    if (!super.appStart(scope)) 
        return false; 
    Object handler = new com.fancycode.red5.HandlerSample(); 
    app.registerServiceHandler("sample", handler); 
    return true; 
} 

Note that in this example, only the application scope has the sample handler but not the subscopes! If the handler should be available in the rooms as well, it must be registered in roomStart for the room scopes.

4.4. Calls to client methods

To call methods from your Red5 application on the client, you will first need a reference to the current connection object:



import org.red5.server.api.IConnection; 
import org.red5.server.api.Red5; 
import org.red5.server.api.service.IServiceCapableConnection; 
... 
IConnection conn = Red5.getConnectionLocal(); 

If the connection implements the IServiceCapableConnection http://dl.fancycode.com/red5/api/org/red5/server/api/service/IServiceCapableConnection.html interface, it supports calling methods on the other end:



if (conn instanceof IServiceCapableConnection) { 
    IServiceCapableConnection sc = (IServiceCapableConnection) conn; 
    sc.invoke("the_method", new Object[]{"One", 1}); 
} 

If you need the result of the method call, you must provide a class that implements the IPendingServiceCallback http://dl.fancycode.com/red5/api/org/red5/server/api/service/IPendingServiceCallback.html interface:



import org.red5.server.api.service.IPendingService; 
import org.red5.server.api.service.IPendingServiceCallback; 
class MyCallback implements IPendingServiceCallback { 
    public void resultReceived(IPendingServiceCall call) { 
        // Do something with "call.getResult()" 
    } 
} 

The method call looks now like this:



if (conn instanceof IServiceCapableConnection) { 
    IServiceCapableConnection sc = (IServiceCapableConnection) conn; 
    sc.invoke("the_method", new Object[]{"One", 1}, new MyCallback()); 
} 

Of course you can implement this interface in your application and pass a reference to the application instance.

4.5. SharedObjects

The methods to access shared objects from an application are specified in the interface ISharedObjectService http://dl.fancycode.com/red5/api/org/red5/server/api/so/ISharedObjectService.html.

When dealing with shared objects in serverside scripts, special care must be taken about the scope they are created in.

To create a new shared object when a room is created, you can override the method roomStart in your application:



import org.red5.server.adapter.ApplicationAdapter; 
import org.red5.server.api.IScope; 
import org.red5.server.api.so.ISharedObject; 
public class SampleApplication extends ApplicationAdapter { 
  public boolean roomStart(IScope room) { 
      if (!super.roomStart(room)) 
          return false; 
      createSharedObject(room, "sampleSO", true); 
      ISharedObject so = getSharedObject(room, "sampleSO"); 
      // Now you could do something with the shared object... 
      return true; 
  } 
} 

Now everytime a first user connects to a room of a application, e.g. through rtmp://server/application/room1, a shared object sampleSO is created by the server.

If a shared object should be created for connections to the main application, e.g. rtmp://server/application, the same must be done in the method appStart.

For further informations about the possible methods a shared object provides please refer to the api documentation of the interface ISharedObject http://dl.fancycode.com/red5/api/org/red5/server/api/so/ISharedObject.html.

4.5.1. Serverside change listeners

To get notified about changes of the shared object similar to onSync in FCS / FMS, a listener must implement the interface ISharedObjectListener http://dl.fancycode.com/red5/api/org/red5/server/api/so/ISharedObjectListener.html:



import org.red5.server.api.so.ISharedObject; 
import org.red5.server.api.so.ISharedObjectListener; 
public class SampleSharedObjectListener
Migration Guide 
       implements ISharedObjectListener { 
  public void onSharedObjectUpdate(ISharedObject so, 
                                   String key, Object value) { 
      // The attribute &lt;key&gt; of the shared object &lt;so&gt; 
      // was changed to &lt;value&gt;. 
  } 
  public void onSharedObjectDelete(ISharedObject so, String key) { 
      // The attribute &lt;key&gt; of the shared object &lt;so&gt; was deleted. 
  } 
  public void onSharedObjectSend(ISharedObject so, 
                                 String method, List params) { 
      // The handler &lt;method&gt; of the shared object &lt;so&gt; was called 
      // with the parameters &lt;params&gt;. 
  } 
  // Other methods as described in the interface... 
} 

Additionally, the listener must get registered at the shared object:



ISharedObject so = getSharedObject(scope, "sampleSO"); 
so.addSharedObjectListener(new SampleSharedObjectListener()) 

4.5.2. Changing from application code

A shared object can be changed by the server as well:



ISharedObject so = getSharedObject(scope, "sampleSO"); 
so.setAttribute("fullname", "Sample user"); 

Here all subscribed clients as well as the registered handlers are notified about the new / changed attribute.

If multiple actions on a shared object should be combined in one update event to the subscribed clients, the methods beginUpdate and endUpdate must be used:



ISharedObject so = getSharedObject(scope, "sampleSO"); 
so.beginUpdate(); 
so.setAttribute("One", "1"); 
so.setAttribute("Two", "2"); 
so.removeAttribute("Three"); 
so.endUpdate(); 

The serverside listeners will receive their update notifications through separate method calls as without the beginUpdate and endUpdate.

Calls to shared object handlers through remote_so.send(<handler>, <args>) from a Flash client or the corresponding serverside call can be mapped to methods in Red5. Therefore a handler must get registered through a method of the ISharedObjectHandlerProvider http://dl.fancycode.com/red5/api/org/red5/server/api/so/ISharedObjectHandlerProvider.html interface similar to the application handlers:



package com.fancycode.red5; 
class MySharedObjectHandler { 
    public void myMethod(String arg1) { 
        // Now do something 
    } 
} 
... 
ISharedObject so = getSharedObject(scope, "sampleSO"); 
so.registerServiceHandler(new MySharedObjectHandler()); 

Handlers with a given name can be registered as well:



ISharedObject so = getSharedObject(scope, "sampleSO"); 
so.registerServiceHandler("one.two", new MySharedObjectHandler()); 

Here, the method could be called through one.two.myMethod. Another way to define event handlers for SharedObjects is to add them to the red5- web.xml similar to the file-based application handlers. The beans must have a name of <SharedObjectName>.<DottedServiceName>.soservice, so the above example could also be defined with:



<bean id="sampleSO.one.two.soservice" 
   class="com.fancycode.red5.MySharedObjectHandler" 
   singleton="true" /> 

4.6. Persistence

Persistence is used so properties of objects can be used even after the server has been restarted. In FCS / FMS usually local shared objects on the serverside are used for this.

Red5 allows arbitrary objects to be persistent, all they need to do is implement the interface IPersistable http://dl.fancycode.com/red5/api/org/red5/server/api/persistence/IPersistable.html. Basically these objects have a type, a path, a name (all strings) and know how to serialize and deserialize themselves.

Here is a sample of serialization and deserialization:



import java.io.IOException; 
import org.red5.io.object.Input; 
import org.red5.io.object.Output; 
import org.red5.server.api.persistence.IPersistable; 
class MyPersistentObject implements IPersistable { 
  // Attribute that will be made persistent 
  private String data = "My persistent value"; 
  void serialize(Output output) throws IOException { 
      // Save the objects's data. 
      output.writeString(data); 
  } 
  void deserialize(Input input) throws IOException { 
      // Load the object's data. 
      data = input.readString(); 
  } 
  // Other methods as described in the interface... 
} 

To save or load this object, the following code can be used:



import org.red5.server.adapter.ApplicationAdapter; 
import org.red5.server.api.IScope; 
import org.red5.server.api.Red5; 
import org.red5.server.api.persistence.IPersistenceStore; 
class MyApplication extends ApplicationAdapter { 
  private void saveObject(MyPersistentObject object) { 
      // Get current scope. 
      IScope scope = Red5.getConnectionLocal().getScope(); 
      // Save object in current scope. 
      scope.getStore().save(object); 
  } 
  private void loadObject(MyPersistentObject object) { 
      // Get current scope. 
      IScope scope = Red5.getConnectionLocal().getScope(); 
      // Load object from current scope. 
      scope.getStore().load(object); 
  } 
} 

If no custom objects are required for an application, but data must be stored for future reuse, it can be added to the IScope http://dl.fancycode.com/red5/api/org/red5/server/api/IScope.html through the interface IAttributeStore http://dl.fancycode.com/red5/api/org/red5/server/api/IAttributeStore.html. In scopes, all attributes that don't start with IPersistable.TRANSIENT_PREFIX are persistent.

The backend that is used to store objects is configurable. By default persistence in memory and in the filesystem is available.

When using filesystem persistence for every object a file is created in "webapps/<app>/ persistence/<type>/<path>/<name>.red5", e.g. for a shared object "theSO" in the connection to "rtmp://server/myApp/room1" a file at "webapps/myApp/persistence/ SharedObject/room1/theSO.red5" would be created.

4.7. Periodic events

Applications that need to perform tasks regularly can use the setInterval in FCS / FMS to schedule methods for periodic execution.

Red5 provides a scheduling service (ISchedulingService http://dl.fancycode.com/red5/api/org/red5/server/api/scheduling/ISchedulingService.html) that is implemented by ApplicationAdapter http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html like most other services. The service can register an object (which needs to implement the IScheduledJob http://dl.fancycode.com/red5/api/org/red5/server/api/scheduling/IScheduledJob.html interface) whose execute method is called in a given interval.

To register an object, code like this can be used:



import org.red5.server.api.IScope; 
import org.red5.server.api.IScheduledJob; 
import org.red5.server.api.ISchedulingService; 
import org.red5.server.adapter.ApplicationAdapter; 
class MyJob implements IScheduledJob { 
  public void execute(ISchedulingService service) { 
      // Do something 
  } 
} 
public class SampleApplication extends ApplicationAdapter { 
  public boolean roomStart(IScope room) { 
      if (!super.roomStart(room)) 
          return false; 
      // Schedule invokation of job every 10 seconds. 
      String id = addScheduledJob(10000, new MyJob()); 
      room.setAttribute("MyJobId", id); 
      return true; 
  } 
} 

The id that is returned by addScheduledJob can be used later to stop execution of the registered job:



public void roomStop(IScope room) { 
    String id = (String) room.getAttribute("MyJobId");
    removeScheduledJob(id); 
    super.roomStop(room); 
} 

4.8. Remoting

Remoting can be used by non-rtmp clients to invoke methods in Red5. Another possibility is to call methods from Red5 to other servers that provide a remoting service.

4.8.1. Remoting server

Services that should be available for clients need to be registered the same way as additional application handlers are registered. See above for details.

To enable remoting support for an application, the following section must be added to the WEB-INF/web.xml file:

web.xml -



<servlet> 
   <servlet-name>gateway</servlet-name> 
   <servlet-class> 
      org.red5.server.net.servlet.AMFGatewayServlet 
   </servlet-class> 
</servlet> 
<servlet-mapping> 
   <servlet-name>gateway</servlet-name> 
   <url-pattern>/gateway/*</url-pattern> 
</servlet-mapping> 

The path specified in the <url-pattern> tag (here gateway) can be used by the remoting client as connection url. If this example would have been specified for an application myApp, the URL would be:


http://localhost:5080/myApp/gateway 

Methods invoked through this connection will be executed in the context of the application scope. If the methods should be executed in subscopes, the path to the subscopes must be added to the URL like:


http://localhost:5080/myApp/gateway/room1/room2 

4.8.2. Remoting client

The class RemotingClient http://dl.fancycode.com/red5/api/org/red5/server/net/remoting/RemotingClient.html defines all methods that are required to call methods through the remoting protocol.

The following code serves as example about how to use the remoting client:



import org.red5.server.net.remoting.RemotingClient; 
String url = "http://server/path/to/service"; 
RemotingClient client = new RemotingClient(url); 
Object[] args = new Object[]{"Hello world!"}; 
Object result = client.invokeMethod("service.remotingMethod", args); 
// Now do something with the result 

By default, a timeout of 30 seconds will be used per call, this can be changed by passing a second parameter to the constructor defining the maximum timeout in milliseconds.

The remoting headers AppendToGatewayUrl, ReplaceGatewayUrl and RequestPersistentHeader are handled automatically by the Red5 remoting client.

Some methods may take a rather long time on the called server to complete, so it's better to perform the call asynchronously to avoid blocking a thread in Red5. Therefore an object that implements the interface IRemotingCallback http://dl.fancycode.com/red5/api/org/red5/server/net/remoting/IRemotingCallback.html must be passed as additional parameter:



import org.red5.server.net.remoting.RemotingClient; 
import org.red5.server.net.remoting.IRemotingCallback; 
public class CallbackHandler implements IRemotingCallback { 
  void errorReceived(RemotingClient client, String method, 
                     Object[] params, Throwable error) { 
      // An error occurred while performing the remoting call. 
  } 
  void resultReceived(RemotingClient client, String method, 
                      Object[] params, Object result) { 
      // The result was received from the server. 
  } 
} 
String url = "http://server/path/to/service"; 
RemotingClient client = new RemotingClient(url); 
Object[] args = new Object[]{"Hello world!"}; 
IRemotingCallback callback = new CallbackHandler(); 
client.invokeMethod("service.remotingMethod", args, callback); 

4.9. Streams

TODO: How can streams be accessed from an application?

red5-1.0~svn4374.orig-doc/reference/html/new-applications.html0000644000175000017500000003201711561764617024144 0ustar drazzibdrazzib Chapter 9. Create new applications in Red5

Chapter 9. Create new applications in Red5

This document describes how new applications can be created in Red5. It applies to the new API introduced by Red5 0.4.

9.1. The application directory

Red5 stores all application definitions as folders inside the "webapps" directory beneath the root of Red5. So the first thing you will have to do in order to create a new application, is to create a new subfolder in "webapps". By convention this folder should get the same name the application will be reached later.

Inside your new application, you will need a folder "WEB-INF" containing configuration files about the classes to use. You can use the templates provided by Red5 in the folder "doc/ templates/myapp".

During the start of Red5, all folders inside "webapps" are searched for a directory "WEB- INF" containing the configuration files.

9.2. Configuration

The main configuration file that is loaded is "web.xml". It contains the following parameters:

9.2.1. webAppRootKey

Unique name for this application, should be the public name:



<context-param> 
    <param-name>webAppRootKey</param-name> 
    <param-value>/myapp</param-value> 
</context-param> 

9.3. Handler configuration

Every handler configuration file must contain at least three beans:

9.3.1. Context

The context bean has the reserved name web.context and is used to map paths to scopes, lookup services and handlers. The default class for this is org.red5.server.Context.

By default this bean is specified as:



<bean id="web.context" class="org.red5.server.Context" 
    autowire="byType" />   

Every application can only have one context. However this context can be shared across multiple scopes.

9.3.2. Scopes

Every application needs at least one scope that links the handler to the context and the server. The scopes can be used to build a tree where clients can connect to every node and share objects inside this scope (like shared objects or live streams). You can see the scopes as rooms or instances.

The default scope usually has the name web.scope, but the name can be chosen arbitrarily.

The bean has the following properties:

- server This references the global server red5.server. - parent References the parent for this scope and usually is global.scope. - context The server context for this scope, use the web.context from above. - handler The handler for this scope (see below). - contextPath The path to use when connecting to this scope. - virtualHosts A comma separated list of hostnames or ip addresses this scope runs at.

A sample definition looks like this:



<bean id="web.scope" class="org.red5.server.WebScope" 
    init-method="register"> 
    <property name="server" ref="red5.server" /> 
    <property name="parent" ref="global.scope" /> 
    <property name="context" ref="web.context" /> 
    <property name="handler" ref="web.handler" /> 
    <property name="contextPath" value="/myapp" /> 
    <property name="virtualHosts" value="localhost, 127.0.0.1" /> 
</bean> 

You can move the values for contextPath and virtualHosts to a separate properties file and use parameters. In that case you need another bean:



<bean id="placeholderConfig" 
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
Create new applications in Red5 
    <property name="location" value="/WEB-INF/red5-web.properties" /> 
</bean> 

Assuming a red5-web.properties containing the following data:


webapp.contextPath=/myapp 
webapp.virtualHosts=localhost, 127.0.0.1 

the properties of the scope can now be changed to:



<property name="contextPath" value="${webapp.contextPath}" /> 
<property name="virtualHosts" value="${webapp.virtualHosts}" /> 

The contextPath specified in the configuration can be seen as "root" path of the scope.

You can add additional elements after the configured path when connecting to dynamically create extra scopes.

These extra scopes all use the same handler but have their own properties, shared objects and live streams.

9.4. Handlers

Every context needs a handler that implements the methods called when a client connects to the scope, leaves it and that contains additional methods that can be called by the client. The interface these handlers need to implement is specified by org.red5.server.api.IScopeHandler, however you can implement other interfaces if you want to control access to shared objects or streams.

A sample implementation that can be used as base class can be found at org.red5.server.adapter.ApplicationAdapter. Please refer to the javadoc documentation for further details.

The bean for a scope handler is configured by:



<bean id="web.handler" 
    class="the.path.to.my.Application" 
    singleton="true" /> 

9.5. Logging

Logging Setup Tutorial

red5-1.0~svn4374.orig-doc/reference/html/index.html0000644000175000017500000010564511561764617022006 0ustar drazzibdrazzib Red5 - Reference Documentation

Red5 - Reference Documentation

Red5 Open Source Flash Server

Authors

Steven Gong, Paul Gregoire, Daniel Rossi

0.8

distribution to others, provided that you do not charge any fee for such copies and further provided that each copy contains this Copyright Notice, whether distributed in print or electronically.

2011-05-09


1. Introduction
1.1. 0.8 Public Beta Release
I. Getting Started
2. Frequently Asked Questions
2.1. Questions
2.1.1. General
2.1.2. Documentation
2.1.3. Configuration
2.1.4. Streaming
2.1.5. Codecs
2.1.6. Database
2.1.7. Scripting
2.1.8. Shared Objects
2.1.9. Legal
2.1.10. Red5 WAR version
2.1.11. Misc
2.1.12. Troubleshooting
2.2. Answers
2.2.1. General
2.2.1.1. What is Red5?
2.2.1.2. What does Red5 stand for?
2.2.1.3. Is there a migration guide from FMS to Red5?
2.2.1.4. How do I create new applications?
2.2.1.5. What are configuration files?
2.2.1.6. Is there a mailing list?
2.2.1.7. What Ports does Red5 use?
2.2.1.8. I'm interested in helping the project. How can I help?
2.2.1.9. Who is on the Red5 Team?
2.2.2. Documentation
2.2.2.1. Where is the official documentation?
2.2.2.2. Can I get the documentation in PDF format?
2.2.2.3. Where can I find the latest javadocs?
2.2.3. Configuration
2.2.3.1. How to disable Socket policy checking for 443 (rtmps and https)?
2.2.4. Streaming
2.2.4.1. How do I stream to/from custom directories?
2.2.4.2. How to detect the end of recording ?
2.2.4.3. How can I record RTMP streams from Red5?
2.2.4.4. Does Red5 support multicast streaming?
2.2.4.5. Can Red5 stream using UDP?
2.2.5. Codecs
2.2.5.1. What Codecs does Red5 Support?
2.2.5.2. What is RTMFP and when will it be available in Red5?
2.2.6. Database
2.2.6.1. What databases are supported?
2.2.6.2. Can I use Hibernate with Red5?
2.2.7. Scripting
2.2.7.1. What scripting languages are available?
2.2.7.2. Does Red5 support Actionscript 1?
2.2.7.3. Does Red5 support Actionscript 3?
2.2.8. Shared Objects
2.2.8.1. How do you setup a Remote SharedObject?
2.2.9. Legal
2.2.9.1. Licence Information
2.2.9.2. Is Red5 Legal?
2.2.10. Red5 WAR version
2.2.10.1. Is there any documentation on the Red5 war version?
2.2.11. Misc
2.2.11.1. Is there an IRC channel?
2.2.11.2. Are there any examples on the web?
2.2.11.3. Is there any professional support?
2.2.11.4. Are there hosting solutions?
2.2.11.5. Are there forums?
2.2.11.6. What is Jedai?
2.2.11.7. Are there any frameworks that I can start with?
2.2.11.8. Are there development tools?
2.2.11.9. What is Paperworld3D ?
2.2.11.10. What Red5 groups can I join?
2.2.12. Troubleshooting
2.2.12.1. Why am I receiving "closing due to long handshake?
3. Configuration Files
3.1. Directory "conf"
3.1.1. jetty.xml
3.1.2. keystore
3.1.3. log4j.properties
3.1.4. realm.properties (Jetty)
3.1.5. tomcat-users.xml (Tomcat)
3.1.6. red5.globals
3.1.7. red5.properties
3.1.8. red5.xml
3.1.9. red5-common.xml
3.1.10. red5-core.xml
3.1.11. red5-rtmpt.xml
3.1.12. web.xml (Tomcat)
3.1.13. web-default.xml (Jetty)
3.2. Webapp config directory
3.2.1. red5-web.xml
4. Migration Guide
4.1. Application callbacks
4.1.1. Interface IScopeHandler
4.1.2. Class ApplicationAdapter
4.1.2.1. Execution order of connection methods
4.1.3. Accepting / rejecting clients
4.2. Current connection and client
4.3. Additional handlers
4.3.1. Handlers in configuration files
4.3.2. Handlers from application code
4.4. Calls to client methods
4.5. SharedObjects
4.5.1. Serverside change listeners
4.5.2. Changing from application code
4.6. Persistence
4.7. Periodic events
4.8. Remoting
4.8.1. Remoting server
4.8.2. Remoting client
4.9. Streams
5. Red5 Libraries
5.1. Spring scripting support
5.2. Groovy
5.3. Beanshell
5.4. Ruby
5.5. Jython / Python
5.6. Java 5 Libraries
5.7. Script related JSR's
5.8. Javascript / Rhino
6. Building Red5
6.1. Build Environment Setup
6.1.1. Ant
6.1.2. Java
6.1.3. Red5
6.2. Building
6.2.1. Getting Red5 Source
6.2.2. Getting Red5 Demo Applications Source
6.2.3. Getting Red5 Flash Demo Source
6.2.4. Running the ant build
6.2.5. Current Ant Targets
6.2.6. Ant and Ivy
6.3. How to build with eclipse
6.3.1. Recommended Eclipse Plugins
6.3.2. Importing the Red5 Project
6.3.3. Updating the Red5 source from Eclipse.
6.3.4.
6.3.5. Ant, Ivy and Eclipse
7. Releasing Red5
8. Recommended System Requirements
8.1. Java Memory Tweaking
II. Red5 Core Components
9. Create new applications in Red5
9.1. The application directory
9.2. Configuration
9.2.1. webAppRootKey
9.3. Handler configuration
9.3.1. Context
9.3.2. Scopes
9.4. Handlers
9.5. Logging
10. Logging Setup
10.1. Web applications
10.2. Imports
10.3. Logger Instantiation
11. Deploying Red5 To Tomcat
11.1. Preface
11.2. Deployment
11.3. Context descriptors
11.4. Red5 Configuration
11.4.1. Spring contexts
11.4.2. Default context
11.4.3. Web context
11.4.4. External applications
11.5. Creating and deploying your application
11.5.1. Remote application
11.5.2. Local application
11.5.3. Example Source
11.6. Additional web configuration
11.7. Troubleshooting
11.8. Definitions
11.9. Bibliography
12. Customize Stream Paths
12.1. Filename generator service
12.2. Custom generator
12.3. Activate custom generator
12.4. Change paths through configuration
13. Security
13.1. Stream Security
13.1.1. Stream playback security
13.1.2. Stream publishing security
14. Scripting Implementations
14.1. I. Select a scripting implementation
14.2. II. Configuring Spring
14.3. III. Creating an application script
14.3.1. 1. Application adapter
14.3.2. 2. Application services
14.4. Creating your own interpreter
14.5. Links with scripting information
15. Clustering
15.1. Server Configuration
15.1.1. Configuration Files
15.2. Configure Edge Server
15.2.1. Edge on a different Server from Origin
15.2.2. Edge on the same Server as Origin
15.3. Configure Origin Server
15.4. Use Your Appliation
16. Management
16.1. JMX Classes
16.2. Spring configuration
16.3. RMI Authentication
16.4. JMX / RMI / SSL
16.5. jConsole / JMX Client
16.5.1. Local Management
16.5.2. Remote Management
16.5.3. SSL Remote Management
16.6. Links
17. Red5 Demo Applications
17.1. Getting Red5 Demo Applications Server-Side and Client-Side Source
17.1.1. List Of Available Demo Applications (Server Side)
17.1.2. List Of Available Demo Applications (Client Side)
17.2. Environment Build Setup
17.3. Building The Demo Application
17.4. Updating The Applications Registry
17.5. Demo Applications Documentation
17.5.1. Bandwidth Check Application
17.5.1.1. Source Code
17.5.1.2. Bandwidth Check Service Methods
17.5.1.3. ServerClientDetection
17.5.1.4. ClientServerDetection
18. Testing Red5
18.1. Overview
18.2. How to Start Testing Without Reading This Chapter
18.3. Who Should Read This Chapter In Depth?
18.4. Red5 Testing Strategy
18.5. Red5 Testing Props
18.6. Unit Testing
18.6.1. Purpose
18.6.2. Technology
18.6.3. Running Tests
18.6.4. Creating New Tests
18.6.5. Running unit tests from eclipse
18.6.6. Guidelines for New Unit Tests
18.6.7. Submitting New Unit Tests
18.6.8. Suggesting New Unit Tests
18.7. Integration Testing
18.7.1. Purpose
18.8. System Testing
18.8.1. Purpose
18.9. Technology
18.10. Running Tests
18.11. Creating New Tests
18.12. A Sample System Test
18.13. Guidelines for New System Tests
18.14. Submitting New System Tests
18.15. Suggesting New System Tests
18.16. Continuous Integration
18.16.1. Overview
18.16.2. Technology
18.16.3. How To Run The Continuous Build
18.16.4. How to Submit New Jobs for Continuous Building
18.17. How you can help with Continuous Building
18.17.1. How to Set up a Continuous Build Server
19. Plugins
19.1. Loading
19.2. Configuring
19.3. Developing
19.3.1. Plugin Main Class
19.3.2. Factory Method Class
A. RTMP Specification
B. RTMPT Specification
B.1. URLs
B.2. Request / Response
B.3. Polling interval
B.4. Initial connect (command "open")
B.5. Client updates (command "send")
B.6. Polling requests (command "idle")
B.7. Disconnect of a session (command "close")
C. AMF Specification
C.1. AMF0 Specification
C.2. AMF3 Specification
D. Data Type Mappings
E. FLV
F. H264
F.1. Does Red5 plan to support H.264/ACC streams in the next release, maybe 0.7.1?
F.2. why are .mp4 files also listed in oflaDemo webapp grid as possible streams?
F.3. howto convert to h.264 using ffmpeg?
F.4. Does anyone have a link to an explaination of h264 licensing?
F.5. Someone already created a demo?
F.6. Some more Info about Seek and possible solutions
F.7. Are audio files supported?
F.8. How do I request an h264 file?
F.9. Does red5 support h264 live streaming?
F.10. Links
G. Speex Codec
G.1. Setting Up Flex SDk / Flex Builder
G.1.1. Get Flex 3 SDK
G.1.2. Config Flex Config To Target Flash Player 10
G.2. Code Example
G.3. FFMpeg and Speex
G.4. Links
red5-1.0~svn4374.orig-doc/reference/html/scripting.html0000644000175000017500000013036111561764617022672 0ustar drazzibdrazzib Chapter 14. Scripting Implementations

Chapter 14. Scripting Implementations

14.1. I. Select a scripting implementation

Level: Beginner

Red5 includes interpreters for the following scripting languages:

  • Javascript - version 1.6 (Mozilla Rhino version 1.6 R7)

  • JRuby - version 1.0.1 (Ruby version 1.8.5)

  • Jython - version 2.2 (Python version 2.1)

  • Groovy - version 1.0

  • Beanshell - version 2.0b4

Future versions may include:

  • JudoScript

  • Scala

  • PHP (This one is non-trivial, I may just provide a bridge)

  • Actionscript (Maybe SSAS)

The scripting implementation classes are pre-specified in the following locations depending upon your Java version:


Java5 - js-engine.jar, jython-engine.jar, groovy-engine.jar 
Java6 - resources.jar 

File location: /META-INF/services/javax.script.ScriptEngineFactory

It is most likely that the classes read from the jdk or jre will be prefered over any specified elsewhere.

14.2. II. Configuring Spring

Level: Intermediate

Step one is to locate your web applications red5-web.xml file. Within the xml config file the web.scope bean definition must supply a web.handler, this handler is your Red5 application (An application must extend the org.red5.server.adapter.ApplicationAdapter class).

The application provides access to the Red5 server and any service instances that are created. The service instances and the application itself may be scripted. Bean definitions in Spring config files may not have the same id, here are some web handler definition examples:

  • Java class implementation



<bean id="web.handler" class="org.red5.server.webapp.oflaDemo.MultiThreadedApplicationAdapter" /> 

  • Javascript implementation



<bean id="web.handler" class="org.red5.server.script.rhino.RhinoScriptFactory"> 
  <constructor-arg index="0" value="classpath:applications/main.js"/> 
  <constructor-arg index="1"> 
    <list> 
     <value>org.red5.server.api.IScopeHandler</value> 
     <value>org.red5.server.adapter.IApplication</value> 
    </list> 
</constructor-arg> 
<constructor-arg index="2"> 
 <value>org.red5.server.adapter.ApplicationAdapter</value> 
</constructor-arg> 
</bean> 

  • Ruby implementation



<bean id="web.handler" class="org.springframework.scripting.jruby.JRubyScriptFactory"> 
<constructor-arg index="0" value="classpath:applications/main.rb"/> 
<constructor-arg index="1"> 
 <list> 
  <value>org.red5.server.api.IScopeHandler</value> 
  <value>org.red5.server.adapter.IApplication</value> 
 </list> 
</constructor-arg> 
</bean> 

  • Groovy implementation



<bean id="web.handler" class="org.red5.server.script.groovy.GroovyScriptFactory"> 
<constructor-arg index="0" value="classpath:applications/main.groovy"/> 
<constructor-arg index="1"> 
 <list> 
  <value>org.red5.server.api.IScopeHandler</value> 
  <value>org.red5.server.adapter.IApplication</value> 
 </list> 
</constructor-arg> 
</bean> 

  • Python implementation



Red5 Open Source 
Flash Server (0.7.1) 51 
<bean id="web.handler" class="org.red5.server.script.jython.JythonScriptFactory"> 
 <constructor-arg index="0" value="classpath:applications/main.py"/> 
 <constructor-arg index="1"> 
  <list> 
      <value>org.red5.server.api.IScopeHandler</value> 
      <value>org.red5.server.adapter.IApplication</value>
Scripting Implementations 
  </list> 
 </constructor-arg> 
        <constructor-arg index="2"> 
  <list> 
            <value>One</value> 
            <value>2</value> 
            <value>III</value> 
        </list> 
    </constructor-arg> 
</bean> 

In general the configuration using scripted classes is defined using the constructor arguments (see interpreter section) in the following order:

  • Argument 1 - Location of the script source file

  • Argument 2 - Java interfaces implemented by the script.

The interfaces for the code which extends an Application are basically boilerplate as seen in the examples above; You do not have to use those interfaces in all your script definitions.

  • Argument 3 - Java classes extended by the script.

The extended class is not always necessary, it depends upon the scripting engine implementation.

The example location starts with classpath:applications which in physical disk terms for the "oflaDemo" application equates to webapps/oflaDemo/WEB-INF/applications

14.3. III. Creating an application script

14.3.1. 1. Application adapter

Scripting an application adapter is more difficult in some languages than it is in others, because of this I present the Ruby example which works really well and is easy to write and integrate. The application services are easily written in any of the supported languages, but they require a Java interface at a minimum.

i. JRuby application adapter implementation


# JRuby 
require 'java' 
module RedFive 
    include_package "org.red5.server.api" 
    include_package "org.red5.server.api.stream" 
    include_package "org.red5.server.api.stream.support" 
    include_package "org.red5.server.adapter" 
    include_package "org.red5.server.stream" 
end 

# application.rb - a translation into Ruby of the ofla demo application, a red5 example. 

# @author Paul Gregoire 
#
class Application &lt; RedFive::ApplicationAdapter 
    attr_reader :appScope, :serverStream 
        attr_writer :appScope, :serverStream 
        def initialize 
           #call super to init the superclass, in this case a Java class 
           super 
           puts "Initializing ruby application" 
        end 
        def appStart(app) 
        puts "Ruby appStart" 
                @appScope = app 
                return true 
        end 
        def appConnect(conn, params) 
                puts "Ruby appConnect" 
                measureBandwidth(conn) 
                puts "Ruby appConnect 2" 
                if conn.instance_of?(RedFive::IStreamCapableConnection) 
                    puts "Got stream capable connection" 
                        sbc = RedFive::SimpleBandwidthConfigure.new 
                        sbc.setMaxBurst(8388608) 
                        sbc.setBurst(8388608) 
                        sbc.setOverallBandwidth(8388608) 
                        conn.setBandwidthConfigure(sbc) 
                end 
                return super 
        end 
        def appDisconnect(conn) 
                puts "Ruby appDisconnect" 
                if appScope == conn.getScope &amp;&amp; @serverStream != nil 
                        @serverStream.close 
                end 
                super 
        end 
        def toString 
        return "Ruby toString" 
        end 
    def setScriptContext(scriptContext) 
           puts "Ruby application setScriptContext" 
    end 
    def method_missing(m, *args) 
      super unless @value.respond_to?(m) 
      return @value.send(m, *args) 
    end 
end   

14.3.2. 2. Application services

Here is an example of a Java interface (Yes, the methods are supposed to be empty) which is used in the examples to provide a template for applications which will gather a list of files and return them as a "Map" (key-value pairs) to the caller.

i. Simple Java interface for implementation by scripts



package org.red5.server.webapp.oflaDemo; 
             
import java.util.Map; 
public interface IDemoService { 
        /** 
     * Getter for property 'listOfAvailableFLVs'. 
     * 
     * @return Value for property 'listOfAvailableFLVs'. 
     */ 
    public Map getListOfAvailableFLVs(); 
    public Map getListOfAvailableFLVs(String string); 
} 

ii. Spring bean definition for a script implementation of the interface



<bean id="demoService.service" class="org.springframework.scripting.jruby.JRubyScriptFactory"> 
   <constructor-arg index="0" value="classpath:applications/demoservice.rb"/> 
   <constructor-arg index="1"> 
      <list> 
         <value>org.red5.server.webapp.oflaDemo.IDemoService</value> 
      </list> 
   </constructor-arg> 
</bean> 

iii.JRuby script implementing the interface


# JRuby - style 
require 'java' 
module RedFive 
    include_package "org.springframework.core.io" 
    include_package "org.red5.server.webapp.oflaDemo" 
end 
include_class "org.red5.server.api.Red5" 
include_class "java.util.HashMap" 

# demoservice.rb - a translation into Ruby of the ofla demo application, a red5 example. 

# @author Paul Gregoire 

class DemoService &lt; RedFive::DemoServiceImpl 
    attr_reader :filesMap 
    attr_writer :filesMap 
        def initialize 
           puts "Initializing ruby demoservice" 
           super 
           @filesMap = HashMap.new 
        end
 def getListOfAvailableFLVs 
                puts "Getting the FLV files" 
                begin 
            dirname = File.expand_path('webapps/oflaDemo/streams').to_s 
                        Dir.open(dirname).entries.grep(/\.flv$/) do |dir| 
                            dir.each do |flvName| 
                            fileInfo = HashMap.new 
                            stats = File.stat(dirname+'/'+flvName) 
                            fileInfo["name"] = flvName 
                            fileInfo["lastModified"] = stats.mtime 
                            fileInfo["size"] = stats.size || 0 
                    @filesMap[flvName] = fileInfo 
                    print 'FLV Name:', flvName 
                    print 'Last modified date:', stats.mtime 
                    print 'Size:', stats.size || 0 
                    print '-------' 
                end 
            end 
                rescue Exception =&gt; ex 
                        puts "Error in getListOfAvailableFLVs #{errorType} \n" 
                        puts "Exception: #{ex} \n" 
                        puts caller.join("\n"); 
                end 
                return filesMap 
        end 
        def formatDate(date) 
                return date.strftime("%d/%m/%Y %I:%M:%S") 
        end 
    def method_missing(m, *args) 
      super unless @value.respond_to?(m) 
      return @value.send(m, *args) 
    end 
end 

iv.Java application implementing the interface, upon which the Ruby code was based (This code is NOT needed when using the script)



package org.red5.server.webapp.oflaDemo; 
import java.io.File; 
import java.io.IOException; 
import java.text.SimpleDateFormat; 
import java.util.Date; 
import java.util.HashMap; 
import java.util.Locale; 
import java.util.Map; 
import org.apache.commons.logging.Log; 
import org.apache.commons.logging.LogFactory; 
import org.red5.server.api.IScope; 
import org.red5.server.api.Red5; 
import org.springframework.core.io.Resource; 
public class DemoService { 
        protected static Log log = LogFactory.getLog(DemoService.class.getName()); 

 /** 
     * Getter for property 'listOfAvailableFLVs'.
Scripting Implementations 
     * 
     * @return Value for property 'listOfAvailableFLVs'. 
     */ 
    public Map getListOfAvailableFLVs() { 
                IScope scope = Red5.getConnectionLocal().getScope(); 
                Map&lt;String, Map&gt; filesMap = new HashMap&lt;String, Map&gt;(); 
                Map&lt;String, Object&gt; fileInfo; 
                try { 
                        log.debug("getting the FLV files"); 
                        Resource[] flvs = scope.getResources("streams/*.flv"); 
                        if (flvs != null) { 
                                for (Resource flv : flvs) { 
                                        File file = flv.getFile(); 
                                        Date lastModifiedDate = new Date(file.lastModified()); 
                                        String lastModified = formatDate(lastModifiedDate); 
                                        String flvName = flv.getFile().getName(); 
                                        String flvBytes = Long.toString(file.length()); 
                                        if (log.isDebugEnabled()) { 
                                                log.debug("flvName: " + flvName); 
                                                log.debug("lastModified date: " + lastModified); 
                                                log.debug("flvBytes: " + flvBytes); 
                                                log.debug("-------"); 
                                        } 
                                        fileInfo = new HashMap&lt;String, Object&gt;(); 
                                        fileInfo.put("name", flvName); 
                                        fileInfo.put("lastModified", lastModified); 
                                        fileInfo.put("size", flvBytes); 
                                        filesMap.put(flvName, fileInfo); 
                                } 
} 
                        Resource[] mp3s = scope.getResources("streams/*.mp3"); 
                        if (mp3s != null) { 
                                for (Resource mp3 : mp3s) { 
                                        File file = mp3.getFile(); 
                                        Date lastModifiedDate = new Date(file.lastModified()); 
                                        String lastModified = formatDate(lastModifiedDate); 
                                        String flvName = mp3.getFile().getName(); 
                                        String flvBytes = Long.toString(file.length()); 
                                        if (log.isDebugEnabled()) { 
                                                log.debug("flvName: " + flvName); 
                                                log.debug("lastModified date: " + lastModified); 
                                                log.debug("flvBytes: " + flvBytes); 
                                                log.debug("-------"); 
                                        } 
                                        fileInfo = new HashMap&lt;String, Object&gt;(); 
                                        fileInfo.put("name", flvName); 
                                        fileInfo.put("lastModified", lastModified); 
                                        fileInfo.put("size", flvBytes); 
                                        filesMap.put(flvName, fileInfo); 
                                } 
                        } 
                } catch (IOException e) { 
                        log.error(e); 
                } 
                return filesMap; 
        } 
        
        private String formatDate(Date date) { 
                SimpleDateFormat formatter; 
                String pattern = "dd/MM/yy H:mm:ss"; 
                Locale locale = new Locale("en", "US"); 
                formatter = new SimpleDateFormat(pattern, locale); 
                return formatter.format(date); 
        } 
}   

v. Flex AS3 method calling the service


[Bindable] 
public var videoList:ArrayCollection; 
public function catchVideos():void{ 
        // call server-side method 
        // create a responder and set it to getMediaList 
        var nc_responder:Responder = new Responder(getMediaList, null); 
        // call the server side method to get list of FLV's 
        nc.call("demoService.getListOfAvailableFLVs", nc_responder); 

public function getMediaList(list:Object):void{ 
        // this is the result of the server side getListOfAvailableFLVs 
        var mediaList:Array = new Array(); 
        for(var items:String in list){ 
            mediaList.push({label:items, size:list[items].size, dateModified:list[items].lastModifi 
        } 
        // videoList is bindable and the datagrid is set to use this for it's dataprovider 
        // wrap it in an ArrayCollection first 
        videoList = new ArrayCollection(mediaList); 

14.4. Creating your own interpreter

Level: Advanced

Lets just open this up by saying that I attempted to build an interpreter for PHP this last weekend 02/2007 and it was a real pain; after four hours I had to give up. So what I learned from this is that you must first identify scripting languages which operate as applications, not as http request processors. Heres a test: Can X language be compiled into an executable or be run on the command-line? If yes then it should be trivial to integrate.

red5-1.0~svn4374.orig-doc/reference/html/Introduction.html0000644000175000017500000000716211561764617023353 0ustar drazzibdrazzib Chapter 1. Introduction

Chapter 1. Introduction

Red5 is an Open Source Flash Server written in Java that supports:

  • Streaming Audio/Video (FLV and MP3)

  • Recording Client Streams (FLV only)

  • Shared Objects

  • Live Stream Publishing

  • Remoting (AMF)

For the current release information goto the Releases page at red5.org.

Lastly the documentation is under development at the moment. If you have unanswered questions after using it, please check out our mailing list

1.1. 0.8 Public Beta Release

More stable version of 0.7 for production environment testing. This public beta release will have many more features and so the focus should be on testing and bug reports.

  • Hot Deployment

  • Auto-unpacking of wars

  • New Install application for example apps

** examples are downloaded and installed on demand

  • No installed examples by default

  • New Download Repository

  • Official Release Home (red5.org)

  • New Welcome page with new styles

  • Bug fixes

red5-1.0~svn4374.orig-doc/reference/html/data-type-mappings.html0000644000175000017500000001070711561341421024355 0ustar drazzibdrazzib Appendix D. Data Type Mappings

Appendix D. Data Type Mappings

Table D.1. Flash to Java Data Mappings

Numberany of the Java numeric types
int/uint * any of the non-floating point Java numeric types
StringString
BooleanBoolean/boolean
ArrayList
Objectorg.red5.io.utils.ObjectMap
Datejava.util.Date
XMLorg.w3c.dom.Document
ByteArray *org.red5.io.amf3.ByteArray
IExternalizable *org.red5.io.amf3.IExternalizable
ArrayCollection *org.red5.compatibility.flex.messaging.io.ArrayCollection
ObjectProxy *org.red5.compatibility.flex.messaging.io.ObjectProxy
nullnull
custom class **custom class

[Note]Note

Please note that Red5 performs automatic parameter conversion, e.g. if you pass a number to a method that takes a String as parameter, it is automatically converted.

  1. * - Only available in Flash Player 9 or newer (AMF3)

  2. ** - You can map the class to serialize to in Red5 by adding

red5-1.0~svn4374.orig-doc/reference/html/flv.html0000644000175000017500000000450311561341421021435 0ustar drazzibdrazzib Appendix E. FLV
red5-1.0~svn4374.orig-doc/reference/html/rtmpt-specification.html0000644000175000017500000001617511561764617024662 0ustar drazzibdrazzib Appendix B. RTMPT Specification

Appendix B. RTMPT Specification

This document describes the RTMPT tunneling protocol as implemented by the Red5 Open Source Flash Server. Please note that this document is _not_ an official specification by Macromedia but hopefully helps other people to write software that makes use of RTMPT.

RTMPT basically is a HTTP wrapper around the RTMP protocol that is sent using POST requests from the client to the server. Because of the non-persistent nature of HTTP connections, RTMPT requires the clients to poll for updates periodically in order to get notified about events that are generated by the server or other clients.

During the lifetime of a RTMPT session, four possible request types can be sent to the server which will be described below.

B.1. URLs

The URL to be opened has the following form::

http://server/<comand>/[<client>/]<index>

<command>

denotes the RTMPT request type (see below)

<client>

specifies the id of the client that performs the requests (only sent for established sessions)

<index>

is a consecutive number that seems to be used to detect missing packages

B.2. Request / Response

All HTTP requests share some common properties:

  • They use HTTP 1.1 POST.

  • The content type is application/x-fcs.

  • The connection should be kept alive by the client and server to reduce

network overhead.

The HTTP responses also share some properties:

  • The content type is application/x-fcs.

  • For all established sessions the first byte of the response data controls

the polling interval of the client where higher values mean less polling requests.

B.3. Polling interval

The server always starts with a value of 0x01 after data was returned and increases it after 10 emtpy replies. The maximum delay is 0x21 which causes a delay of approximately 0.5 seconds between two requests.

Red5 currently increases the delay in the following steps: 0x01, 0x03, 0x05, 0x09, 0x11, 0x21.

B.4. Initial connect (command "open")

This is the first request that is sent to the server in order to register a client on the server and start a new session. The server replies with a unique id (usually a number) that is used by the client for all future requests.

Note: the reply doesn't contain a value for the polling interval! A successful connect resets the consecutive index that is used in the URLs.

B.5. Client updates (command "send")

The data a client would send to the server using RTMP is simply prefixed with a HTTP header and otherwise sent unmodified.

The server responds with a HTTP response containing one byte controlling the polling interval and the RTMP data if available.

B.6. Polling requests (command "idle")

If the client doesn't have more data to send to the server, he has to poll for updates to receive streaming data or events like shared objects.

B.7. Disconnect of a session (command "close")

If a client wants to terminate his connection, he sends the "close" command which is replied with a 0x00 by the server.

red5-1.0~svn4374.orig-doc/reference/html/plugins.html0000644000175000017500000007043511561764617022356 0ustar drazzibdrazzib Chapter 19. Plugins

Chapter 19. Plugins

Available in Red5 is a Plugin architecture system to enable to extend features into Red5 for an entire server or application. Plugins are loaded on startup and then configured on a per application basis.

[Tip]Tip

Currently only available via SVN trunk.

19.1. Loading

Plugins are compiled into jar files which will be loaded and parsed by the server on startup.

Path to load the plugins is in:


/path/to/red5/plugins

19.2. Configuring

Plugins can be configured via the application adaptor by setting a property inside the red5-web.xml config file. The plugins property has one child node which is a list of plugins to load for the application




<bean id="web.handler" class="org.red5.demos.oflaDemo.Application">
<property name="plugins">
            <list>
...

Inside the list can be configured multiple plugins beans


<bean class="org.red5.server.plugin.PluginDescriptor">
	<property name="pluginName" value="authPlugin"/>
    <property name="pluginType" value="org.red5.server.plugin.auth.AuthPlugin"/>
    <property name="method" value="getRed5AuthenticationHandler"/>
    <property name="methodReturnType" value="org.red5.server.plugin.auth.Red5AuthenticationHandler"/>
</bean>

  • pluginName - the name of the plugin compiled into the plugin

  • pluginType - the fully qualified name of the plugin class ie org.red5.server.plugin.auth.AuthPlugin

  • method - method is a getter for a factory method as the plugin may provide multiple features ie getRed5AuthenticationHandler

  • methodReturnType - methodReturnType is the fully qualified name of the plugin factory class to provider a certain feature ie org.red5.server.plugin.auth.Red5AuthenticationHandler

Plugins are able to be configured with config properties using a property setter which is a spring hashmap list of values ie




<bean class="org.red5.server.plugin.PluginDescriptor">
                    <property name="pluginName" value="securityPlugin"/>
                    <property name="pluginType" value="org.red5.server.plugin.security.SecurityPlugin"/>
                    <property name="method" value="getPlaybackSecurityHandler"/>
                    <property name="methodReturnType" value="org.red5.server.plugin.security.PlaybackSecurityHandler"/>
                    <property name="properties">
                        <map>
                            <entry>
                                <key><value>htmlDomains</value></key>
                                <value>file:///path/to/allowedHTMLdomains.txt</value>
                            </entry>
                            <entry>
                                <key><value>swfDomains</value></key>
                                <value>file:///path/to/allowedSWFdomains.txt</value>
                            </entry>
                        </map>
                    </property> 
                </bean>


Where using spring map syntax each property key / value is within an entry tag




<entry>
          <key><value>htmlDomains</value></key>
                                <value>file:///path/to/allowedHTMLdomains.txt</value>
                            </entry>

[Tip]Tip

Due to some issues with spring context paths loading in plugins, full absolute paths are required to files to be loaded ie file:///path/to/allowedHTMLdomains.txt

19.3. Developing

To begin developing a new plugin it's best to download already built ones from SVN to use as a template ie


http://red5.googlecode.com/svn/java/plugins/trunk/securityplugin/

To configure some ant properties to compile the plugin correctly, inside build.properties update the following


red5.root=/www/red5_server_xuggle_timestamp_fixes
main-class=org.red5.server.plugin.security.SecurityPlugin

Where red5.root is the path to red5 and main-class is the fully qualified name of the plugin.

At the top of the ant build script, update the project name to the name of the plugin which will be used to generate the plugin jar file




<project name="securityplugin" basedir="." default="all" xmlns:ivy="antlib:org.apache.ivy.ant">

[Tip]Tip

Make sure the following ant property is set to either the main-class property or static to the plugin fully qualified name. If this is not setup correctly the Plugin loader will detect there is no manifest and not load the plugin. <attribute name="Red5-Plugin-Main-Class" value="${main-class}"/>

19.3.1. Plugin Main Class

The plugin main class requires to extend the Red5Plugin base class which the plugin loader will then use this as the main class for loading the plugin and factory methods.




public class SecurityPlugin extends Red5Plugin {

	private static Logger log = Red5LoggerFactory.getLogger(SecurityPlugin.class, "plugins");
	
	private static Serializer serializer = new Serializer();
	
	private MultiThreadedApplicationAdapter application;
	

	public void doStart() throws Exception {
		log.debug("Start");
	}

	public void doStop() throws Exception {
		log.debug("Stop");
	}

	public String getName() {
		return "securityPlugin";
	}
	
	public void setApplication(MultiThreadedApplicationAdapter app) {	
		log.trace("Setting application adapter: {}", app);
		this.application = app;
	}
	
	//methods specific to this plug-in
	
	public PlaybackSecurityHandler getPlaybackSecurityHandler() {
		PlaybackSecurityHandler ph = null;
		try {
			ph = (PlaybackSecurityHandler) Class.forName("org.red5.server.plugin.security.PlaybackSecurityHandler").newInstance();
			ph.setApplication(application);
		} catch (Exception e) {
			log.error("PlaybackSecurityHandler could not be loaded", e);
		}
		return ph;		
	}
	
	public PublishSecurityHandler getPublishSecurityHandler() {
		PublishSecurityHandler ps = null;
		try {
			ps = (PublishSecurityHandler) Class.forName("org.red5.server.plugin.security.PublishSecurityHandler").newInstance();
			ps.setApplication(application);
		} catch (Exception e) {
			log.error("PublishSecurityHandler could not be loaded", e);
		}
		return ps;		
	}
	
	public SharedObjectSecurityHandler getSharedObjectSecurityHandler() {
		SharedObjectSecurityHandler sh = null;
		try {
			sh = (SharedObjectSecurityHandler) Class.forName("org.red5.server.plugin.security.SharedObjectSecurityHandler").newInstance();
			sh.setApplication(application);
		} catch (Exception e) {
			log.error("SharedObjectSecurityHandler could not be loaded", e);
		}
		return sh;		
	}
	
	//common methods
	
	/**
	 * Invokes the "onStatus" event on the client, passing our derived status.
	 * 
	 * @param conn
	 * @param status
	 */
	public static void writeStatus(IConnection conn, StatusObject status) {
		//make a buffer to put our data in
		IoBuffer buf = IoBuffer.allocate(128);
		buf.setAutoExpand(true);
		//create amf output
		Output out = new Output(buf);
		//mark it as an amf object
		buf.put(AMF.TYPE_OBJECT);
		//serialize our status
    	status.serialize(out, serializer);
    	//write trailer
		buf.put((byte) 0x00);
		buf.put((byte) 0x00);
		buf.put(AMF.TYPE_END_OF_OBJECT);
		//make the buffer read to be read
		buf.flip();
		
		//create an RTMP event of Notify type
		IRTMPEvent event = new Notify(buf);

		//construct a packet
		Header header = new Header();
		Packet packet = new Packet(header, event);

		//get our stream id
		int streamId = BaseRTMPHandler.getStreamId();
		//set channel to "data" which im pretty sure is 3
		header.setChannelId(3);
		header.setTimer(event.getTimestamp()); //0
		header.setStreamId(streamId);
		header.setDataType(event.getDataType());
		
		//write to the client
		((RTMPConnection) conn).write(packet);
	}	
	
}


The getter method getName is required to be set so the plugin can be identified and loaded correctly using the plugin config in the application




public String getName() {
		return "securityPlugin";
}




public void doStart() throws Exception {
		log.debug("Start");
	}

	public void doStop() throws Exception {
		log.debug("Stop");
	}

	public String getName() {
		return "securityPlugin";
	}
	
	public void setApplication(MultiThreadedApplicationAdapter app) {	
		log.trace("Setting application adapter: {}", app);
		this.application = app;
	}

Other methods are doStart , doStop and setApplication setter method which is required to set a reference to the loaded application.

The plugin factory method is required to be configured and return a reference to the factory class which is then loaded in the application config. A reference to the application can also be set if desired so the factory method class can manipulate methods and properties on the application.




public PlaybackSecurityHandler getPlaybackSecurityHandler() {
		PlaybackSecurityHandler ph = null;
		try {
			ph = (PlaybackSecurityHandler) Class.forName("org.red5.server.plugin.security.PlaybackSecurityHandler").newInstance();
			ph.setApplication(application);
		} catch (Exception e) {
			log.error("PlaybackSecurityHandler could not be loaded", e);
		}
		return ph;		
	}


19.3.2. Factory Method Class

The factory method class is what gets configured to load and is where the features to run happen. It is required to extend the ApplicationLifeCycle class as well as implement the IRed5PluginHandler interface.



public abstract class SecurityBase extends ApplicationLifecycle implements IRed5PluginHandler {
...

Setter methods for both application and properties is required so the class is able to get a reference to the application as well as have property configs set.



	public void setApplication(MultiThreadedApplicationAdapter app) {
		application = app;
	}

	public void setProperties(Map<String, Object> props) {
		properties = props;
	}
}

An init method is required to be overridden to enable the factory class to start and then enable features and manipulate the application




	@Override
	public void init() {
		if (properties.containsKey("htmlDomains")) {
			htmlDomains = properties.get("htmlDomains").toString();
		}
		if (properties.containsKey("swfDomains")) {
			swfDomains = properties.get("swfDomains").toString();
		}
		
		allowedHTMLDomains = readValidDomains(htmlDomains, "HTMLDomains");

		// Populating the list of domains which are allowed to host a SWF file
		// which may connect to this application
		allowedSWFDomains = readValidDomains(swfDomains, "SWFDomains");

		// Logging
		if (HTMLDomainsAuth) {
			log.debug("Authentication of HTML page URL domains is enabled");
		}
		if (SWFDomainsAuth) {
			log.debug("Authentication of SWF URL domains is enabled");
		}

		log.debug("...loading completed.");
		
		//now register with the application
		application.registerStreamPlaybackSecurity(this);
	}

red5-1.0~svn4374.orig-doc/reference/html/speex.html0000644000175000017500000001567211561764617022023 0ustar drazzibdrazzib Appendix G. Speex Codec

Appendix G. Speex Codec

Speex is a new voice codec supported in Flash Player 10 and above. With the new release of flash player 10 this document explains a little about the new codec with this release.

G.1. Setting Up Flex SDk / Flex Builder

Flex SDK / Flex Builder needs to be setup to target flash player 10 playerglobal.swc which has the new features enabled.

Taken from the Adobe Open Source area http://opensource.adobe.com/wiki/display/flexsdk/Targeting+Flash+Player+10+Beta

G.1.1. Get Flex 3 SDK

  • Download Flex SDK 3.0.3 or above. In Flex 3 extract into the sdks directory.

  • Make sure that you have a Flash 10 playerglobal.swc at FLEX_SDK/frameworks/libs/player/10/playerglobal.swc.

G.1.2. Config Flex Config To Target Flash Player 10

  • Modify FLEX_SDK/frameworks/flex-config.xml. Edit <target-player>, replacing 9.0.115 with 10.0.0:

{{{ <target-player>10.0.0</target-player> }}}

  • In <external-library-path>, edit the path-element for playerglobal.swc, replacing 9 with 10:

{{{ <external-library-path> <path-element>libs/player/10/playerglobal.swc</path-element> </external-library-path> }}}

  • Do the same with <library-path:

{{{ <library-path> <path-element>libs</path-element> <path-element>libs/player/10</path-element> <path-element>locale/{locale}</path-element> </library-path> }}}

  • In flex builder, right click the project and choose properties, choose Flex Compiler, choose the "Configure Flex SDKs" link on the right, choose add then choose the location of the newly downloaded SDK and give it a name.

  • Back in the Flex Compiler config choose "Use a specific SDK and select in the list the Flex SDK configured previously.

G.2. Code Example

Setup the Microphone class to use the new Speex Codec.


_microphone = Microphone.getMicrophone();
if (_microphone) {
    //_microphone.setLoopBack(true);
    _microphone.codec = SoundCodec.SPEEX;
    _microphone.encodeQuality = 10;
    _microphone.rate = 44;
    _microphone.framesPerPacket = 2;
    _microphone.gain = 50;
    _microphone.setUseEchoSuppression(true);
    ns.attachAudio(_microphone);
} else {
    throw new Error("Audio Not Connected");
}

G.3. FFMpeg and Speex

According to Art Clarke subversion revision r15028 of the FFMpeg source code has the capabilities of decoding the Speex codec from FLV files.

red5-1.0~svn4374.orig-doc/reference/html/testing.html0000644000175000017500000007675611561764617022366 0ustar drazzibdrazzib Chapter 18. Testing Red5

Chapter 18. Testing Red5

18.1. Overview

As of version 0.8, the Red5 Testing framework has been modified and updated. The unit-tests have been updated to pass, and a automated system-testing and continuous integration framework has been added. This document attempts to explain the thoughts and architecture involved so as to facilitate review by the Red5 core team.

18.2. How to Start Testing Without Reading This Chapter

To see the results of the Red5 continuous build server (this URL may change), go to http://build.theyard.net/.

The build server runs after every check-in, as well as every night. We test against JDK5 and JDK6.

To run all the Red5 unit tests yourself, check out the Red5 tree, and run:

 
$ ant run-tests

To see the results, open this file in a browser

 
doc/test/index.html

To run all the Red5 system tests, make sure you don't already have red5 running then in one terminal type:

 
$ ant run-tests-server

Then open this file in a browser.&nbsp; When the security dialog comes up, give it access to your camera, and select the box to remember the setting (if you want it to auto-run in the future):

 
test/fixtures/red5-selftest.swf

You can find all log files generate by the red5 test server in:

 
bin/testcases/testreports/dist/log

You can find the documentation for what the system tests do here (and can add to it by just putting ASDoc style comments in any System tests you add):

Current Flash System Tests

And that's it.

18.3. Who Should Read This Chapter In Depth?

This chapter is targeted at people who are:

  1. Modifying Red5 code directly and want to make sure their code works.

  2. Interested in how Red5 is working to improve quality, and has some experience with software testing.

  3. People who have found a bug in Red5, and want to submit a patch with a Unit Test or System Test that will catch regressions.

  4. Goblins.

18.4. Red5 Testing Strategy

The Red5 Testing Strategy has 5 components to it:

\# Type Description
1 Code Write great code; we've done this from day one and see no reason to stop now.
2 Unit Tests
3 Functional Tests Write functional tests to simulate network interactions

This is not yet implemented. We plan to do this in the future using RTMPClient, but any help the community can give here is appreciated. ||

4 System Tests Use flash-based system-tests (using AsUnit) that make sure end-to-end interaction with Adobe's flash player works as expected. For example, we test that we can connect from Flash via RTMP, we can play back pre-recorded FLV files, and we can publish from a Camera.
5 Continuous Building Build and run all tests every time someone checks in to make sure all tests still pass. Currently the continuous server can be found here (but it will move): http://build.theyard.net/

18.5. Red5 Testing Props

Major props go to the following folks:

  1. The red5 development team because, well, test frameworks don't mean shit if you don't got good stuff to test.

  2. Thijs, who set up the initial Red5 build server, and showed me how to get get Apache and Tomcat working nicely together.

18.6. Unit Testing

18.6.1. Purpose

The purpose of a unit test is to make sure a java object operates according to its specification, regardless of how it is plugged in with other objects. For a good overview of check out this Wikipedia Unit Testing web page. For example, you can (and we do) have Unit Tests that test we're encoding and decoding data from AMF codec's correctly using Mock Objects, that test whether or not we can load information from Spring, and whether or not we can inject Meta Data into FLV viles correctly.

18.6.2. Technology

Red5 uses the JUnit unit testing framework. If you're not familiar with that suite, please check it out. It is the de-facto standard for Java Unit Testing.

18.6.3. Running Tests

To run tests, checkout the latest server build, and run the following ant command:

 
$ ant run-tests

To see the results, you can open the doc/test/index.html file once the tests are finished.

 
firefox doc/test/index.html

18.6.4. Creating New Tests

Writing unit tests in the JUnit framework is beyond the scope of this document, but you can find help at the JUnit site. The Red5 unit test framework support JUnit 4.0, but can run JUnit 3.x-style tests as well. To create a new unit test, just create a new JUnitclass source file to the right path under test, and end the source filename with the string "Test.java". For example, to test org.red5.server.api.ANewClass, you would create the following java file under the "test" directory:

 
test/org/red5/server/api/ANewClassTest.java

Once you do that, the compile process should pick up your new file and run the tests automatically.&nbsp;

By default, the run-tests runs all unit tests in the following directory:

 
bin/testcases/testreports

18.6.5. Running unit tests from eclipse

In theory every should work, but you may need to set the directory eclipse runs the test from. Make sure it is set to:

 
bin/testcases/testreports

18.6.6. Guidelines for New Unit Tests

Unit tests help make the code base stronger, but that said we do need to make sure that unit tests meet certain guidelines so we can have a useful build process. Those guidelines are:

  • Unit Tests MUST be self-contained (i.e. each test should run independently).

  • Unit Tests MUST not require a Red5 server to be running.

  • Unit Tests MAY assume that no Red5 instance is currently running while they run (and so may fire up Red5 objects that bind to ports if appropriate).

  • Unit Tests MUST NOT require thread-timing specific to your machine to run (or fail) consistently.

  • Unit Tests MUST run successfully 100% in order to be checked in. That means, no checking in tests that fail with "not implemented".

  • Unit Tests SHOULD try to avoid introducing new dependencies, but if you must use one (for example http://multithreadedtc.googlecode.com/ can be useful), identify it when you submit a JUnit test case and we'll review whether or not to add to the ivy test dependencies.

  • Unit Tests MUST document what they do, and how to tell if they really worked, in JavaDoc comments above each test method.

  • Unit Tests SHOULD be written using JUnit 4.x annotations

18.6.7. Submitting New Unit Tests

We really want new Unit Tests, so if you have a Unit Test that meets the above guidelines we'd love to consider it. To submit it, do the following:

  • Review the guidelines above. Really.

  • If you're fixing a bug:

    • Create a unit test and make sure it fails 100% of the time before you fix the bug.

    • Fix the bug.

    • Ensure that unit test succeeds 100% of the time after you fix the bug.

  • If you're testing a new feature:

    • Write your new feature.

    • Create a diff file with your patch using "svn diff" from tip of tree.

    • Ensure that unit test succeeds 100% of the time after you fix the bug.

  • File a new issue in Trac in the "Developer Tools" section. Please attach the diff files and the contents of any new files, and specify the following:

    • What the test tests.

    • Brief overview of how it works.

  • Someone (probably Art) will review it and get back to you on changes that may be needed, or will commit it.

18.6.8. Suggesting New Unit Tests

We really do want new unit tests, and would love suggestions. But bear in mind that Red5 is a 100% volunteer project and most people who work on it have full time day jobs (their time spent on red5 is a labor of love). So don't be hurt if your suggestion for a test is not picked up on.

That said, a great way to suggest an area to test is to go ahead and write the system test yourself\! Send it to the list, and it'll probably get a warm reception.

18.7. Integration Testing

We currently don't have a integration testing framework, but when I next return to this area, I'll try adding one. The basic idea for this (which I love) is to make a framework based on the RTMPClient.

18.7.1. Purpose

The purpose of integration testing is to start to plug together different simpler modules (that hopefully have been unit tested) to see if they play nice together. See this Integration Testing Wikipedia Pagefor an overview of the concepts.

18.8. System Testing

18.8.1. Purpose

When all is set and done, and you've Unit tested everything, and did integration testing by mixing together different components, you're still not done. At some point, a user is going to pick up your application, and start using it. And if you haven't tested from that end to your code and back, well chances are something will break.

That's where System Testing comes in. In the System Test we try to do some basic end-to-end tests to see if our code performs as expected from the end-user's perspective.

18.9. Technology

For Flash system testing (a.k.a selftest), we use the ASUnit|http://asunit.org/ framework, which is very similar to JUnit. You can find the current Flash self test here.

We also use The Yard Flash Libraries to abstract away some components of Flash connecting and stream playing, but you're not required to use those libraries if you submit new flash unit tests.

18.10. Running Tests

The Red5 system tests require a special test server to be running. This is just a mostly empty red5 server with one special application installed:

 
http://localhost/selftest

That selftest Red5 application has the following service exposed under the name "echo":

 
red5.server.services.IEchoService.java:
[http://code.google.com/p/red5/source/browse/java/server/trunk/test/org/red5/server/service/IEchoService.java]

Every method on that Java Interface is callable from Flash by using the prefix "echo.".&nbsp; For example, "echo.echoNumber" will call the echoNumber method over RTMP/AMF.&nbsp;

There are two ways to run the system test:

Attended - Run a Test Server

 
$ ant run-tests-server

Start up the Flash Self Test application

 
flashplayer tests/fixtures/red5-selftest.swf

This method assumes someone is watching the test.

Unattended -

 
$ ant run-tests-systemtest

This only works on Linux. It starts up a red5 server, runs the system test in the background, and then collects all log artifacts in the directory "output" relative to the current directory. It will also take snapshop pictures of the desktop as running if ImageMagick's import tool is installed. ||

System tests run the server with RED5_HOME set to bin/testcases/testreports/dist, and runs the flash clients from the directory bin/testcases/testreports/fixtures.

Lastly, you should ensure red5 is not currently running on the server you run a system test on. However, because the system tests use their own version of Red5, you don't need to worry about them clobbering anything in your own Red5 installation.

The System Tests use a series of scripts located in:

 
test/scripts

to automatically start-up and shutdown red5, as well as find the necessary flash logs from different parts of the system. The main one of interest is:

 
test/scripts/red5-flash-player-headless

It assumes it's running under a Windowing system (e.g. XWindows) with a Bourne Shell, and then starts a clean red5 server, runs the Flash system tests, and cleans up afterwards.

18.11. Creating New Tests

Writing unit tests in theAsUnit framework is beyond the scope of this document, but you can find help at the AsUnit site.

But to create a new system test, you can start with the Flash selftest application:svn checkout http://red5.googlecode.com/svn/flash/trunk/selftest red5_selftestTo create a new AsUnit test just create a newclass source file to the right path under test, and end the source filename with the string "Test.as". For example:

 
test/org/red5/server/decodingComplexObjectOverAMFTest3.as

Once you do that, you'll need to modify the AllTests.as file in the directory to add your new test.

We use The Yard flash libraries|http://code.google.com/p/theyard/ to abstract away some of the complexities of connecting to and manipulating NetConnection and NetStream objects. See the Yard flash library documentation. You don't have to use them for new tests, but they can make things a lot easier (for example, by taking care of connecting for you).

To see documentation of existing tests, run:

 
ant doc

18.12. A Sample System Test

Here's a very straightforward System Test submitted by trebor (at) vlideshow.com.

This test connects to the test server and calls the "echo.echoString" method to pass a String to Red5, and then make sure we get the same array back.&nbsp; It tests both AMF0 and AMF3 using the same code path because they should be the same.

 
EchoStringTest.as: AMF0 and AMF3 Strings sent over RTMP Test
[http://code.google.com/p/red5/source/browse/flash/trunk/selftest/test/src/org/red5/server/io/EchoStringTest.as]

18.13. Guidelines for New System Tests

Unfortunately Flash ActionScript is not as forgiving as Java is about cleaning up after a test is finished, so the guidelines for writing System Tests are somewhat more involved.&nbsp; Also, these tests MUST be runnable in a "unattended" mode \-\- meaning requiring no human interaction, to the bar is higher.

  • System Tests MUST not require any human interaction \-\- i.e. if a human can't give permission for something, it should fail without blocking.

  • System Tests MAY draw on the flash screen but MUST remove any artifacts when done

  • System Tests MUST be self-contained (i.e. each test should run independently).

  • System Tests MAY assume that a Red5 instance is running on localhost, on port 1935, and that the selftest application is available.

  • System Tests MAY assume that the selftest application has the Echo service installed.

  • System Tests MUST clean up fully after themselves. That is, they must disconnect and remove any event handlers..

  • System Tests MUST run successfully 100% in order to be checked in. That means, no checking in tests that fail with "not implemented".

  • System Tests SHOULD try to avoid introducing new dependencies, but if you must use one (for example http://theyard.googlecode.com/ can be useful), identify it when you submit a test case and we'll review whether or not to add to the ivy test dependencies.

  • System Tests MUST document what they do, and how to tell if they really worked, in AsDoc comments above each test method.

18.14. Submitting New System Tests

We really want new System Tests, so if you have a System Test that meets the above guidelines we'd love to consider it. To submit it, do the following:

  • Review the guidelines above. Really.

  • If you're fixing a bug:

** Create a system test and make sure it fails 100% of the time before you fix the bug. ** Fix the bug, and run a new test server. ** Ensure that unit test succeeds 100% of the time after you fix the bug.

  • If you're testing a new feature:

** Write your new feature. ** Create a unit test and make it it succeeds 100% of the time with the new feature.

  • Create a diff file with your patch using "svn diff" from tip of tree.

  • File a new issue in Trac in the "Developer Tools" section. Please attach the diff files and the contents of any new files, and specify the following:

** What the test tests ** Brief overview of how it works

  • Someone (probably Art) will review it and get back to you on changes that may be needed, or will commit it.

If your change is accepted, we'll integrate it into the Flash self-test, and update the Java Server trunk to use the new Flash selftest as our system test.

18.15. Suggesting New System Tests

We really do want new tests, and would love suggestions. But bear in mind that Red5 is a 100% volunteer project and most people who work on it have full time day jobs (their time spent on red5 is a labor of love). So don't be hurt if your suggestion for a test is not picked up on.

That said, a great way to suggest an area to test is to go ahead and write the system test yourself\! Send it to the list, and it'll probably get a warm reception.

18.16. Continuous Integration

18.16.1. Overview

The last step of our testing framework is to run a continuous build. See this Wikipedia Pagefor some of the principles involved.

The basic idea is to do a checkout, run all unit, functional and system tests, and then notify the person who checked in, and any others that are interested, about the current state of the build. The idea is that it is easier to fix bugs when they are introduced, than if they are found days or weeks later.

18.16.2. Technology

We use Hudson as our continuous build server running inside a Tomcat instance (running as the Hudson, not root, user) that is forwarded to by Apache2. This currently runs on an Amazon EC2 small instance hosted at:

 
[http://build.theyard.net/]

E-Mail notification of bad builds are sent to the last person who checked in, and to the red5-builds (at) googlecode.com group.

We run the following builds continuously:

  • We build the java/server/trunk against JDK 1.6 on Linux i386 (Ubuntu) and run all units tests

  • If this is successful, we run all system tests under JDK 1.6 on Linux i386 (Ubuntu) .

  • We build the java/server/trunk against JDK 1.5 on Linux i386 (Ubuntu) and run all unit tests.

  • If this is successful, we run all system tests under JDK 1.5 on Linux i386 (Ubuntu) .

18.16.3. How To Run The Continuous Build

The Continuous Build server will run any time you check something into the Java Server. It also runs once every night.

If you're on the Red5 dev team and want to set up new job, or log-in to hudson directly, talk to Art Clarke and he'll hook you up.

18.16.4. How to Submit New Jobs for Continuous Building

For now, send a request to red5devs@osflash.org and we'll evaluate it.

18.17. How you can help with Continuous Building

If you're willing do donate a i386 Amazon EC2 instance or an i86_64 Amazon EC2 instance, we're in need of both to do testing on. The current set up is temporary.

18.17.1. How to Set up a Continuous Build Server

NOTE: THIS SECTION IS MEANT FOR SERIOUSLY ADVANCED RED5 USERS. 99.999999% of people shouldn't even read this.

Glad you asked. We used an Amazon EC2 instance to get us started. Specifically this AMI from Eric Hammon at alestic.com.

We then created a script that makes that image into one that can run Red5's continuous build server. See:

 
http://red5.googlecode.com/svn/build/remote/trunk/ec2/

To set up an AWS EC2 instance to build and auto-test red5, do the following:

  1. Learn how to use Amazon EC2.

  2. Start up an instance of Ubuntu 8.04 LTS Hardy: ami-1cd73375

  3. Check out the Red5 remote build branch:

 
$ svn checkout http://red5.googlecode.com/build/remote/trunk/
  1. Copy the ec2/ec2-explode directory to your new Amazon EC2 instance:

 
cd ec2/ec2-explode
./ec2-implode ../ec2.tgz
scp -i YOUR_AWS_KEYPAIR root@YOUR_AWS_PUBLIC_IP:/tmp
  1. Log into your AWS EC2 instance:

 
$ ssh -i YOUR_AWS_KEYPAIR -l root YOUR_AWS_PUBLIC_IP
  1. Prepare your ec2-explode package:

 
cd tmp
  tar xzvf ec2.tgz
  1. Run the ec2-explode script:

 
./ec2-explode

You will have to accept the Sun JDK license, choose a password for your XAuthority file (don't worry \-\- the X ports aren't opened, you just need that to run a headless X Server to make the Flash System Tests run), and enter the data necessary to send mail from your machine.

  1. You'll need to patch up your Apache 2 files to reflect your domain name:

 
rename /etc/apache2/sites-enabled/build.theyard.net /etc/apache2/sites-enabled/YOUR-APACHE-SITE
vi /etc/apache2/sites-enabled/YOUR-APACHE-SITE
service apache2 restart
  1. Go to your website and make sure hudson is running:

 
http://YOUR-AWS-PUBLIC-IP/

It's probably a good idea to change the default "hudson" password as well. It defaults to: 10.

 
fmskiller

This is the password for the Hudson UI, not the password on the hudson linux account. By default the linux hudson account doesn't allow log in using passwords.

red5-1.0~svn4374.orig-doc/reference/html/building.html0000644000175000017500000005214411561764617022467 0ustar drazzibdrazzib Chapter 6. Building Red5

Chapter 6. Building Red5

6.1. Build Environment Setup

6.1.1. Ant

Apache Ant 1.7 and above is required for building the Red5 project source code. download here http://archive.apache.org/dist/ant/binaries/

The path to the ant binary must be on your system PATH environment variable (test by typing ant -version at a system prompt) defined, typically


PATH=$PATH:/usr/local/ant 

You can check this on windows by typing set PATH or on unix by typing echo $PATH

6.1.2. Java

Java 1.5 or 1.6 and above is required for running ant, compiling the source and running the Red5 server.

Download Java 5 http://java.sun.com/j2se/1.5.0/download.html

Download Java 6 http://java.sun.com/j2se/1.6.0/download.html

You must have the environment variables for JAVA_HOME and JAVA_VERSION defined, typically


JAVA_HOME=C:\development\j2sdk\1.5.0_07 JAVA_VERSION=1.5 

You can check this on windows by typing

set JAVA_HOME			
		

or on unix by typing

$ echo $JAVA_HOME	
		

6.1.3. Red5

You must have the environment variables for RED5_HOME defined, typically


RED5_HOME=/www/red5_server

[Warning]Warning

FAILURE TO SETUP YOUR ENVIRONMENT VARIABLES WILL PREVENT YOUR FROM BEING ABLE TO BUILD PROPERLY

[Note]Note

You don't need netbeans or eclipse unless you need an IDE for java. Download Netbeans Download Eclipse

6.2. Building

6.2.1. Getting Red5 Source

The Red5 source code is available at the google code project page and svn repository.

  1. With your favourite SVN client check out the source code from svn at this address http://red5.googlecode.com/svn/java/server/trunk/ or https://red5.googlecode.com/svn/java/server/trunk/ if you have a google code login.

  2. Team members will be added to the google code project group and in your google code login you will find the svn password for committing changes at this address http://code.google.com/hosting/settings.

6.2.2. Getting Red5 Demo Applications Source

  1. With your favourite SVN client check out the source code from svn at this address http://red5.googlecode.com/svn/java/example/trunk/ or https://red5.googlecode.com/svn/java/example/trunk/ if you have a google code login.

6.2.3. Getting Red5 Flash Demo Source

  1. With your favourite SVN client check out the source code from svn at this address http://red5.googlecode.com/svn/flash/trunk/ or https://red5.googlecode.com/svn/flash/trunk/ if you have a google code login.

6.2.4. Running the ant build

To build the red5 source simply run the following command from the command line inside the red5 source directory.

$ ant dist 
		

6.2.5. Current Ant Targets

  • all - Runs clean, prepare, compile, jar, javadoc targets

  • bootstrap - Compile and start the server using the bootstrap class

  • checkout - checks out the Red5 server source (requires svnant.jar)

  • checkout-all - checks out the entire Red5 project sources from the root level to a specified directory

  • clean - cleans up all the files and directories

  • compile - Compiles Red5

  • compile_core - Build Red5 server sources and downloads java 6 dependancies

  • compile_core_compatibility - Build Red5 server sources and downloads java 5 dependancies

  • compile_demos - Copies over the root and installer webapp

  • compile_script - Compiles scripting sources

  • compile_tests - Compiles junit test classes

  • compile_war - Compiles Red5 into a war distribution

  • console - launches a non-SSL jconsole for managing Red5 in JMX.

  • console-ssl - launches a SSL jconsole for managing Red5 in JMX with SSL enabled.

  • doc-all - Generate docbook documentation for html-single, multi html and pdf.

  • doc-clean - Cleans the docbook files.

  • doc-html - Compile reference documentation to chunked html.

  • doc-htmlsingle - Compile reference documentation to single html.

  • doc-pdf - Compile reference documentation to pdf.

  • doc-prepare - Extra preparation for the documentation.

  • dist - Make Binary distribution.

  • dist-archive - Create archive file for distribution.

  • dist-cluster - Create Edge/Origin distribution.

  • dist-debian - Create Debian package.

  • dist-edge - Builds a Red5 edge distribution.

  • dist-origin - Builds a Red5 origin distribution.

  • dist-installer - Make Installer distribution.

  • dist-macosx - Create Mac OSX installer.

  • dist-windows - Create Windows installer.

  • dist-redhat - Create Redhat installer.

  • ivyclear - Clears out the Ivy cache.

  • jar-determine-classpath - Determine classpath for jar file.

  • jar - Make Archive.

  • javadoc - Generate JavaDoc.

  • java6.check - Checks for Java 6.

  • prepare - Prepares for building Red5.

  • server - Compile and start the server.

  • shutdown - Shuts down the running Red5 instance.

  • udp_server - Compile and start experimental UDP server.

  • run-tests - Run JUnit tests and generate HTML reports.

  • run-tests-systemtest - Runs some end-to-end system tests against a test server using a flash client.

  • run-tests-server - Run the selftest server.

  • svn-add - Add files to svn.

  • remotejar - Creates a jar that may be deployed with remote applications.

  • retrieve - Retrieves the libraries if needed.

  • rtmps_keystore - Creates the keystore file in the conf directory required by RTMPS.

  • truststore - Creates a duplicate keystore file and generates a truststore file for jconsole SSL connections.

  • upload-snapshot - Uploads a snapshot of Red5 to the repository.

  • war_demos - Build wars for demo apps.

  • webwar - Make Web Archive.

6.2.6. Ant and Ivy

When cleaning the dependancy libraries using and ant ivy with the following command

$ ant ivyclear

It is required to run the rebuild of Red5 in a particular way to make sure ivy retrieved the libraries correctly.

$ ant -Divy.conf.name="java6, eclipse" dist

6.3. How to build with eclipse

This guide assumes eclipse 3.1.0 and you have downloaded the entire red5 build from the subversion repository at https://red5.googlecode.com/svn/java/server/trunk

6.3.1. Recommended Eclipse Plugins

The following plugins are recommended or required for building red5 in eclipse.

6.3.2. Importing the Red5 Project

There are two ways to import the Red5 project. Either import an already downloaded working copy of the Red5 project or import the project directly from SVN.

Procedure 6.1. Import the checked out working copy.

  1. Start Eclipse.

  2. Begin to import project FileImport

  3. In the Import dialog box select the item Existing Projects into Workspace and hit next.

  4. Hit the browse button next to the Select root directory text box.

  5. Select the root folder where you downloaded the red5 repository,(e.g. c:\projects \osflash\red5 or /www/red5_server) and hit ok.

  6. Make sure red5 is selected in the projects area and hit Finish.

  7. Eclipse should automatically build the project, you can force a build from the menu ProjectBuild Project

Procedure 6.2. Import the project working copy from SVN. (Subclipse must be installed).

  1. Begin to import project FileImport

  2. In the Import dialog box select SVN and then select the item Checkout Projects from SVN and hit next.

  3. A list of available SVN urls will be available, if it is not available select Create a new repository location click Next and enter. http://red5.googlecode.com/svn/java/server/trunk or.\ https://red5.googlecode.com/svn/java/server/trunk if you have a google code login.

  4. Click Finish.

  5. Eclipse should automatically build the project, you can force a build from the menu ProjectBuild Project

6.3.3. Updating the Red5 source from Eclipse.

Procedure 6.3. Updating the Red5 source from trunk.

  1. In eclipse right click the Red5 source project.

  2. Locate to TeamUpdate

  3. The source will be updated from SVN.

  4. Right click the Red5 project and select Refresh.

  5. The project should also be cleaned after each update, by the following ProjectClean

6.3.4. 

Procedure 6.4. Debugging Red5 in Eclipse.

  1. Click the arrow next to the icon menu and then click Debug Configurations.

  2. Click Java Application in the menu then right click and New.

  3. Type a name for the debug configuration (ie Red) and type org.red5.server.Bootstrap as the main class.

  4. Select the Arguments tab.

  5. In the Program Arguments enter


    -Dlogback.ContextSelector=org.red5.logging.LoggingContextSelector -Dcatalina.useNaming=true  -Djava.security.debug=failure

  6. In the VM Arguments enter


    -cp ./conf

  7. In OSX with JDK 5 and JDK6 to specify JDK6 the PATH variable has to be set. Goto the Environment Tab, add a new variable called PATH, and place this in there.


    /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home/bin

  8. Click Apply and Close.

  9. Goto the build configure path dialog Build PathConfigure Build Path

  10. In the Source tab choose Add Folder and select the src/conf directory.

  11. Make sure "Allow output folders for source folders" is selected.

  12. Under red5_server/src/conf, select Output Folder and choose Edit.

  13. Select Specific Output Folder, select the root directory and choose "create new folder" and choose "conf".

  14. Select conf, the output folder for the Red5 configs will now be placed into red5_server/conf.

  15. With the imported red5 project selected click the debug icon and it will launch the server.

  16. Console logging will appear in the console window.

If you get an error in the console like:

 
java.net.BindException: Address already in use: bind at sun.nio.ch.Net.bind(Native 
Method) at sun.nio.ch.ServerSocketChannelImpl.bind(Unknown 
Source) at sun.nio.ch.ServerSocketAdaptor.bind(Unknown Source) at 
org.apache.mina.io.socket.SocketAcceptor.registerNew(SocketAcceptor.java:362) 
at org.apache.mina.io.socket.SocketAcceptor.access$800(SocketAcceptor.java:46) 
at org.apache.mina.io.socket.SocketAcceptor$Worker.run(SocketAcceptor.java:238) 
Exception in thread "main" 

Then the socket red5 wants to run is in use, you can change the socket port in the property rtmp.port in the property file red5.properties.

6.3.5. Ant, Ivy and Eclipse

When cleaning the dependancy libraries using ant and ivy with the following command

$ ant ivyclear

It is required to run the rebuild of Red5 in a particular way to make sure ivy retrieved the libraries correctly.

$ ant -Divy.conf.name="java6, eclipse" dist

Then back in eclipse right click the ivy.xml in the project and click Refresh it will also resolve the libraries in Eclipse.

red5-1.0~svn4374.orig-doc/reference/html/management.html0000644000175000017500000004102511561764617023002 0ustar drazzibdrazzib Chapter 16. Management

Chapter 16. Management

16.1. JMX Classes

Red5's implementation consists of the following classes and various other MBeans:

org.red5.server.jmx.JMXFactory - Provides access to the platform MBeanServer as well as registration, unregistration, and creation of new MBean instances. Creation and registration is performed using StandardMBean wrappers.

org.red5.server.jmx.JMXAgent - Provides the HTML adapter and registration of MBeans.

org.red5.server.jmx.JMXUtil - Helper methods for working with ObjectName or MBean instances.

16.2. Spring configuration

The Spring configuration for the JMX implementation allows you to configure the "domain" for MBean registration and listener port for the HTML adaptor. The default entries are shown below.



<!-- JMX server --> 
<!-- JMX server --> 
 <bean id="jmxFactory" class="org.red5.server.jmx.JMXFactory"> 
  <property name="domain" value="org.red5.server"/> 
 </bean> 
 <bean id="jmxAgent" class="org.red5.server.jmx.JMXAgent" init-method="init"> 
  <!-- The RMI adapter allows remote connections to the MBeanServer --> 
  <property name="enableRmiAdapter" value="true"/> 
  <property name="rmiAdapterPort" value="${jmx.rmi.port.registry}"/> 
  <property name="rmiAdapterRemotePort" value="${jmx.rmi.port.remoteobjects}"/> 
  <property name="rmiAdapterHost" value="${jmx.rmi.host}"/> 
  <!-- SSL 
   To use jmx with ssl you must also supply the location of the keystore and its password 
   when starting the server with the following JVM options: 
    -Djavax.net.ssl.keyStore=keystore 
        -Djavax.net.ssl.keyStorePassword=password 
  --> 
  <property name="enableSsl" value="${jmx.rmi.ssl}"/> 
  <!-- Starts a registry if it doesnt exist --> 
  <property name="startRegistry" value="true"/> 
  <!-- Authentication --> 
  <property name="remoteAccessProperties" value="${red5.config_root}/access.properties"/> 
  <property name="remotePasswordProperties" value="${red5.config_root}/password.properties"/> 
  <property name="remoteSSLKeystore" value="${red5.config_root}/keystore.jmx"/> 
  <property name="remoteSSLKeystorePass" value="${rtmps.keystorepass}"/> 
  <!-- The HTML adapter allows connections to the MBeanServer via a web browser --> 
  <property name="enableHtmlAdapter" value="${jmx.http}"/> 
  <property name="htmlAdapterPort" value="${jmx.http.port}"/> 
  <!-- Mina offers its own Mbeans so you may integrate them here --> 
  <property name="enableMinaMonitor" value="true"/> 
 </bean> 

The config settings for the jmxAgent bean is located in the red5.properties, these are:

red5.properties -


 # JMX 
jmx.rmi.port.registry=9999 
jmx.rmi.port.remoteobjects= 
jmx.rmi.host=0.0.0.0 
jmx.rmi.ssl=false 
jmx.http=false 
jmx.http.port=8082 

  1. jmx.rmi.port.registry - The RMI registry port. The RMI adapter may only be used if an

RMI registry is running. The RMI registry is enabled by default.

  1. jmx.rmi.port.remoteobjects - The RMI remote objects export port to specify for access

through firewalls. The default port is generated from the RMI stack.

  1. jmx.rmi.host - For RMI remote access specify the host to bind to usually the public

address.

  1. jmx.rmi.ssl - Enable RMI / JMX SSL. SSL is off by default.

  2. jmx.http - Enable HTTP RMI adapter. The HTML adapter is disabled by default, but it

allows easy management of MBeans from a web browser.

16.3. RMI Authentication

RMI authentication is configured and enabled by default. This is to secure the RMI connection from anonymous clients. The bean properties remoteAccessProperties and remotePasswordProperties set the JMX access and password config files. The access.properties and password.properties config files define the JMX user rights and clear text password. access.properties contains a user and group rights config

access.properties -


red5user readwrite 

Where red5user is the JMX username and readwrite is the rights which is usually left as default. password.properties contains the JMX user and password

password.properties -


red5user changeme 

Where red5user is the JMX username and changeme is the JMX password.

[Tip]Tip

It is advisable to change the default login, aswell as configure with SSL enabled as the login is cleartext.

16.4. JMX / RMI / SSL

When RMI is enabled with SSL, the bean properties remoteSSLKeystore and remoteSSLKeystorePass are required to load the SSL keystore and the keystore password for the SSL request. The default keystore loaded is the conf/keystore.jmx file which can also share the keystore required for RTMPS connections. The java properties javax.net.ssl.keyStore and javax.net.ssl.keyStorePassword are transparently set. To generate the keystore / and truststore for client / server connections run from the source


  ant truststore

This will generate a keystore.jmx, red5server.cer and truststore.jmx certificate.

16.5. jConsole / JMX Client

JConsole is a utility that ships with the JRE (since 1.5), it allows you to manage local and remote JMX implementations. To enable introspection you must add the following VM parameter to your startup:


-Dcom.sun.management.jmxremote 

16.5.1. Local Management

After the parameter is set and the application initialized you can start jConsole at the command line by typing:

$ jconsole

A Swing application will appear and you must select the implementation (agent) you wish to manage, for local simply select "org.red5.server.Standalone".

16.5.2. Remote Management

For remote connections with jconsole / JMX clients the command is

$ jconsole service:jmx:rmi://host:port/jndi/rmi://host:port/red5 

16.5.3. SSL Remote Management

For remote ssl connections with jconsole / JMX clients the client is required to load the truststore certificate generated previouslly.

The command for setting the truststore properties

$ jconsole -J-Djavax.net.ssl.trustStore=truststore.jmx \ 
-J-Djavax.net.ssl.trustStorePassword=password \ 
service:jmx:rmi://host:port/jndi/rmi://host:port/red5 
red5-1.0~svn4374.orig-doc/reference/html/getting-started.html0000644000175000017500000000651311561764617023776 0ustar drazzibdrazzib Part I. Getting Started
red5-1.0~svn4374.orig-doc/reference/html/releasing.html0000644000175000017500000000613411561341421022621 0ustar drazzibdrazzib Chapter 7. Releasing Red5

Chapter 7. Releasing Red5

This document describes the steps necessary to create a new release of Red5:

  1. Make sure everything has been committed to the trunk or correct branch.

  2. Update the file doc/changelog.txt with informations about the new release.

  3. Create tags of the modules that are linked into the main code tree:

documentation at http://red5.googlecode.com/svn/doc/tags Tags for versions should always be the version string with dots replaced by underscores, e.g. version "1.2.3" becomes tag "1_2_3".

If you would tag the documentation folder for version "1.2.3", you would use the url http://red5.googlecode.com/svn/doc/tags/1_2_3

red5-1.0~svn4374.orig-doc/reference/html/rtmp-specification.html0000644000175000017500000000557211561341421024455 0ustar drazzibdrazzib Appendix A. RTMP Specification
red5-1.0~svn4374.orig-doc/reference/html/images/0000755000175000017500000000000011760512604021227 5ustar drazzibdrazzibred5-1.0~svn4374.orig-doc/reference/html/images/logo.jpg0000644000175000017500000023776711561341421022713 0ustar drazzibdrazzibJFIFdd kExifMM*bj(1r2iB@'B@'Adobe Photoshop CS3 Macintosh2008:07:19 14:57:37&(. 5HHJFIFHH Adobe_CMAdobed            k" ?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IOTI%)$IJI$RI$I%)$IJI$RI$I%)$IOTI%)$IJI$RI$I%)$IJI$RI$I%)$IOTI%)$IJIs_\~Wgu LvXcw{+lz|X|I=WI)񭓇#)`9ѐ^,'\oVWSfCy>EU㇨eVemu]LIeQ}XoOͮ>sҶf7q?eMW/ޕZZ[Xicmg蠟_[:gK]4>zf 69i~1~ͯu/?Y>}[#:v58x9{wӎGwZtsnG.a;"]4ǭ}o}'%u`t&zDncD2m~As}~3XnaćTc>=z=_Uomp3ns#ԺF#g/w^,:,F~LUӱ5r 5~m_9qŖq.St};?4to]Ps0[vrk߿fӱ]z 󾮿/?b[[e-]Nf]q~)~*=\|]c7?Zҭ6[;mlgWe?k9'`l0H&$xRI$V)$IOTI%)$IO/(Uӗ}~ȷ`Xi-dj_/ٿWzWMs]]Nsv{:r?youzFc*kwX>^MP>C-i&T6~ֶ_o?xS<\[Q[굔^][Z6cEnBtd.w}|_Vz9]&dT|h{ˎG٪ w~gvՙ[`O~{Yeݻ}]M%: p>޽sZ3kO}@I߲oE}xs+3]z]}muq)3/DȤ}WIN~WLW8X8ӎi 7Nm{gMU>atz^o{1i}nzmI,^z:m{I{so:wQ^'>f'렧}oN>MG]kufcos/s}VV]V%/Mq@oyy~Ybc<1$#ޡ}v>H{߶kgo?hO4Cg[=]ʕyWwQpm[kGzUߛّe2z7ߙGU궜ƲKj )Y첵&!"[>%<33K{DQ8$R4ԒI$TI%)$Z8[3$IJIGswl'l I)I$JRJ\7@Jq:/fiu=JE]G #ico#~kϨXԙhuNCf#=mwl~_kXv0`;k䷷pdPS>tO"U۵ٯ^Ɵ^3!׸f,I$$I)I$JTI%"eb]'mc1#۪X˱ YhCic BosqSM̉k"Y/a,:~z^ϥ e4ݠ5՞?{+U4>?GJHs̖[{Iphk2nV1gkpIenvݳ-S@,:@VY^֍wzI9;\^۹>ma\I%9cCݺeRvohȖBʟ߳JsSos^RN;=p^Osr[}isXѴ com.apple.print.PageFormat.PMHorizontalRes com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMHorizontalRes 72 com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMOrientation com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMOrientation 1 com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMScaling com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMScaling 1 com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalRes com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalRes 72 com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalScaling com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalScaling 1 com.apple.print.ticket.stateFlag 0 com.apple.print.subTicket.paper_info_ticket PMPPDPaperCodeName com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray PMPPDPaperCodeName A4 com.apple.print.ticket.stateFlag 0 PMTiogaPaperName com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray PMTiogaPaperName iso-a4 com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMAdjustedPageRect com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPageRect 0.0 0.0 783 559 com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMAdjustedPaperRect com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPaperRect -18 -18 824 577 com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMPaperName com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMPaperName iso-a4 com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMUnadjustedPageRect com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPageRect 0.0 0.0 783 559 com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMUnadjustedPaperRect com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPaperRect -18 -18 824 577 com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.ppd.PMPaperName com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PaperInfo.ppd.PMPaperName A4 com.apple.print.ticket.stateFlag 0 com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.type com.apple.print.PaperInfoTicket com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.type com.apple.print.PageFormatTicket 8BIMdd8BIM&?8BIM 8BIM8BIM 8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM8BIM 8BIM08BIM-8BIM@@8BIM8BIM=logonullboundsObjcRct1Top longLeftlongBtomlongRghtlongslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongRghtlongurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM( ?8BIM8BIM8BIM QkȠ 5JFIFHH Adobe_CMAdobed            k" ?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IOTI%)$IJI$RI$I%)$IJI$RI$I%)$IOTI%)$IJI$RI$I%)$IJI$RI$I%)$IOTI%)$IJIs_\~Wgu LvXcw{+lz|X|I=WI)񭓇#)`9ѐ^,'\oVWSfCy>EU㇨eVemu]LIeQ}XoOͮ>sҶf7q?eMW/ޕZZ[Xicmg蠟_[:gK]4>zf 69i~1~ͯu/?Y>}[#:v58x9{wӎGwZtsnG.a;"]4ǭ}o}'%u`t&zDncD2m~As}~3XnaćTc>=z=_Uomp3ns#ԺF#g/w^,:,F~LUӱ5r 5~m_9qŖq.St};?4to]Ps0[vrk߿fӱ]z 󾮿/?b[[e-]Nf]q~)~*=\|]c7?Zҭ6[;mlgWe?k9'`l0H&$xRI$V)$IOTI%)$IO/(Uӗ}~ȷ`Xi-dj_/ٿWzWMs]]Nsv{:r?youzFc*kwX>^MP>C-i&T6~ֶ_o?xS<\[Q[굔^][Z6cEnBtd.w}|_Vz9]&dT|h{ˎG٪ w~gvՙ[`O~{Yeݻ}]M%: p>޽sZ3kO}@I߲oE}xs+3]z]}muq)3/DȤ}WIN~WLW8X8ӎi 7Nm{gMU>atz^o{1i}nzmI,^z:m{I{so:wQ^'>f'렧}oN>MG]kufcos/s}VV]V%/Mq@oyy~Ybc<1$#ޡ}v>H{߶kgo?hO4Cg[=]ʕyWwQpm[kGzUߛّe2z7ߙGU궜ƲKj )Y첵&!"[>%<33K{DQ8$R4ԒI$TI%)$Z8[3$IJIGswl'l I)I$JRJ\7@Jq:/fiu=JE]G #ico#~kϨXԙhuNCf#=mwl~_kXv0`;k䷷pdPS>tO"U۵ٯ^Ɵ^3!׸f,I$$I)I$JTI%"eb]'mc1#۪X˱ YhCic BosqSM̉k"Y/a,:~z^ϥ e4ݠ5՞?{+U4>?GJHs̖[{Iphk2nV1gkpIenvݳ-S@,:@VY^֍wzI9;\^۹>ma\I%9cCݺeRvohȖBʟ߳JsSos^RN;=p^Osr[}isXѴFStsVlLsObjcnullFsIDlongAFrmlongFsFrVlLslong@LCntlong8BIMRoll8BIMmfri8BIMhttp://ns.adobe.com/xap/1.0/ Adobed@^     u!"1A2# QBa$3Rqb%C&4r 5'S6DTsEF7Gc(UVWdte)8fu*9:HIJXYZghijvwxyzm!1"AQ2aqB#Rb3 $Cr4%ScD&5T6Ed' sFtUeuV7)(GWf8vgwHXhx9IYiy*:JZjz ?ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u0OomGf^>~=ûqg0};aQrmGOX(# O[^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~O|%OtBݝSgky?-ALVs=ruQDi'MJ}׺/_[ hX: ]?7/.l~섢r96BDWu?'T 𵟞S4[{w!gn.2# fLe ~WV<-]x_b*^²Lέ>M՛%U+d1lGDh7O='{Gpn?}9<u]ŏ8hؼcEU Vٲɸe X;ZcbfiXMPz֓$ /Z5Vx:/?{⊻qt`nPo-u>(;^7#(9jݵy4u=u zR/*q~7Rf|5E]AxM43X?GS/?d1e_udu_brtWcrxʸ+ *jj*Y%$#=u;ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~R) ܕ_~|w[;?{G?ۣn;rm̥v?cJ 1#PƲC<$:V{*^#:GLG ݁eE~[|,>۳ysv m|Bz$|BEJw^{{^׺u{{^9._rnL/oݿg3Baq42||8^6I*&"$gv i7?^g=џ7 *+kzG[M,0J:EWI_uUO-^81M.^A?1>PjU=_J<̵F3oRU^v t;Oc`咝ahh_Q$th'I<~_OŞ[ !# Z&sv`7iT%."LqSt׺K"7~㢡|Q|OSUכ19]6>,N_gܝ)2¢o14O#9JHԪV3ٟyXkW>l|u-@Kٛ#;fWmhմZaILeSoFG j^OX_?m.윞#|\AD }Rj{uɯ+>ȶGݩ[J[K'EǺG[Uw+C&wCT)Cѹ^o,<|tgWE\y%fs%NAbձKY)[z^ԍB3Tnyi6|^޹Yvdb7iL6*,2t=k{uu{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺uߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~R) ܕ_~|q}tp?\6Wu׺u{{^׺ ;ϼOQo]^ QS>. "V8c#d*aj܅}D4KQ4q_* $恹7'Jnuԑczd>S]&.zl+SCiBcYelGS/ֵ2;79Tr`o▛ R5JYS"_E߁?z>F=߽g7qퟎ]aPf v^nGDEKs͗5b$_`^?L{ +G4]XEz ˱pYNԔYzUgVDc0zTZlI|N¬dҌh|sn]|u{F+R5qԵQFyW2&+{=/'cufdu<:7PzƧOڕ݋ٸBIKFi=׺ٟ/ӳGK;s=5\su~Q=m}Q+iuuMV1 ςjxXzߑ[|AG! j ڔl54SDL8Y,rid 3$n鿉͟qQV_!:;y{wc`&LJ6ܲ1u{t9_VAs_~bz}˟mm7hQeY,{f+|eGݬX|3cߺT}h7q+lVW|Z=G]&Nl~~$ﱐ _?~y޻:q-&olL~Si=SUK1uPC"QKS"u'_r+2RVnC?檅nԘ/S,vUx۶Kܒyb׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~R) ܕ_~|q}tp?\6Wu׺u{{^;n;WrMp9mѺ>z fom Lo/xqu,O,8б6׺4i}]]7mOQNڧq]ѹqRTRsjj'Y"S{o7ƥnc-}eG{wt4pzSM:L$бIoIG]Ћ? ׿=u=ō>%/۔3x z)FJ8;-鱔mLonyM\oQgkvo_l=|o+! .ZѪ !,fظ׺ڟz5u?uG_[# ٝopK ̈ <=-*3J-edťY$fcз{{^X/OG7(3~/f^g~{ߺDcĶ N}-M6fvvÚxDupEp> PԋPڹU~0Puk2N>B-ʿ/ c½,ȴJڴ(ݔRF juϟEvGyu6گvW|vciXjX%қ34y܄y`&fԚ{'Obh_hj\^V3&\.YIW?wV4YDUK*H4^|L(%/{|d^׺~Vnߺ^J[?+`e{~?2ۿq׿ҿVm^_l \}uտ[w>׺nͭ>vg>oy4k k{jZ:*cRR-=M5FAQOQSA<2HfE*2 ^W[C-~{+o돿u~Vnߺ^J[?+`e{~?2ۿq׿ҿVm^z*2:GB]X {^׺u{{^)`'fx>29e6>4t䆞5Da({W[C-~{+o돿u~Vnߺ^J[?+`e{~?2ۿq'Œ;?c3vW%WvR ][Rݝe+=%-t3HPO{^{|hѲu8׽u~{ߺ_?W>p&2W5JRg7C};Xiڛ=&:u5T?mǬ-L iMF+n9crdw{եZ%?O/kOE3Gߓ=ћ^!;¯#rv>;۔u5Z*0UP׃?kO_ѳdNk߿׃?kO_׿/?98b:c滗.u+wIl]bmNm(λnSK$*,N }lnQ%x1 : Qr:?/*{Wg4l{uns,sMkIVX Aw ?br4y<^N)15e uJKOWGWO+G,R+$XH|NON)y 9?7hOpsCץuG׳>>=׺?~-„~owFw%.í_{1:[Lfif+F^:*uQmǾMA:[+pٌ|Tා_v?_TR^+pmNJ:%@Otn{^ l,|)7[B`lEhm⡡FaSy8↗;I5{׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽uߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺZ‡?@;?nl [w*([eYE~Jz+}&ۘ k#NVRS׺[ӹzn 5ܛtnLnkpn=#g32LS!Q$+$^ߺ^׽u~{ߺF?C~/|s͹;WHei)vo|4xMS1WyZ*Zh笨{OOw%>gWhm-+54n͋.ŭ6OsCQLhnd"fmԝ4Y9%FO{EEEeDusUUU455K4+4M4YfbI7~{ߺ^׽u~{ߺ[hET-} Bm *1[]畍J:AVgöUsxihJ^} u~{ߺAgvR|oogwݕƒ ǤSBS[VEKGGMՕՓEOOm>nk/YuzVvj٧1<./-. RJ=׺gߺ^׽u~{ߺ^׽tp?\6Wu׺u{Iƾil})ꝏWUyv^zh6Zl^qjzcIe1^E[ϴ7foc~vmoݹڤz7SdhOf.8Eߺ_X?)Ϧ?GݽV\^ʭ'ȯɖ|&bKu)Q2Pf: LVIIsD4G{'PFo}g2K|temm(.8$Ɣ0=FDe !{=u7({CH&z.pnh2:U0=\QsQA /}wYmMiKKSȭllw=2e彦ص?J}S2~ MgsEG<嗭7_F={ߺ^׽u~{ߺFgGXߍr[WWq^⥼ݾ㯦ϼgW[oav޻17v4\[Q`8ʸbڹ Hu?bn,wc!o-͓YUy v*cdUSnK3Jw@}׺)GIXһnWiYb4JMVD'U[Y<tT$ o"up.vnҩ~Zz,W#,%C0 )CWIB)I^8Ꭵ1|;'7pڝqewf{!>W?wnJܦ[+_R-EU]LTYTup{?jۘ<ஊc+rQR$PLO2SӢ (gQ{{G&OnouS}`{ni?^蛵?v׺&Onouݧyۿ}/l#>?kB>#ע5_{uO_-o>oNܔ(&e6c!&&#(y$ŧT9^t~{ߺ_$/Qg˳:O%g\|\GRcrrKޝy[#/ݍQMAP1TM&9Q5uegZ{^i~QS[ zd+[9YEU$ iꩨdxjV#~LDݩ>Ӱ? m׿7jϴw[}uMڟ;@~{vN7qߺPr]u8jcbo,V6U-G"FUuPY,@~#}tp?\6Wu׺u{m0)1̻Df\dQK^! gy"HR=׺K#s~ɉmtڬgY)jQed*n] {u(+uϟ_5?%[=#3}ݑSPUy9Sqrƒv:)^k7vs[G{Kii0[wIdQGPCzB LM^a{TM$r_㧿WLؙwjO{kgq1O,t\+P2,ut-$rƲr?PGނ1,gfW>@fY5JDfAFhA:??O_E7TW(q?_7?y/0d[~ʿ:oW(q?^}?"ݿw׿Uq_}bG;K;L/!{@C?q$?׿_yayȷoON]n77j\U9]pQ\fHF#YeyZ "xhJ0` c7{g;9O9;tIlݶ)+=eXx$hA G% #` + z>s׽uNSw2?MŭGyu+_ < z^մ[o< j^[) ouO[;$~ #nǺw|AQR{&l JVۏn;P b!V|A>~tfonݐHf>mQA)h禖9Xu¨~,o]{fgOPݝ+${OU$UfW_EH\dُ{׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~j VYt/V:ߺ[O!u׽u~{ߺ^/QQ? 4t}s枒9ey_gմVZYJ#5ğu߿zo~vW_~}>u~{ߺ^׽u.swΏ{u"_w*G~ߺ^b0qp}3/M*JH<MQ7]R;;ZIۛ+w~[u{{^׺R+#׺^/_/?l~}=u~{ߺ_R|UwYi0}Q=ة4WX=twVZlPH>׺ۧe` c!Z}hbYQ;mRᦊO5;~nXdMEO#}~ _ދ?}}9A6 U5r>%v덙WV^m~{ߺZ›IOSWܙ3zK9{?^ݽ6]_臚X?O{oݍ֛vw.ڻ jc@l[0 2_5WEAeC`lmwv=p/vf >9g97n^\w鿳[߀y.US.RԽ7: pE+P$K`}ZU7r-2~Q#ɴ?W?͐CwY*ݱ\5Hjk /^?v V/^~H#~iϽ@t/u\=]G>}v^1<%dܹ-6(YlF,R[X"Dt yտz>kq/Eayev-r}[l 9 Ւ{oν;[~mlՏܻ3pwF߮] &<T6wJO;;WFVc4yiDhjhOuIWZE7V:= s9]#,yl?z]5~IWK7[.^׺{UcQHZϐI\:HzR)i"?+O'vNUM"ܚx런uݏN%r'aG)Oy!! vToxz:r19I2q!+PUET;/RFĎ@>܊CJ?פ[[uU. x@u*Hף ~|ߵ]{!*ڦl~ٴ2./gtJ ="F/VUT4'|3޵x7Qz"pQ,IQwj>){][=nJ&bjB:!8@Z}u4~{ߺFC7^7EխZy3{y暷e8[ՊZI&dWeZbJi,}s.7{޴oQxGN ? {x>VOtyNأn^Z9E B@&))h䌲7W}޻F~>sjuĴRZh*HIb⇣OE׽uXzk ;Hq 8ǍcǦw{)b&%]ٸ}XCwH?uT?_mB^C5KR Ͷaj2ϖa0&rѪRV#'~6jݏU쟇=Ik6_7hbDqUKתd)kO_Q~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~j VYt/V:ߺ[O!u׽u~{ߺ^o {p}uu{ﱾH7Uoo)vpyZߐg**c:zwGSo~mAX ǿuAX ǿuAX ǿuAX ǿuAX ǿu;Ϋr>e=n/7_O=?uu=K}|@׺]^׺;jJ/![%ZES HRUFjz$R+*uߺ_gnm^guo׺u{{^H_䯞W^{|hѲu8j{{_9vT{2805^`c6Cr%49 hx՜}׺]f({RJ8ðRA?ʻ~^M$ݛpc> f+% Y4qX;.{z?E_kv'ǿ]?k޹izKպK-O[j)oMO.!i~(4/^O{#s?l??Cv|_ɺqFc({C/-[w62wd 8`0g,՛OVЏ}u OPwtuCo/W:oS?;ww}{_}yl|u OPwtuoc_ɷ7[1?'~ 7\mޛ=AUynf)x Sy*POSsۯ>24O[7t]]c)=>$Rn4Y0No^??km?$SFfWM62na@+ p=׺8(P=<.mvvW@n^~W3;1]j8P42J{uz׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~j VYt/V:ߺ[O!u׽u~{ߺ^o {p}u~{ߺ^׽u~{ߺ^׽u"_w*G~ߺ^俘O'>׺~}G{yտ{^׺u{A!ے{?_{/u;Fߺ^׽u. {6\4cOE6]ك iå|Jl-{RxMw:+6ݽM&B3]vMm\FL:*)cs IA$ӱ)Vݫ G]5!:'I=lCVtmmIu5&_7.οz\& khի\oZxbZi\IŰX>?yAw6[=:__]1F_*8/Ѿ?q$?ZnE''#5U5Dݑ*!Z թK[R+%KtrSԪs V o2CC4&xcFGBY Páe9֠jV]vdl͹F=q>69OEGQ %r^Y2M#33c/YZmY$6* |g99͜c{YIm<,t{;;lcj5z|MChV##e͸dncI }״-[QF*.G5ٝ-(ᣩ(‡%WE*=4Sј{^9{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~j VYt/V:ߺ[O!u׽u~{ߺ^o {p}ui'YoK{|nC=;r\6k9mֻ|=& Ү׺~}G{yտ{^׺u{A!ے{?_{/u;Fߺ^׽utmOB9?{ XR婻fVolVB@([1^sF'Z~\56+5QKM#rnۓRJu8me"j,[{G'&?Uء&~W :eVe6Sxch{u~{ߺ^׽u~{ߺ^;|,[tVR Y \An7xG,갡6i:K{MVg*OŸyroZH-=Uʹ":zXG?EE$=Vn|ࢧĐB =aOMr|iPI Y(dПlu+׽u_诗)??uw!.w0\-{@Gz{Hn`DX%uAԘuX2TK<{s=)u a%Z+jQ=׺CFԁBEs}:Oz赞-רy|z#{!ۛ+w~[u{{^׺R+#׺^/_/?l~}=u~{ߺ_=o[_ĉ|=L{cG83{v3N RI MS$Ư VV) `7 'wVla߻gޱ18O))3jdܛ_)_QP PMu \zn"44(!_];)ZQgmݿ99Rs,~ rMlmCʤ[ĄG4s,": _+"d7il7\u3E}= S`Zz&%W b7&y^Y/^M3l"X3ҋU*YҦs .T6 iK";ƎCiuT}~\Sn/3@eN޵2-ڳ9cK5F?XuӫK,ݡ9 ?*,{Ko[f.pӐO`TAan6Ϟwmﯔy*?m˴c U6nGGR%}7*Fi"2=u^[6?['ϓUmmX}NXӧvz#$U˔Q*rsޛ;Y_FwuX/~E_)>@?q{s}v\5wF~!Տڸ9)8JjXpuO|FPqٜz㷷r)bUܑcjT:Sl,9tUT{u}׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~j VYt/V:ߺ[O!u׽u~{ߺ^o {p}u"ޛߟWߺ_O~{ߺ^׽u~{ߺ^׽u~{ߺ_!T>թ2rQLSCbo1oo\M{}}uzA{ߺV{{^׺unJu8׺8.Ə+ߺ_s~{ߺ^j7GA|X_;mǻzo3ZvBnnzڀɍ' XQQ׺So.USIכ*%O}]dEx#MOQߺ_]??͗۝LilZV&鿓{*{m}D I cyfGS3=׺)o=YG;jm76CmS/UPw|yl=3gT|sd6M] O|nFQ׺;!-OEIQT11̕-וS7Jϸou?;:/m,Ϋ_~C_3%.gZh JM.kw:fv\&DRF^J/ɿA`*ȶWpݙ1"MbTk'd7 $Q`qԚԡo~}v(qM &3:j,~:hU%4P@ߺSu~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽uߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~j VYt/V:ߺ[O!u׽u~{ߺ^ʧ6/WޝzrbcvRoem ה}ef)^zZ=Ɂb3ZJԈ?{ν|Ᵹ۽g&Gbu\smu\vP,$۹0G"2KCB$"3uߺ[|RG2?zR`~1K:}[s;\E5UU\mPvXxR-ф?_M׺Io|׿2O<{uA6=tY~cO=O0_izøq86=c0{:<63;/7GG1m"$0^]~共b1[_amlR|\]f_"mٛksnlĴQM$8y 4n{wu{{^׺¸?OǾ_;{btM( Cd#}Q1MI%\ɮ5ܱU%FQ}׺?E7_qKs{{/ǴTw+*?(wVO6*㪦^13.>utfov[C ˻0%)S<<ڪ()*(r(kuvAܗƿ;/W3 ojnDIJ4*ȵ6xfHяvK#'ܛwnd;aM'6>|kHEgQ-F[oU%L+U..Ckx k7l^" "ESB#~,xasZl/dXPr\/nw!M<& _{ߺ^׽ue( IDaFYGQgIUMXIIQXI $I8;Mw/g3^:ǽxq==D fႾGe+j)r>۽{,[al}ׇSlnXe{MO-46Wdjt~hqsqu.ʼ>Pw^ 2rWRRdkBd7&\S6 SDDx =׺/|_.{>Jwwvqn 6? i+l5-63BbRAM@^ zRU? ;lTaV&康)L.i)gT]+sp|RJĸc>׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺uߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~j VYt/V:ߺ[O!u׽u~{ߺ^tY;>lt~[p}֎H19zx ZZlnOSz`>I1J'm,|&'ْ<ssTKޑQ krJD}uc(g`bQ8 -SD!j>P׿u{{^׺u{{^׺u`BȤ0\_̪'S|ne6kEvɦϵۖ6XmHniY((eZUU^ϳb>0czlzvؙ6ulzcۻ%Q!4LrIO^Y~{ߺ^׽u~{ߺ^׽te>$D6/wRO%&.07n۟ Nx8dV88\}jFԒSʎd@*ݫxܬ"Q檢J:Juߺ^׽u~S򃥻/xm~y=IHhMN+9*m};GWSUO$s_Jn-:7{Ue{c;dTf))q= ?c +W}]+G…{+an/ǎvO ۹l$-ncy|yf[buu=:Ը!z>nĿ:gŽgm8z#=/鍡ca +re-'K ?.|]Z*zL6Ajl]6ev5Frd3TmajT^j6ۘ]7.[Grcwum\;p*<<.sSYcPh%7}t o5Ugl|.U$G=7 ;7&:$#ygb͹lHFE{p[ŴM0[ܥ8V6h俒=eWp7J(qCE璱>{S1f5زk?(X{+F<6YyvsT' |VWߟ'ewV6?ܝ cm'SM龱8 3w܆ ~?ˑK%C1j7`?_sOɯim|]Tt3w]'dQA{3B8 ʭB/!?Ғga*ݿo什[5WIMZB_ŌƟ$Gu?Z.^el Pdqde16sL{=c䙴[[XE'`*38ǽ>H z//n"\։4H+"(i\W#=ѲzgbR-RQnL寤5R`VעJͽL~*ǦuuvIL3;_&~YUN#Ekg)IYr’lN1f sI>[_av/Z\% auk@|'Jw+Bd;n~Rl'Y~zn=$nMmU\q$'y+@<"=׺#?#7c.\|wyo$., Bafr=Erщho{9J#% %T}*}u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ_ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~~43 2{{C zm*nU7jo]'GD * 4o{T@&Gw׺6<_{}(~:m>vvWt#[s#kS$%arr=uy^׺u{{^׺u^}=ܛmOWnoMegRMє(4u^\ʏHiy=GK,tZ$vtꪚS,HT LuMwl[=u;6=l׿PK|ܘ04[TFExLF)ʾ-U^d4!hgK$hGT@&Gw׺{^wm+{g{!ɷxgu@&Gw׺{^wm+{g{!ɷxgu@&Gw׺,-ľ]_C!td! `)Apz Qb0A<"5,Xu{{^׺u{3W};_`JfHFGUG]}2m=Z>ڲ I)zY_uI(R[M9ɻ7%n?~GS=h窓avE=gxjiUOQywrWךw_WE]NN4NŸSRU,SS$^}11O ڎx/xFgle㡭^8pIy`ܻ/"y#zI_u&{/vgJZÚC!7ezUs4RCi1FLeJ^{? cqw9;.޴Ux8u]gNG \Q )]ޝJ:OVK's/ƽV*ϽZjru/OO?5qzkeJ[o Ae_E^1 uF{CVvt)jeȜV]]IijM*uqʞ ?41]Cgp3ߒ4_kd\ Pufs?_gyQ3 i-_~7 m̟C0(Cm?/)i6bIwxw fh82(==U~1U׺Oot.G[;pH>NmL*HE6.ؤ`n>a4JfOui?,cj|`=]bno!̸ͼJlxZ5f{xK]ҏom`|f[koc( A`xllN8UTǿu{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺAptU]ӝٰ6hv˄zb)s{{9dJ*u)jb)SGUs$sF|g$+%;_]_#Wf2_7Vj3ۻ7=asCG[vGd)1BKuV=]a;4Y^ۋ,sƵT5cs{5+ux,m{ªĊL. ~a-ie6K3tظCb ]u*Kj&hbp}׺ٻ-K+AnIayY}iI]Vh*m鴒W{L?䅻4zEN3wt]iP> u-E'D ʱ{9K;igwy}}>J2ޏdvfb[v>,jy䥪Q( @^?M _'w?k)cg|/Xt_sVO#xigl{+hUIR6<$o{^A q<+-ݹ2nō%wn'ih(Oֽe[2gcN*j3-M=):/:i:( [a'](#LߊKP=׺#|==[soz-/T<IvNI/_R-`}׺''JIEmo>?8vU1Ud{=94`*|uu{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺uߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u_7'?OaihZtT.SÁ6+wÍc0UQeVP-{A]$g>Xffʬxb=Sgu q̺@1Vv^_^:-*4=K\cVykC1> !``{u]ۣb2-|>CMea)LqM RlљceYy!r>׺oď8}:rVޗ}ѐػ4 hnlnJ Yc`edHQ?'%HO_){Wҫx{o`>Hznjǿug$DSo:I_'ݝ>XL9ȫ c*Vߺ[*|4a|1ꪜf=IQTf?EыRpN|~iw wYXXt̶B[-:} ov_\B[w'ZucMI]j,9\_6B@avacNC't?;7dKKo }mOQ.ˀa\HjyUȊ{0$Px0GNu{{^׺u{{^׺u{{^׺u{{:H jj"5F,ž5 RceI7=cgGMKuvNa6^gQ]+39,>N׫L+c@#E-K*SMs^x}>{{ywW\nM۽˓ RmH2ëlmhn\ŧ#f FC#;i UO*kB[ O v*HԌfocvsdvrqKWBGDԲꥮІArR m*xdEt5Sҟ޺^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ_ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺEGyδ<2P-dU]ӭ&c2Sn*SFFCѕXxϸBuL]\>GEW=GݝaE.NO.+rٚ,n!AI#XVfu1-s<_.['dzx`lBFUd+Jz*c<+*$T%A&Bx$ Tϸ M&{kkcqgqxD)%UL'p\ -'S[tAi!bT+ IkUՈ* GS=o-봰:MnL6.E >B:I4̎Q:KG$lGGRUԂ6#zQkx`lBFUd+Jz*c<+*$T%A&BxHro]cm߻vՆK3جu ְIY MaY'}= cki2Qikhj!TӼ GpՁT[׺۞~{o]]YZ⦾ Sʮr$H)*BX,wJFS{C?ub=p.A;SD*4U2ĥN6c6\pS+`ˣ)cYch`>l޲[GqMC>gk<ޮ4;c4MGA,)]Vgf Ы$Q|@:^,PE$I0,QFIHA$zsv73l.#le$&wV & 6I QX 4,Lt[-}ק:enMg̝E=&6%UVM0UOuUF* '꥕H ׽unޫϷsj548J| zzH'zՑSCU:FduRn@VꡔWO $$`{V長.L<08ZuRլ38 #YCZS=WRVשX'=`* yYTZeY~%#"ҷ޺H9ەgs`j62Qqr֥s8n,m,EBuC,aWEzX{W׺`t_rPMf/MUO2zyxd?\ +eloW_:*ڿ ]썓vNr xğgX1CpLuXГtebytg,k,l0G@Wl_ϴwRkl׵LtLfѧTMI%t]#,=ӆ FѾ!ˠwq̐?son]h>?7F=$߻loM.RU{YYN!k@e vԮNGFҢg~ݤ9 `nc#I!ʩ j =iTUnMy;2˷sؼq2]U*?ߊuUt zi4O*G(^Z~_u@mNqn)ݛomIXU[5JHTD/iB ՝U4rX6b)I`-ucϿF[0=~UUnz}j7۔ml ZhFL1vy*]IrXƛuJS 7LE@ /Y&f '-ESPTz* yV' ؂>($GYC*AOAuW:ڇutus*(r)rW4TL}P$UrB-6b}CRM4 1+qEj^I$TI =%bZ^޻K?,*MLJRqQICY=D%R{VHQd "#o~4dWrC,rSj4W-ZiBWT41֪+J׵yzܸ {L1#]}0jJiIښi "ivE@(Oim٪i}}W[mnɓeqa[+R3y=UFJr8TSh+F'Oe76RlVz|UI4Xƶ{!jd_LѼFp9QÓ{Yb[V8t?UR~õ2D]ݎIWoRq jpK-wlJ|OMúOPlWta#ddΖ5!ΰGEPj8Z QSp>t>G?m,nyͿtnz=uϺwvGznWIUp>>i>3Ir1QV<Db֧'Meے|~t++5}[Rnj'ʌn&ǽm|x秦T =6DlV)ᥟ%_I5dIdI_Pf}dxHa 'p@}Η\)6B\Kkc䞫SKU}ie"AQ1"B '^;dl׭d2Vu gn=u8-YA7>OGmj䥪DH+q*8)EuH(0[\vњ;>cc)z5OWIݏMEFDLJZլ2ԥԋӥM`ԟW  :?s?}yڻ+U%NFm8JTKS[S.mpX0zknJ|æ2_7#6?gv`̲޿?{r4aM~9[pwlj:%IڴE}xg;}}g}ijܝiFњ#CSڬ<&+AHFIu ,kƢ*K O>{̐OE]_1hhK.?!./sySMN:Wvy>mއ ]^a< [A/̟]i:`d|+,Rh# <' x%rX!2ƁYHӣwe7Iu%^_#'Y1ո15X4wrl>Ym #iݓGW6Փ/:nDl%-N/]F/Z$lZdY)WJ@\fd;W>^nރ<㦤r$m*B<`c4HJqHVJgCV{p݇˫e{_SwdkJ+56S=T&`qqFy?1}C+gwߪh*wn;-Nt`ۣkq6yeXB)\}?Uq \ugl+p3<&[*h)gPOіGFpx6#R4#=ODn:~KutՕ-==LIS-=.0VG;49*pE31Vv CxQm:@[Z*q7I]]6&]cu^ hj=ܨUM<)GKMECBQ G6*GT8YdR8c?y;c1b&84lnGeqSPYxԔzy'֌ÐzW}M35 ?⺬^>Nv\l˓h7ٚqᶆ|`J 444Mhr =]_hu?mnn咚R_[_zA_HnNjRk9 vtTtaC0\y>iu.;v w6Ԧ*,#W⪠NDZ8jaa1D 1/[_RH-FS<[[Cnhvmn.3sQT5O%@:(\8ǴX9{%¡xdpz# whTU}kޕCTUz9=Gn1j@ZHyPuwҧ, O_OYgu)*e{ f%Nf1J."Ap-W-A8S.da{[^/?45{FnTW㪦c#h(̐#oXZfb#_Eq)1џ<Vf1oSvZne#rrr8)`ajJ=<F`Yq@=+i]V/Cmm';w6^T4clUCpWi%}BM_yz({W!_ Ν[U4Hƹۊ~}_:7onWIErMQQG)AS= zztj5)5T;:h*:0!JhSo|rAsp?K.oժ{IѿUa{WP,O4 +Q!Хzj6٫ulWTR*oOJǥmFvo(cv~%emZ֞T;E 1 :>'zL&"5UX\4u1GQD%Q1Ȭ%O֑Ĉ |W^jPv'Ct1'MHR:RAPA\kcX?!=7RA>n>˼.Yv.aZTWas yi!@I1նf?/;:3[O?I1b{-v&Fi.B17H^mMĊ={ߏWfn1ܕ?j8wv2IBifB\--ZWpzX|~XWsǏV'FU_ŏ-Wmj/Z?ãUkɋL߃=,G^Kd_9~?X~=9_7ai$/;XS}n5[ݭ~]5W8jzϸq"IꐮmzvB9 Q^5Β.Kr$zՃ[G1uO]ˉ[zNjMlCL9].$m]%l"=WHˡ,Zz7DQXR|GD]^ntJJ4AoOKggl?G[ٽwz򖪋c<֧k z)1SdѠF`Fm%؎Y37kq#@˥~7Xs8gU7ګ?m_Վv_{+oǷw ?KU*LR$Yژ5%TXHU*鋽Hw'"G/qhhUHnJv7gOI69Ao][:l_ggލ&=[=&a5T"Ek^W?GZ~#6vFۃtlt|kE]*5tIZASF̠LƯve*hxHYWZ@O/vvl]b*6馊:z=.+-PTei×Ko{zb'F4@0s[{1ٽkipg5aV-N̊ EQE4WYE/:lYV%[Xګ?AO4z3t7X]mV? !H5:$IY؁wv,nI>I$s҅U@@ :[#M_:)sLJV'F{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺL;l`]ˏ)͏P.A(dag dT!ԆPF*A#,ªz]ҝKu;Mnuvrx캺lf8MQ#| H"5C5&H?kZ\Y4\G_g|Sgx3h8ٶT QP#5j\Sy$@6/bP$j?à)ҝ;ww'|n WLc%Q'SsxLh݌ hBDH.|F n]Zip^'=JJZ Zj*xi(ᤤ!a0 1 TU*pUnpcVCiǓ4;g66TEݑP\uy2t~},~%_TpQ˼1S)@dF!M dӤM} Suf7R5w'C.֛O{^*+Oq,T"FTS D1#=믓q&6`; _]y-FIv:cYU\YA74K!|H'[ LTya޽_yv_+׃g?=QuSXz1':*?Zu^1?%۽pfz:l&;e1XQcWtZ=^JҐԵ%]ECx؛24M=h 3AW[󩷗aum]F=>⡪yeGSYS#`)w`X(U Z2 skX/"3Хj]uظ]АQnڸ6p<3Vb6髫djb_1P$gS8$y 5Oǣ!i-[y zDzNGuY*bvF0Jӹv,zS K k忶o*ZLv,eFǞ:7TD٩LSSgeV@ҤyHuJ)I͸W#?ϡ~ޙ=>nۏ'h)q;nE3-,Ebnܥu&O1ZiBBZ߆E҃q!^w=:7ܙ|cjn0&,GI$p,KSU$͢?<=!cO{OhVcY[@͞+_(2gSǎcƒ%&k G)V|nFmp.uYׂEP/䐤 Q҃wcÅnuzSO {II*-u%za(WXͽκS^J4O]}'֟#^MwUG5v~5-MWcmH!''YZzJnH4hÆ|OWQ"PI8x/N|gsv'\ee,ܔf|z \6>|v[ y]HDRR†(O,F$ME=|\~)Pw']lkp,ۄý)wPGOn8% L{ҡuF|1u|P1t'N w\f2 ֝QS**b6[wZEJ|2V%au } N LQAsSǗ^2rUzl_ IB>GHު_/ϫEOUU[SGM=^6YUMIQC%M#KQ%$c2D>H^Gam=iUڜWǚQ$2KGW$,(b֠;G"3=(zb1qE#z~l|=_on7\nMjf22]S]SL CL&@;;F2izMd9!&>ߗH?5{cp#zSfI0\V:%Z C RG 0dS #%7wp0N?8z 'K6pQR겻y䰕y<~>zL->СP'5%S۴DC9']@b)4n{[/|uٻSlݕ3Tmi Y?'']Hu?XXk/X$+Ǐ/LCνWw7[ɺ}6(nfjj֧,U\pjfMqm/8I LVؼrB*Ӯ?Oq|ڙ #xQnՐMTuUMI˼T8dt Ncp=XB]-áTQx9tO]ڔo+q]䊛!wY3VJM "ÃW>SmjqW,U濟ˣᵷfl̮ݘv.>v:H#If?f)PQ람(Y!ǕF~ugbE ߶;Oa@cg}xע ^ ^>#RC=fQ"U[M$mk)FI޺UǶi{_g)b+#Yમ]a~" jįtO{/h)5z82zv1ۃ7&*s.Woa9iqew($gU!T9,aԅ-0.ޫǧ[wEJ'.ܔcK&cp&PIžGbICWfZ&2Ta**j5sQbg9gTck1QJ'x&e%)A$ES}~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^P嫦pFJFGڙ [>IVS֍}>C:(#뭳Oxko׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺXji⫧o'iM5<)=;<icgFWS }tYk~oUM]ڂzUS%(ltړS~?Cn_a6N=G5>Kq]cCSOrz8q/DuMGD44I =,׫~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^red5-1.0~svn4374.orig-doc/reference/html/images/red5-banner.png0000644000175000017500000006123111561341421024036 0ustar drazzibdrazzibPNG  IHDR IQ~ pHYs   cHRMz%u0`:o_FbIDATxiVյ6L PG@l("9UFG P#j"hY( 5W({"eh(P4$ߙǻZY/ȹkĢ}^{לs>-y & ?"~0CoP#g,H N#qx3L$+uux^I+!/qi>@++CD`yLjտ/D9^3A߯&g5'1sa0ĵ{殞}<_5:)K?p̚ ϝ|uuy$I^O@>gẹҵςպȝ(ص%ų"(|3dv^ͻtV1gk,V3d>궽ʨKƬ7g~Ɛ.mQ2~WgJ/=[lő@`bg30p1K_df[Bt\̦=,l,w3cM+ฉWȅ3;\&D`"a,[l,L ʏ@0ޤ7gqҋ‚L$ury ~1KIL/G3<:g4+hY_F4~/Oj}6X^\v O# gfm(X-j\>1X-pXcN+F2*#: ,"mM[㘶rڃ\7`g<M"`.q A B\*J97"bJ"d&U''PƬ)PM&7,%ą$Iqc0R1(P8HѺ#F=`wu<3gLNրX890JQ/3+E1$c6c֞\aLڱ8pHyisƗϑ2~=!%1_fso(SL9.XfO7Z-l}DPArq$3^99T*2 }+),B6hTfF6EB`iev;6SFMqX9Bqs W%%vpY!a%gby(<IG"&5D{}LvOt.9 qGWIYh_M-I-!ֆO2&\%,}<.hC$w@YM8úNMz: 9[^%Hʾl2K2۽l$%*2àmK’:¤h 6s`2; Zl *D`؍uluLl0TV#9lvgxxMbu>}l#-G17M)榓K'Ɂ!y0e:4cQ LC "S%X B!Hh7!q-LZ:dIP[DջAPCLȒRB7>=9.‚OcQS|jg?.+2*H3)Վ&clF )@"+0"|d&F. ~,#e2 HquHG]IL)Xc%"9g5B 2yn2CqJ"ҵ*_ ,|ep'fC^b2@HǦs#%j'sevgF+̺9!"u| Rf'Msz`:u$L3| +!ϒ KΘ"Hzԭ麲QDdJ&!LLAH~zԄ\ojTHv d|yB‰t|S5Sod:HϏh^"a!fP 2*0X/8xʬCD)Q?:0N1'531\i#sf$͛SI[9{cܴɛشE|,;u#һnȡ,"hȑO!bQa;΢lO\Mr{gsLn5ba{dk<`4`IJ%01P='Bm>dC%tijm:*"ʨ 08#ɪ*$zǦL棳+!2nD"bF2۝$~1@GFa$8g,30fC"L&-C&*n:(3Z0JwRpLI#DFaI#ZSחZ&$Ou% uҚ$fR`‘fX.M ØLʄΞȴ -ͤW|%PA*2àD Reԭ]:X-<XavH;DABRH PE umWnZ%9בF0Jz\ƴe?5; TqFH, O9բX(vʹR"E.vxna:k}=6 c0ͽ gނFW AƯ%А!}5(T3FC15y180LӤ AK.Biu4^2*"xu Xt:$$T,JŋYTrdɎ SdHn2ZBJ\a~;A6FX C{%1k BVN#$X@rB,lp}i)%n=ȖK"己zE8ǍFm^FϕB0BeƙRQw+f۪S@X+\ذ`fRNgV-{GA>\ Q?d 9S.b i =PP-Le*[[jٰ |ZBB0LMP;Q$'@s$і|n1ȜKrYt$k5A9i߳`"CN>wAI4*jŔ#&bN6P`j:ը sAs׀u CIǑfNH[?ZivtoRQAZ4Uʨ 0(!/"kb)20*np~:."h2i?VrZ2'0ʪ0'7Pߦ{ΖUprK.섯km=e[ s4$D@0Hm !"^:jbsJMo +Z6*ĺXDx$gt2IdXL3hSY\#佰';AϜQjuJ-ZCr%c22*2TJ~+չMcU.,̪7| H5 -/j^6ѻ$e'D`KMOIAԞOoOb1vIlD*9#p_fm]4!?,$c3H!MÞKQRJESfu )WZ~jlY.Ոb -]l2'Z#⣸tnC^X}0G|'3Zv"Ie ({-f%ʨʐV˼uka RH5ȼqxt28M3 Y$ #blCGD1㱎\hHD0mg-﮻FGK vfM$(-M} rD(_Y~=-%ޗ-Zl*m'\yQ`Qi2 PIeZ?V$YrfDY;bxizcdhjDQVS ֝jZ Aed[ǹrNG@Cn2.I+N˨!ީSA^Xކf@kk+ΝÇW,We|/_nI,! O,S4dJsDdaNPDy(eMC|Nbdx_Xe`lMM d1h"A(pEC2_Ar3d9^՗΂S үT#Dvc136NƓ*7 `l!qB#"Qo":dTS-_6m,8a^rq)Isv4aITz,/UvG"־Z›asdʙ1u c}j>׾f llD{{VAkU[à^^$2ѕ/) fkIvؔ-ԏv¨1cQw/5.A.7̱d#?mƮkW㓏>oc*BۚP#e9`tD7(=`e===xW_ŹǞyHHL>ΤR] !ܕa\0uA"\J6w2,0f$-R`%A):bH nڱNVLF9pJĩpU&B"R.ЎplK# ;8!3]z)7? P=k1weV?O?E[[M ---hkkC[[[}uu5jjjPSS 8bM<(4MlQ;6ڞ{6Yo/kºkpp!SnI\\bO>46;BPkWcynC;1bu4PP`M7ÐmŤk1~=\+~ XCM]=SENA8\3=B!0qs4|\:W| Ri*w*' EKA J˔?I}>HVɬks}JL1}ʬΤ Ӫ.,A:+}}Z\xxg|! 8t>0nmi<8Vhw=" Ք@E̝;DCCj TuÆ hiih娭X@"J;6Ò!=Vo4tkV# bimXl3hptv3C`gƖ|dX!C+Y&!+aOR ;5Y'==[F F켳h/ 7ļ /DOO7| r2%D 88b꛸>_GM=M_HeH 26d4"VEBL- Xmtz%p\nXPUU\j)M1hlO=w׭Ä YW6 ;Ba,Q'!}PilaX I@A{ly4fNZ $ 6vxXj)qp-`Ĉ{̱>eIkkmZnaV_ЀiӦ2HzaD+vb{֝,q5H"~A=\$Cqbs0j%w!vܤ!`(M6g7jl$P \)7_ 7~|1]ϵ9hF.{17ltqg_HNp=  xGp/4ń9Q 8˙bLZ"#JJ[o ״ ܺ|3: U:hH[0/UUUZ=ɦB*FWk cRFBH QkkD{C^EVxT `9\Uxq̝;T6ݰxJ*0DJ]%aآ.BN0ˍbSbjOV׸}\}fԅܔߙ|Nܦ5ȤJc!z3#XDFy=УKpX|M{'Ndj׿?n{[o+Dŗd|\".@EAH5oXGE^KƷ)FFurJXK@X00&^-AWW`ʡ)gDfUU=p{wUE^ a0K@jK⦓q~\\TFRP LL͊1+J rSّ]4A2nU6lPfABe}}} 8[]heĝNj9ǜ ) 6FQ !#D0;kNba[aM6U d+9vM91xȐ͑<;h dFۋG>y4ᨃpYgnCooVM@jX.30e$:Ltt\L0b )*% 7#DlI}ďHߑ&Qwԩ_}%ֿ)n<8?#vä}Eӯ~7^ wtnEé31j8cݕZaI\`Ӧ/q[b撋7mڄK/yv7<KxP!! jSDw>vWC("-+WDg`Ƞm ODz'C`>)݀cN  _: 5ci\ƍE3{v4wy'F UbѢEp%<… qa+_߾bu 9ѠwvtkŔ)S?}_t:>FdRݠy7rB{{;ΝǃPWWFh\(ںokkCccc|8 *?\sǼ" !C-̢_DI1'(HSNq>&V]7o m N'3O9 Y_ΙCAK}ٿhĝ-1x`zF#N=@ r'ybJ3@v p2\رb#dž}^+.1$B_9S] ˗ћoL?'+./9|K \ue/_q7EeкZpq0wڂᅲV1ܴ ]r >?< 6mh}A4,}AՅ?*.B\Y{JCE7,- o8WW…M磳˨k:;tՅzT CV},\ EWg'd+8c0'qcϜ}W]/>LE g}äѣy \pf>}`ޥGf,ZCn;cذa4ڵ䒋1ct]P,Ʒ׬]wŋ/N?7|3kŮ#Gb͚5qaI씤l 쪈 mm^s\Ϻ uuuhllQSSF. En̝;uuu8p .]Kmmm[dL:::`۷ߕf?BގÇ Xxq4Çw(Ɔ 6|p̝;7֚#=w}fvo5555oX'5vCSG9'Yl$c궜-2VZ͟~1~3|7oƾ9 7/ۃW\^/U=S_ne1=DA '!3šJHa ߘQXV*,em;WP&.3X-t#wU[wYg`[no朋ⳏ>܊-ԭoQC̙k};p1r]vygY\B*M]s },&d^z:ŦgFpLV6C= Nu}C`ժU<1; cʕ⋱k1aDL?Κ5 K[[Q5`VXcU&rb9xDS~~ Ι3&Ϥͭ8Ϗ?(~3R0i 4`Guuv` XxuX){Xx?㩧آ樳Ûx.9 Sɓ'gԩS1`ذa'1N"riT:l): {_8cMիԄŋ@v---hnnFmm-/^Zc[\DW^ fƷ~R;wze`[ZZ0~x6^_CC/_x?38p]ƮUNMMMoN]q?{.Hj6ەBy]47';7AƁk~[rNy퇩7+ ;&nDt . ~ԯ8WBU+3O>+/GO9ucтX[)y {S>:%I*Xb*83q`ۡC2s&k/^8eLt޹XK雯O>ϝAowI'jOJ.Z5_(BOwI%#O9/-ަGZ[^8)wvܴ N g(P\._:v1ƹ瞋1B0`uϽ8ceK/ԙ3#\4կbqF[8\ N~`KsFep hnnƆ АW2vv455)iҥٶ v1հ4$`H:HS(WV[ۋuoO>A۳Ϣ3fDSзoB)4T3ϔvRNH8O߾YƥYS7z155&͎B@l8\"fa\xNdΚ5ka?c0)Qb|qF5kp{Qh@ ^o}X!D9; pǣݐ=f l \___R]]]̻ouCC܌昣p{hkkF{{{Sޫ3ޛsfhmml†Q-À @')@hQc^P;ĆO>.EYwށyWG|Z|i6cРq΃ O1az{z e~) ZP8#tG~'pؑGzM(s]vbs$_GGLd;vPg |3nW81j:AC1ѣG''wׇʧ(^r/X(i(i=쳍6ME.X+o/aÆ D|7N8d#=^X2ÇWqW(˒{Q MMMhmmmiiAKKV8455)!s碾^On稺Z]LaXcМԄ絴؃rs[@PjJ PIQl1ch**׭]>C1rO?J\&{J|o$5Q8=M( &JK핥?yRt>p18pT8y$`7î/_:tt`ĥT9uW: h mUӺP~yFRPUU .=.("ή.ܷd ~yٱ w lu~2:Ȉ{FCE/$]65 >-`+E e}P;E; ٹֆVHh^Guu5V^iӦ95=p@̟?]Y"/ʚP`eBkk+xk<"54!'$b݂I1[V>ΌYr-$~ޞ'cd%/N-eĒIC^7~s,N<AZi~ǒ:lD4&&ƛGއ)+OՙSKdg 0~ή5˦DV:$RQCg DJuRg9sWWgK__5`@b,q(k">g)N}lFӎc#|`%%"}̊ $!oݾ8w%'/\M#~˗cess/^Ю744l#D"-?2jjj⽕Nkkkg5{vSIX34+gr>ؠ> i*E.-xuJ_ fIGɩ2}GN2+ecdcIfhÏ::~믾7,"eQSBy.S]}=1T$ 2aϽ.9%M pU zU8 rA @ggW|GQSxH3MѣGk*hʻ +27Y\tK/(P2K2/#<*jtQȥtb&Ηb](pMw=677xhG駟Έ 0On)%ipl<6lؐ-; ܜdIɔ6.~ԯg͎ӪӪ"͜PcǥkһvBa0+t*@c-E% EJ7_'qs'|BnMYG9e or襷:L>˟{V)zBO^6:XFf YHި0>S/ØTd.; UUcgn u ĉ7:D切M:Fc VyJ,I'?Z92J.uW?QRorp} ITZ;`a$3KkAHlN0kkV0$C*HPZM!ؽD^dFE݀|0zT|.mf]WW(NooSWoa(u]2)+k4ybK/#U$osZV&}7 2jD u*(yl9R89 )!め{}y@{'^ҵcwwP>eڸd]eיYn}cQH6z:N{ vg}?=ȣRzM3+W(_-UjW*99}Q)%qclDa E,_|>H"7ًt|۩[lR*"bzJ k-*s0ĐnnlذCCC^Dο{9Tb*z{zpu% R=%cۃ,wW\鵓C]Hmxɡ&,{1y;)%?w8j18?O&W)5FD7^_}%9Ǯn,Z,ZrmU;]l"摜sUU߇]m2^ wveqv(?-W G[*>lɗ*.LuKw}ymsMl ,IyƥpTWt%`a4g߾`kǎ>~H#WgG'.b\|EQ.q>)6Rf<i6RH:ge.s^N1P)|gE\hllޯ̝;L6lݚ5ZLWXfzQ6bNP_Y6m M)^8&E$ᓏq9)]=}S'7|;} |WW6 J5-s=oUDP Ɉۃ۱jˑx"~2bg4bg v+s)VU5'M!CbEp7ƛni3g:kCEƍ7n܈GyÆ 3(.xh{9ʪ>M6iR⴯ wCtN:476Tr=nο_s9Gzwݚ O8N8G6ӦOS;,:Z[p`w]389Ygc1X=$f|2.T (,¯;sw]:oNqکb/x'*9 wu.7/nGOtd-b^'|2>۸1{ƛnT!NXv Aɓ'm> `Lh]ێ ?{⌆3P{`mr="{%+«>(u:,ng&Ǧ&455Eсl]__磹YEQdÇGGGG$2XxommUňaZ 544 ---xsi)KfnKKGh7{DMZU: .d Do?63r<**Q+w^+/h5v,.U1"fYo+5Q7WH5Kgƫ+WӏK Ncƍ=ҩ0O>=T~)01x`C`А!i}Wxefj 2cwS<Ұ R4ږAAQ@|7ćGO"گHsǞe:V,C)3g_ᅬ= #wcۡ FR*~BwO7^?\g8>tomBɱO,Ƶfn|gVصl+xUXxuUrr߄ 0a"N1C#&cwuuaɽbʕQ_j~8#JR߄fO>8y1{ 5Gu$vܱ;cԎ땣`&'4̺bѢxR;,<ֺuE˥@}msY1}HZ$5vIjN ~kSK'6Q0TR${8u;;JM 2҉'f*2amK [aH[QU])!DjP^{zdsQ?ǩLi㳤"rJHѭ~,BurjX%(PIv@C sOÛFJҟx,ٟT )td)@KH[PHRz9s:)諚NB(͐)pN$g 3[Id u8s9sIVe!Uf2b]eWRMd35DSB3ɋcOk++*BbO },>Pae0I'ؿy`Tm&%(~HY 6QAMi2Om$dռBC2WvH\DD$g-^e #$2lM2C& Y+hI"f ϟre#jAbVeC6xFCH.)j, %%G:9j7BM"0P eMۜimu, R 5/6; VR+$'hpZ ”)TFexnD(nے&EsYu"g5m>87nha`N줙Y^3U0 r5@^)Җf8cs6;'}n p9,Fg(^ l$ٻjbA (A,)TT@¨WuuP( HK](p6T`.pQ=tLD|$./)MÔX8!Р U b.Qw^m-w?+iwéeP' 2@%"ZSƌMɾP6T!62d `xCFؙ~N "Jj^Y ?˄!`gDZ`GDsѬKP` =-Id/h&s) Ju$Ԍ8i"Ț亓Ə JbB=sn"d(mZUzlS"AxMFd;"ȫ /I`S1}GDeRlB4Q[KG0E7м"KγqL@- &Ne_^U91$Yahb}dR9ub*԰" u3k`P.@2T<2mda45cg M r%Vk_99l wk$1I|CsHܵXס e{Ȍ{vZB~ ("$ISri+/ie_%:oXpD)WVFe ˛xFdd4-r,#bv䕺$kDl$}"FΠR=F\TLeCN%dD|QOlD :j@=>Nyė՗_NNۘaYl*rp4)Su!VE[xF6%%* B0`WIF C%(2iPRM+c&g4Vyhjo(Ҳa%%7΀Y2*0vD(aDZ3<XWLFDHYFx[Xe& [-2-HD رa M/2i^~sX=YTXGd"DkI9=];\ux7DA"_*VtKQ8CVF%t-YH+\wjE "ia\ ڡ+ CWWrĨZYG6 ;#đbG@ anvc]$Qbv}2j?!$-ej8"uP2*#;hcO0e, C$ g(W"57.N%r>hv@! 2̉RH%Hϕ2ה#^ ׁ@d\s N(΁@m+n4sE`@| w[^{ARs=dCDTDgu=[C/fϜWT)%]$RS[6ɔZEAHZޫD"4P\sTe ՠIty14|eTFeВǞb6g,;H+^ Mh2;"ll7D"'m-fr~3}(+k("bw0U4ЩЄ$NЈ 'x#>O2-(C+HA3Bs"RzYvK #ZY#N%bdH9$4!rFMʹ eψqtȾRJS|:JݿD侕+bOy2d0gؑ{qF+2*`ߟ ٥)#5u$$1\b0ӡR+P-VӯG 9\**!D *9l/4nL n*%MhiC-ITFeTFLI@ifQh30a"RAM{YhNض;ua0[ ?Z."՞cax #/I5@4\oTΙICHÁq;Pj⪜f j^T䚻g0k\r!=LΤn=9HgC|%IAaք.6 FO62Q?瘔oQnO1^gKQJ+SW9r\rw s?Qkʨʐ&x(55&jvBl(Z(0mUF=ԟ gRȡ )VFsua"FVEz:*χUz=UevGv mB "gVlh2|3Qd֮24Dڸ+)8&T$GYBW&0NY5E.hkBeTaSYfEEs ̺Qe'uz)T+2gʁLIc,{!9ӶjdG #H 8EXi"Uddm9*@sj33JX)'*7o{YUѧbCS%)'`dtP}Ćx6y1bQ)ރmt*⚕#Lj΄)oJ'j7rdEi` 9(3MmM2кe5(6"ᒓ'r ĬҔ+hhd8Ep2mXKBݦd%E!1IFB2 Y?\uqlmʄВAP';tF^p-b-iQl+ՑICxn6LıXo(E&R0a}%KEEJř#LDMFf9JH h$a`PeG)g-y ,}]G%,2-œCSX84!by*%ƙ:Tao# 2L@0sueb >{[Wx|Qʺ mot7ĆdW"f;yHD A=,x(' fMᬶ<l .y<f%q]+k\fLkR)'g/hRvf?(Zm,Dkw4! !hdZ)Ķ(g&(C$]oŲIFՂ<A "39_2!3%aXW8K-x9qPkX9yF8 QAڣ2.P`ӄm4d a]kXpHãiC|MI''P*393 %tL^+dK HU.7Z ųR<ΕDldIsFygR*Xj 2UeTFeug2_,l[%e#uvCܼb8_g1C.+guN&|R $Q g>RVɃYhGP"brYV;#G#4eu.”F@(GpSD)Ik(s Y]qI6q't0SJZ=c;K%FЫ L2"NVJl z懲 QaH:W7IӖ`X  !#Kٌ9$!D2d-ڻ`x)h*2S/U6glH9~M`C3"I{,H.8L N tׄzatCƢGt h."[a=Ȩ%ʇb9$;0LQDT%݌!bQx'횯Ukd TKNNtH)Tgk<K)g )-iΫʸw|μ9Spg}fʨ ^$6v=IhRߍ윉Hyk4#h2^a|M9'@O|@UYLn)̗m`k,fJD82!Rŀr88W|_:Ěooep'1(˒j<4R**&;WD- N{Na0!؈+r2LРstnk2,S$lX:|}]:MM ꐆEb8)EK2߁Nx%;t(c(հ伍KTL>BZ ? #A \7r$6ޝߎY)9Id1h"(@V 5 +4x>^tZ:kObdaR\aqA8X:iـ,*|逑;!]#VFeTFr(Bn#1Bm]ygMX*-n"[EL|qTs:;[ḴnYQʋ3ke2sr6Xj.P.S@VpUdo;(2u9 bd?L V Y+6 8Uyh4Rͧ'x-rHTtNpEv>KFDNCx&70Q9X!"f뢤70TFeqIENDB`red5-1.0~svn4374.orig-doc/reference/html/images/debug_button.png0000644000175000017500000001431011561341421024411 0ustar drazzibdrazzibPNG  IHDROciCCPICC ProfilexXwT? .^^EzD"* M: R+ 4 H("vvoٜ3gLf7yyُ|F wP %RAlPDT0**FբZP7:MfCFh{':GWߡ0 #Qb0>st L3lbXf(V k%`ð)"l# ;npȐ8$ԓt,R*FfV>&}M:O p8\w7 ##!S" &@VHvlll\\܉<<&#EEE3/۔tFn%-ckTTTZTT1TT^SPR PPKۨ?PoHӘӤӼY Ѻ&V>Cc}oӯ3222D10t0Lxoƿ23j13^a8ƸʤΔiYٗ9y"bReUȚ &fvmm݀= CÇ#cSӛ3W!W/:7!w8w90 O"O$/W׃7wϔ/3?)"?%V%A&A# ! ! ` aEa_#"9/עQyQobh1% Z 3xk|ْRrR~RURҴ҉ҏɈeJdޞ8"ģ?eEeeKe?ə];W#p]"bZI[)^]iGY^9LYJʒjA\mZKUABcVWMZsQKXGQkM[J;Dyn]n^}}Ou9s݆hClFFD:ucƽ&&V&&'EN|l056f:qTV3`fdvl\<ܢbR2ֲߊŪꏵuMM-m햝]ݴyW,ՎN睞wsJqzFLԙ,~.T.hW;z}yDb񻛦[۲{Gǒ5e/ |ob>>e>[f5G~v~M$mQAA)Ay!&!աPGa0  >Qiy?&* j0Z$Jb~̭sss=ܱ 3ΗAqgzy/\M%& %J%$NKz̞|!yņʔT.]F]<|ĕ+n/ӤӉ/J_-z1)Y z]C3wZK.Wnj<e“ߕh4]g~ cwvozXnPR!P_\꿥x:&fֲN>ް8r[;wʛMiw{ls_?{DzN?rx4fX'OjڹK::2;qɝG]1]A+O=?עw>gZ]j/_T|JUˠ!-^?Qy<:91Fo_;n>Lt/L'R''}jѝ#}u>yb!snIf}Yyo߃ﭤҬ^_Z{CϐG77j~4V6vN^>v@đQ! ;_5P8@7L/a1 0;u` R@ ӈ9e#&y$:a11ϱUq qr_yʻ)`*!T*< SQ\CO@_脊96 E~%KX=jSZ6:%zO f ׍NGG! %eZǙNg7\f\vnT|Lxo_~OmOlͮM}o[XL[ ^]wEcUbyӟUR7Boڪܽ4ޒV'#&T㉭%ÙeR"ii 4O00g;r=XYqlmy!\xE 0 |l!!'&A-1/*,m"C%D\|œbQY\y_eDF-^^C\PV)+ D}wC#Vcɛ-yYZt[[[S[iӷg_qpL?mts+ur6h6^Eɻ眯@A!P0(l ji$./*!Z= ܥسu7/|Nxx-,rygWSӦǯLRZ.q&ʝk)*)R.f/>(r#4r򣊅[E5>u >}7ߍ\uZ }#6ǑOR ::>wH<#>GH{#vޕ~|1iVkɦ# y 8mu ñp@8 8u~E` A<Ȇ ހYX)B+$B`M]J | u "QxF:.ـGQPFW4PaL1iXR16;JLB$i"9S%@&#uǐORS4SrQ^N"y8Z@z`HģLuLL̩,j,XY2عsrsqaʹո'y.Sg-/',, &*zQFOĐdTtVr* |JL,*NoGBBabc.%%\ħT\ҝf>%=u,ϯ@xҧ7[+T=~];V޻oW2E<^>WCw\>~˄T\˂ϒ/~~GO8?>L=%<@*lVL@4$  o8 UZ5?'B ۾U/9¢TQacj& 3c$$I$ܤ/q<88*Y)9܇-y)y)訲siXh*h%hЙMӇ3{zLt,6,lFr,0Fs!/4ݜHhX$ԔtLʼn˲rq JuUU yM#祟enØDi!seդmWC;N,g:znְ~?t/34;'?D\tisjzL6(;AvpW{RJ[,C)zԷ6kaWk_[^_ ;ObʓzS3_ NKϿ5;?Lހ1P#I`9A583m"PD%#iB1QuMzbMw}d4t玛%s%"w%_l:MCe}IM/@?223+,ְy /q4pr)qc'x.3  Yۋ8E'JdKHI`Փ /UR*I^Z:8H%cG~SS0MG84v>tNt%q;>3?h"ZHyߝЙTu%+]iY\||!(Vݲ~j{ߵn滿p}3iϳ}K^ +Џ.iyA 婲s|_wf|])_m[ѵ^3Mͦ?Jz4937vw*vvvwv[_:;89;xzrthxrr{x}4plP2ǧȵ㗣 9dUT"qw>n1ꡡ<[;On pHYs  iIDATH VMhAbƊE=y1X]A7 AH(b R*V1"CAj-VR-M)$XKn~6lD]gm!}}y7r\mMm5h7ۢ#{8 Y\SMMU|.5j4;{'tES TQA¹s?gӸA>"f]hH~xj v0eYn4s 8s2&P(%\7 ýR 5E@Mɡc؆*#_[!K/==,@ƒ(H$0%gIJEԷ`b{/}%e ?-`҄L @Qx<R)x^pMOiu?} M/V{*}QHde8)R9tp 'Y,{~9T|bܒ Ȍӈ$gc!e->$߾"荞K_n#"3zժl;rr#U[ML3D#+ 9yk"kKC5+>wYRʝI3wM51[$ r˒GOMJeBNIENDB`red5-1.0~svn4374.orig-doc/reference/html/images/red5-banner-logo.png0000644000175000017500000002504311561341421024775 0ustar drazzibdrazzibPNG  IHDRB#x pHYs   OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3- cHRMz%u0`:o_FNIDATx]gXT~ 3)3RPQĎXb1b1yL&z5DQc-AEԨ( DA20s˹N2( <ϙ=߽^{""hE¼ypٵHCCC@__UOGhP((((T*Eaa!ĉh߾= LMMaeeKKK7nF+=Ddd$6\ܾ}HHH@RR !P]] R ˲ ` ÀCGG033#bD"-hJ%qcڴiAloAA>|DEE(,,lz Э[7lllҢa,3f ,,  I&aȐ!\<@dd$Ξ=+WE޽; COK*-4'U >#Gi_ll,JKK@G!''.\%D"LMMall Hw|\{ɓ8{,=zJb=zgΜ9sk?-^ƈ#uVtرYruX`YV7P???L8Ǐ[ff&=zx$&&"==@ )QZZ gggBTWWC.CWWfffFΝヮ]ё+'OÇqed2aŊ4hvCP`Xb~1aNqR\\ٳHHH@QQU ŋq5ڵ vvvd(((@VVR)>|;wɓ <C &OI&̙3سgN:Ƹ8?-œ9s4AZ5P*g:ӈ#(55Y///YfWW,OR_ҥKӓlmmio>:Yx1ӇmOjj*j׮}W nXBT-}w~z4}tرcdmm֧={jDd-zeHR=zZx"uؑvJΝPYQnQHKأ'Uݹ"omjKD%D,Uw5!___{.ҥKַͭ Z[aZT˷l2NVN:a۶m wdP~2|TXa|304瑑1baȐ!۷/1ajQBiB*"2ݻ79;;Szz:'M0AX7oV$Վ;j7g(Nf}ۛ,,,EQ *%%TС]zDnݺUaUU5IɌIEDAFFF4qD3+++@U|ZMM39::ҕ+WhڵZ@tvv:7ӧ4iҤVӇ պuDTQQ.L^EJ Ȇ\Haɮ+3=/ը=}+W5kO3gvuu8""ZdIʊ߯x۷UUI%hРA*e999Q||<ԩ;A#&+˻^qΔz)=H圪! 2:uDDDT\\L*b}oǎXZZ]vjzUpss Zg~P{{{|PXaJyyy(..5ONN=)S4Xލ7]FKWW000P8:} "HR-US… xʳ>:uJظqU׆ `r*_Ɔ 'N 88&&&2e ֬Y}$DEEa`Fꇡac5jT8RP`kkӧO59d2oߎ={ԙOSoUrDcǚM^>|8֯_ &@GGSN͛s.oaÆN΁X,s6k/T...r9̚,cccꢢΕNNNMޏ>[ϟ#11Qeݻ7(b077o 2gΜaÆ!>>={|}}Ž(TVVB$5אr!˲jS(//o2>5QFu%,Z#ݻwEPgC"wwMB;#І-4'TWɩ=@N? 3_~wg榶NJJiIDM?k Wall HIIRCBZ!= G̬חU_~}5꿮P(}Rk9mTe>BkH*+fkkknU0w,"r3hCGΝ;A*@"\xxt_$5ڽ-HOOGee%7`-GNNh4eT Qn7 4jB0HLL w?l[*,,֭[!|xqV^^7n4LȲMھĽ{wӧD "<}T%O\\Ν SSS<{ yyy  FB4)hYi`fj4=a3!!y"UNNVN===IRyxx`ڵWK"22燹sB,#<<Ƃ daLQf  CFVz t>Pp3ݺa6j A0{l `و[jU}}7uabbv࠶tssX,FZZ8'''t֭q+X V)fD@l jLi)vbP& tlC^.'濼988[K_v[H$RCHR@,s"_m[ TRRecc0)M <4dILLDuu5 ADP*Pcll ej.RUEEm077.gMqtt@DkPy<M d5"URRtuuacca<ɳF=j4U>Ԅ|[`cc&Toxq- C0ZUr̥].]p߿faj,oTs6мq...jw߿\a养w憎CoP^ܨV|5M7oTduttYzk- ]]WY+JX[[k(ު HLLݹsŠApQܿorbРA"q7ԗ744{1pEn ]z!Hpy 6aͧR  ZצӼ2,utsW0899<iiiS ^#Us^Т~ ǏRz*z ###1{ԩSѷoHł'(!Q90ޚ5Tp0<օ,9r֭Lώ;,nĈkv4=9U]4h\]]U/EHHtttpXC(xqISli&%9kNh-`ŰDpp0*++qA퇃*fP(| j z*[[[`ڵ ѣ/Y{0cG05QU4 x3>G?~?OƮ]TV)DٳgkS9ySkG|,1c ~UUUXhbcc1֬YP_NgAY3s7w0?oU^֭֭[a<|!!!*QN 44TPU4Vg!"ӦMKޒӱj*b ND aYEӉ'ضm)==fеkW,\X|9*++`Ī=mV-Aw<۹ V_|w׿/S}~)Ə_PA}A ݻɃUUUÇ[E@WMƴi&;w/#Gҳg^w#.ȈƎK)))uVHH՛]A+E f*!7o#W>++NFFFk..vII 8P>>>\b RUVVҞ={CmP믿˲j*ktss3g47sy{{J.߹ssA0}1CHѝ]Ha"Q!ԋHֵžHѭ')&=x(XcdggG...t%yff& 2Dobݻ׸@oT5ByyyѵkHTҼyZm;njCIIIMbccK./*MII &H$ٳgSfffʈ'}##v(zpvJk6@nNʽ 8T 999tR200 󱱱ԫWZc4>:&Q^^͛7(F4yVFCCCZ|y _W^Xyf$"jڷoS.]h\`@eϟ7 G$Hh޽TUUO?*-b5CT kvE-BA&D*kpp0Srr2߿UK.ׯ_'///6B1cedda,X@666A6m,-\UVP\\L#Yfh…jQ"]|Y* %u\qXf Ǝb,\o\β,ƎUV!''GTTZ=z%Kbu?yK.űc4nnnX|99k4㏈@UUzѣGVVVu;@LL ~:r">>OŋP(/cdY/^ҥKq5r]ja;Rij"!er0gee5# XP 0 ϟ#??$EodXv-6lؠfQ?G@@q)ܾ}|>BΝѡCXXX]v044IJe:t@ee%PTTgϞӧuRRRPZZ www!00sW pǶg||WXzu8HM3g`ٲeuo5j&M{O /..C||< ,B!LLL@__K5^^^ƍ8v?tu ~MTZqcƍصkWvȑ#Y,!77(..0駟̙3`ff ZW颢"_> ,h%- BWŋ!ؠGx'''ԺO]j.^SN鴴鈍Ell,Qχ7-Z!C8%-F'N`ΝyftWWW8;;0551BCCq\3d_'O )) }:&Md^ҢEQ]]s㈍Ejjс J%B!gX X,--1c`̘1MUK*-\~]h)aeeݻO>ݻ7wﮱ9-hs(++T*EBBnܸD$$$@*RldPKKKt󃧧'bqWrEUUˑgϞ!;;HOOȑ#all R XZZ ;vD"'"$>*hu  0555=˲ҥK5vpڒJIsIENDB`red5-1.0~svn4374.orig-doc/reference/html/amf-specification.html0000644000175000017500000000574211561764617024255 0ustar drazzibdrazzib Appendix C. AMF Specification
red5-1.0~svn4374.orig-doc/reference/html/h264.html0000644000175000017500000002705011561764617021353 0ustar drazzibdrazzib Appendix F. H264

Appendix F. H264

This Section contains some of the answers from the mailing list about h.264. Please read this first before sending another question to the mailing list.

Paul Gregoire Posted initial Support in his Blog 6. October 2008 18:34: Steven and I got h264 working ! http://gregoire.org/2008/10/06/red5-h264/

Questions:

F.1. Does Red5 plan to support H.264/ACC streams in the next release, maybe 0.7.1?

You can check out Paul's mp4/f4v branch here: http://red5.googlecode.com/svn/java/server/branches/paulg_mp4/

and according to the plan it should be part of the 0.7.1 release - afaik.

And I'll let Paul speak for himself :-) http://osflash.org/pipermail/red5_osflash.org/2008-January/018483.html

Paul:I feel like I'm done it myself a million times :-) I'm currently active in the mp4 / h.264 branch and I would love to have it be part of the 0.7.1 release. The problem for me is that I'm not sure when I will be done and I would like to 0.7.1 go live very soon; it is more likely that 0.7.2 will include the release of h.264.

In actuality it is now scheduled for the 0.9.0 release but it may make it into 0.8.0. The 0.7.1 version will not be released - Paul

F.2. why are .mp4 files also listed in oflaDemo webapp grid as possible streams?

The "correct" extension in Adobe's case is F4V for Mpeg4 / h.264 encoded content. If you want a video that works, use the sample that comes with FMS3: AdobeBand_1500K_H264.mp4 Like I stated in my email/post, I have clean-up to do in addition to making the video config packet dynamic (the one that contains the decoder settings).

If you specify the flv extension that is what you will get, it will not include h264 content. FLV is expected to be any of the following video codecs: vp6, screenvideo, or h263. The audio will also not support AAC / MP4A for the flv extension. The f4v, mp4, and mov extensions will be provided by the MP4Reader class. The f4v file may contain avc1, vp6e, h264, mp4 for video and aac, mp4a, mp3, pcm for audio (there may be more but thats what I recall). Along side the MP4Reader is an audio only reader for AAC/MP4A files in the same style as the MP3Reader; it will be released at the same time and is for audio only files.

F.3. howto convert to h.264 using ffmpeg?

Here is a ffmpeg encoding line to provide mp4 with h264 codec readable with flash player 9 , FLVTOOL useless.


options="-vcodec libx264 -b 512k -bf 3 -subq 6 -cmp 256 -refs 5 -qmin 10 \
 -qmax 51 -qdiff 4 -coder 1 -loop 1 -me hex -me_range 16 -trellis 1 \
 -flags +mv4 -flags2 +bpyramid+wpred+mixed_refs+brdo+8x8dct \
 -partitions parti4x4+parti8x8+partp4x4+partp8x8+partb8x8 -g 250 \
 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71"

 ffmpeg -y -i "$X" -an -pass 1 -threads 2 $options "$tmpfile"

 ffmpeg -y -i "$X" -acodec libfaac -ar 44100 -ab 96k -pass 2 \
 -threads 2 $options "$tmpfile"

 qt-faststart "$tmpfile" "$outfile"

F.4. Does anyone have a link to an explaination of h264 licensing?

http://www.mpegla.com/avc/avc-licensees.cfm

http://www.flashmediaserver-blog.de/2008/05/21/54/ (skip the german text of the top) the list (in short ) from their:

H264 /commercial if a Enduser chooses to pay title-by-title o no fee for videos shorter then 12 minutes o else the lower of: 0,02 US$ per Titel or 2% of the Price that the Enduser pays if the Enduser pays within Subscription contract: o < 100.000 Subscribers per year --> no Fee o 100.000 - 250.000 Subscribers per Y --> 25.000 US$/Yr o 250.000 - 500.000 Subscribers per Y --> 50.000 US$/Y o etc.

this might be interesting for germans (we as only folk on the world have a fee for free televeision called GEZ):

dann gibt es noch ein weiteres Lizenzmodell, dass aber nur g?ltig ist, wenn Geb?hren des Endusers an anderer Stelle bereits bezahlt werden, wie z.B. bei den GEZ-Geb?hren.(ist aber nur f?r ?ffentlich rechtliche interessant):-) (there a differenet licensing model aswell but only available if the Enduser pays there Fee?s some where else like in german GEZ)

for me the stream.seek functionality doesent work for .mp4 files did someone tested yet? Yes, seek is one of the things that doesn't work yet.

Will I be able to multiplex H.264 video and AAC audio into the current FLV container format?

A: Adobe encourages customers to use the new MPEG-4-based file format. The new file format is designed to work with the features of these codecs.

from: http://labs.adobe.com/wiki/index.php/Flash_Player:9:Update:H.264#Q:_Will_I_be_able_to_multiplex_H.264_video_and_AAC_audio_into_the_current_FLV_container_format.3F

F.5. Someone already created a demo?

http://s1blue2.waltertak.com:15080/demos/

This demo is a simple AS3 Flash client playing a selection of FLV and H.264 content. The FLV content is to show the huge difference in quality.

Some H.264 content isn't played correct ; the playhead runs too fast resulting in fast-forwarding.

The large "720" and "1080" content requires upto 2 megabytes per second of bandwidth to be played smoothly.

Seeking through H.264 doesn't work yet (as of 2008/10/08) .

F.6. Some more Info about Seek and possible solutions

http://h264.code-shop.com/trac/wiki/FlashPlayer

Seek isn't working yet with H.264 content&nbsp; (as of 2008/10/08) .

F.7. Are audio files supported?

Yes, the following file types may be played:

  • AAC

  • M4A

  • F4A

They are delivered in the same manner as an MP3 file, but with a different reader.

F.8. How do I request an h264 file?

These request methods are supported:

  • mp4:myfile

  • mp4:myfile.f4v

  • mp4:myfile.mp4

  • mp4:myfile.mov

  • mp4:myfile.3gp

  • mp4:myfile.3g2

  • myfile.f4v

  • myfile.mp4

  • myfile.mov

  • myfile.3gp

  • myfile.3g2

F.9. Does red5 support h264 live streaming?

h.264 currently concerns only VOD. Paul: Right now, RTP/RTSP is not supported. When the MP4/h.264 features are complete, you will get RTP/RTSP for Free!

red5-1.0~svn4374.orig-doc/reference/html/configuration-files.html0000644000175000017500000007026611561764617024646 0ustar drazzibdrazzib Chapter 3. Configuration Files

Chapter 3. Configuration Files

3.1. Directory "conf"

3.1.1. jetty.xml

The settings of the HTTP server and servlet container are specified using this file. It runs on all available interfaces on port 5080 by default.

See the Jetty homepage http://jetty.mortbay.org/jetty6/ for further information about the syntax of this file.

3.1.2. keystore

Contains a sample private key and certificate to be used for secure connections.

3.1.3. log4j.properties

Controls the log levels and output handlers for the logging subsystem.

Further information about log4j can be found on the official homepage http://logging.apache.org/log4j/docs/.

3.1.4. realm.properties (Jetty)

This file defines users passwords and roles that can be used for protected areas.

The format is:


 <username>: <password>[,<rolename> ...] 

Passwords may be clear text, obfuscated or checksummed. The class "org.mortbay.util.Password" should be used to generate obfuscated passwords or password checksums

3.1.5. tomcat-users.xml (Tomcat)

This file defines users passwords and roles that can be used for protected areas.

The format is:


<user name="<username>" password="<password>" roles="[,<rolename> ...]" /> 

Passwords may be clear text, obfuscated or checksummed. For information on different digest support or available realm implementations use the how-to: http://tomcat.apache.org/tomcat-5.5-doc/realm-howto.html

Further information about tomcat realms can be found on the official homepage http://tomcat.apache.org/tomcat-5.5-doc/catalina/docs/api/org/apache/catalina/realm/package-summary.html

3.1.6. red5.globals

Specifies the path to the configuration file for the default global context to be used for Red5.

By default this file is located in "/webapps/red5-default.xml".

3.1.7. red5.properties

File containing key / value pairs to configure the host and port of basic services like RTMP or remoting.

3.1.8. red5.xml

The main configuration file that wires together the context tree. It takes care of loading "red5-common.xml" and "red5-core.xml" and sets up the rest of the server. This is the first file to be loaded by Red5. The J2EE container is selected in this configuration file by configuring one of the following bean elements.

  • Jetty



<bean id="jetty6.server" class="org.red5.server.JettyLoader" init-method="init" autowire="byType" />

  • Tomcat



<bean id="tomcat.server" class="org.red5.server.TomcatLoader" init-method="init" destroy-method="shutdown">
   ... cut for brevity ... 
</bean> 

3.1.9. red5-common.xml

Classes that are shared between all child contexts are declared in this file. It contains information about the object serializers / deserializers, the codecs to be used for the network protocols as well as the available video codecs. Configuration files used by Red5

The object (FLV) cache is configured / spring-wired in this file. Four implementations are currently available; The first one is our own creation (simple byte-buffers) and the others use WhirlyCache, or Ehcache. If no caching is desired then the NoCache implementation should be specified like so:



<bean id="object.cache" class="org.red5.server.cache.NoCacheImpl"/> 

The other bean configurations are as follows (Only one may be used at a time):

  • Red5 homegrown simple example



<bean id="object.cache" class="org.red5.server.cache.CacheImpl" init-method="init" autowire="byType">
   <property name="maxEntries"><value>5</value></property> 
</bean> 



         <bean id="object.cache" class="org.red5.server.cache.EhCacheImpl" init-method="init"> 
            <property name="diskStore" value="java.io.tmpdir" /> 
            <property name="memoryStoreEvictionPolicy" value="LFU" /> 
            <property name="cacheManagerEventListener"><null/></property>  
            <property name="cacheConfigs"> 
               <list> 
                  <bean class="net.sf.ehcache.config.CacheConfiguration"> 
                     <property name="name" value="flv.cache" /> 
                     <property name="maxElementsInMemory" value="5" /> 
                     <property name="eternal" value="false" /> 
                     <property name="timeToIdleSeconds" value="0" /> 
                     <property name="timeToLiveSeconds" value="0" /> 
                     <property name="overflowToDisk" value="false" /> 
                     <property name="diskPersistent" value="false" /> 
                  </bean>   
               </list> 
            </property> 
         </bean>  



<bean id="object.cache" class="org.red5.server.cache.WhirlyCacheImpl" init-method="init" autowire="b 
<property name="maxEntries" value="5" /> 
<property name="cacheConfig"> 
<bean class="com.whirlycott.cache.CacheConfiguration"> 
<property name="name" value="flv.cache" /> 
<property name="maxSize" value="5" /> 
<!-- This policy removes cached items, biased towards least frequently used (LFU) Items --> 
<property name="policy"><value>com.whirlycott.cache.policy.LFUMaintenancePolicy</value></property> 
<!-- This policy removes cached items, biased towards least recently used (LRU) Items --> 
<!-- property name="policy"><value>com.whirlycott.cache.policy.LRUMaintenancePolicy</value></propert 
<!-- This policy removes cache items in the order in which they were added -->
Configuration files used by Red5 
<!-- property name="policy"><value>com.whirlycott.cache.policy.FIFOMaintenancePolicy</value></proper 
<!-- A predicate for filtering Collections of Items based on their expiration time --> 
<!-- property name="policy"><value>com.whirlycott.cache.policy.ExpirationTimePredicate</value></prop 
<!-- property name="backend"><value>com.whirlycott.cache.impl.ConcurrentHashMapImpl</value></propert 
<property name="backend"><value>com.whirlycott.cache.impl.FastHashMapImpl</value></property> 
</bean>   

3.1.10. red5-core.xml

All available network services are specified here. By default these are RTMP and RTMPT. The actual settings for the RTMPT server can be found in "red5-rtmpt.xml" when using Jetty as the J2EE container. The RTMPT handler is selected by configuring one of the following bean elements.

  • Jetty



<bean id="rtmpt.server" class="org.red5.server.net.rtmpt.RTMPTLoader" init-method="init" autowire="bType"/>

  • Tomcat



<bean id="rtmpt.server" class="org.red5.server.net.rtmpt.TomcatRTMPTLoader" init-method="init" autowire="bType"> 
   ... cut for brevity ... 
</bean> 

3.1.11. red5-rtmpt.xml

Sets up the mapping between the RTMPT URLs and the servlets to use as well as specify the host and port to run on. By default the RTMPT server runs on all available interfaces on port 8088.

See the Jetty homepage http://jetty.mortbay.org/jetty6/ for further information about the syntax of this file.

3.1.12. web.xml (Tomcat)

Default web.xml file used by Tomcat. The settings from this file are applied to a web application before it's own WEB_INF/web.xml file. Further info about the configuration of this file may be found here: http://tomcat.apache.org/tomcat-5.5-doc/jasper-howto.html#Configuration

3.1.13. web-default.xml (Jetty)

Default web.xml file used by Jetty. The settings from this file are applied to a web application before it's own WEB_INF/web.xml file.

3.2. Webapp config directory

3.2.1. red5-web.xml

Red5 applications are configured within this file. The scripting implementations or Java applications are configured via Spring bean elements.

  • Java Application



<bean id="web.handler" class="org.red5.server.webapp.oflaDemo.Application" singleton="true" />  

  • Javascript / Rhino application



<bean id="web.handler" class="org.red5.server.script.rhino.RhinoScriptFactory"> 
   <constructor-arg index="0" value="classpath:applications/main.js"/> 
   <!-- Implemented interfaces --> 
   <constructor-arg index="1"> 
      <list> 
         <value>org.red5.server.api.IScopeHandler</value> 
         <value>org.red5.server.adapter.IApplication</value> 
      </list> 
   </constructor-arg> 
   <!-- Extended class --> 
   <constructor-arg index="2"> 
      <value>org.red5.server.adapter.ApplicationAdapter</value> 
   </constructor-arg> 
</bean> 

  • Ruby application



<bean id="web.handler" class="org.red5.server.script.jruby.JRubyScriptFactory"> 
   <constructor-arg index="0" value="classpath:applications/main.rb"/> 
   <constructor-arg index="1"> 
      <list> 
         <value>org.red5.server.api.IScopeHandler</value> 
         <value>org.red5.server.adapter.IApplication</value> 
      </list> 
   </constructor-arg> 
</bean> 

red5-1.0~svn4374.orig-doc/reference/html/html.css0000644000175000017500000001105311561341421021434 0ustar drazzibdrazzibbody { text-align: left; margin-right: 2em; margin-left: 2em; } a, a[accesskey^="h"], a[accesskey^="n"], a[accesskey^="u"], a[accesskey^="p"] { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 12px; color: #003399; } a:active { color: #003399; } a:visited { color: #888888; } p { font-family: Verdana, Arial, sans-serif; } dt { font-family: Verdana, Arial, sans-serif; font-size: 12px; } p, dl, dt, dd, blockquote { color: #000000; margin-bottom: 3px; margin-top: 3px; padding-top: 0; } ol, ul, p { margin-top: 6px; margin-bottom: 6px; } p, blockquote { font-size: 90%; } p.releaseinfo { font-size: 100%; font-weight: bold; font-family: Verdana, Arial, helvetica, sans-serif; padding-top: 10px; } p.pubdate { font-size: 120%; font-weight: bold; font-family: Verdana, Arial, helvetica, sans-serif; } td { font-size: 80%; } td, th, span { color: #000000; } td[width^="40%"] { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 12px; color: #003399; } table[summary^="Navigation header"] tbody tr th[colspan^="3"] { font-family: Verdana, Arial, helvetica, sans-serif; } blockquote { margin-right: 0; } h1, h2, h3, h4, h6 { color: #000000; font-weight: 500; margin-top: 0; padding-top: 14px; font-family: Verdana, Arial, helvetica, sans-serif; margin-bottom: 0; } h2.title { font-weight: 800; margin-bottom: 8px; } h2.subtitle { font-weight: 800; margin-bottom: 20px; } .firstname, .surname { font-size: 12px; font-family: Verdana, Arial, helvetica, sans-serif; } table { border-collapse: collapse; border-spacing: 0; border: 1px black; empty-cells: hide; margin: 10px 0 30px 50px; width: 90%; } div.table { margin: 30px 0 10px 0; border: 1px dashed gray; padding: 10px; } div .table-contents table { border: 1px solid black; } div.table > p.title { padding-left: 10px; } table[summary^="Navigation footer"] { border-collapse: collapse; border-spacing: 0; border: 1px black; empty-cells: hide; margin: 0px; width: 100%; } table.summary, table[summary^="Note"], table[summary^="Warning"], table[summary^="Tip"] { border-collapse: collapse; border-spacing: 0; border: 1px black; empty-cells: hide; margin: 10px 0px 10px -20px; width: 100%; } td { padding: 4pt; font-family: Verdana, Arial, helvetica, sans-serif; } div.warning TD { text-align: justify; } h1 { font-size: 150%; } h2 { font-size: 110%; } h3 { font-size: 100%; font-weight: bold; } h4 { font-size: 90%; font-weight: bold; } h5 { font-size: 90%; font-style: italic; } h6 { font-size: 100%; font-style: italic; } tt { font-size: 110%; font-family: "Courier New", Courier, monospace; color: #000000; } .navheader, .navfooter { border: none; } div.navfooter table { border-style: dashed; border-color: gray; border-width: 1px 1px 1px 1px; background-color: #cde48d; } pre, .literallayout, .programlisting { font-size: 110%; padding: 5px; border-style: solid; border-width: 1px; border-color: #CCCCCC; background-color: #f3f5e9; } ul, ol, li { list-style: disc; } hr { width: 100%; height: 1px; background-color: #CCCCCC; border-width: 0; padding: 0; } .variablelist { padding-top: 10px; padding-bottom: 10px; margin: 0; } .term { font-weight:bold; } .mediaobject { padding-top: 30px; padding-bottom: 30px; } .legalnotice { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 12px; font-style: italic; } .sidebar { float: right; margin: 10px 0 10px 30px; padding: 10px 20px 20px 20px; width: 33%; border: 1px solid black; background-color: #F4F4F4; font-size: 14px; } .property { font-family: "Courier New", Courier, monospace; } a code { font-family: Verdana, Arial, monospace; font-size: 12px; } td code { font-size: 110%; } div.note * td, div.tip * td, div.warning * td, div.calloutlist * td { text-align: justify; font-size: 100%; } .programlisting .interfacename, .programlisting .literal, .programlisting .classname { font-size: 95%; } .title .interfacename, .title .literal, .title .classname { font-size: 130%; } /* everything in a is displayed in a coloured, comment-like font */ .programlisting * .lineannotation, .programlisting * .lineannotation * { color: green; } .question * p { font-size: 100%; } .answer * p { font-size: 100%; } red5-1.0~svn4374.orig-doc/reference/html/libraries.html0000644000175000017500000001244711561764617022650 0ustar drazzibdrazzib Chapter 5. Red5 Libraries

Chapter 5. Red5 Libraries

5.2. Groovy

5.3. Beanshell

5.4. Ruby

5.5. Jython / Python

5.6. Java 5 Libraries

The following are need for Java 5 only:

5.7. Script related JSR's

  • jsr-223-1.0-pr.jar

  • jsr173_1.0_api.jar

5.8. Javascript / Rhino

red5-1.0~svn4374.orig-doc/reference/html/core-components.html0000644000175000017500000000767311561341421023774 0ustar drazzibdrazzib Part II. Red5 Core Components
red5-1.0~svn4374.orig-doc/reference/html/logging-setup.html0000644000175000017500000003703011561764617023453 0ustar drazzibdrazzib Chapter 10. Logging Setup

Chapter 10. Logging Setup

The logging system uses Simple Logging Facade for Java ( SLF4J). This framework supports many of the logging systems available for Java and also provides simple implementations. The logging used by our dependencies are mainly Log4j and Apache commons logging and SLF4J allows us to combine them into one system. SLF4J gives you the ability to select a logging implementation and provides proxies for you dependencies if their maintainers did not select the same framework.

We prefer the logback log implementation, but you may use whatever you like. There are some hoops you will have to jump through to get Log4j or Commons logging to work. Blog post about using other loggers here.

After you chose an implementation framework, some of the SLF4J jars must NOT be in your applications classpath or they will cause conflicts. The default case it to use Logback, so the following jars must be included:

  • slf4j-api - The core API

  • logback-core - Current Logback core library

  • logback-classic - Logback support library

  • log4j-over-slf4j - Log4j proxy/bridge

  • jcl-over-slf4j - Apache commons logging proxy/bridge

  • jul-to-slf4j - java.util.logging proxy/bridge

The items denoted as "proxy/bridge" listen for the logging calls to those implementations and pass them through to SLF4J.

The following two strategies are to be consider untested.

If you prefer to use Log4j instead, the following jars are required:

  • slf4j-api - The core API

  • log4j - Current Log4j library (1.2+)

  • slf4j-log4j12 - Log4j adapter

  • jcl-over-slf4j - Apache commons logging proxy/bridge

  • jul-to-slf4j - java.util.logging proxy/bridge

If you prefer to use Commons logging the following jars are required:

  • slf4j-api - The core API

  • commons-logging - Apache commons logging library

  • slf4j-jcl - Commons logging adapter

  • log4j-over-slf4j - Log4j proxy/bridge

  • jul-to-slf4j - java.util.logging proxy/bridge

If you want to use another implementation not shown here, simply check out the faq SLF4J FAQ

Logback is the successor of Log4j and was created by the creator of Log4j and SLF4J. A conversion tool has been created for your log4j properties files configuration converter There is also an eclipse console plugin eclipse console plugin.

10.1. Web applications

In your web applications remove the following entry from your web.xml



<context-param>
  <param-name>log4jConfigLocation</param-name>
  <param-value>/WEB-INF/log4j.properties</param-value>
</context-param>

Add the following to the web.xml



<listener>
    <listener-class>org.red5.logging.ContextLoggingListener</listener-class>
</listener>

<filter>
    <filter-name>LoggerContextFilter</filter-name>
    <filter-class>org.red5.logging.LoggerContextFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>LoggerContextFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

You should also:

  • Remove any "log4j" listeners from the web.xml

  • Remove any log4j.properties or log4j.xml files

  • Create a logback-myApp.xml where myApp is the name for your webapp and place it on your webapp classpath (WEB-INF/classes or in your application jar within WEB-INF/lib)

  • Set your display-name in the web application to match the context name you will be using (Use the example oflaDemo as a guide).

  • Ensure that the contextName and jmxConfigurator have the correct context name, this is the name of your web application

Sample webapp logback config file (logback-myApp.xml), not to be confused with the red5 log config file located in /conf



<xslthl:directive><?xml version="1.0" encoding="UTF-8"?></xslthl:directive>
<configuration>	
    <contextName>myApp</contextName>
    <jmxConfigurator contextName="myApp" />    

    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <File>example.log</File>
        <Append>false</Append>
        <BufferedIO>false</BufferedIO>
        <ImmediateFlush>true</ImmediateFlush>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</Pattern>
        </layout>
    </appender>
    <root>
        <level value="DEBUG" />
        <appender-ref ref="FILE" />
    </root>
    <logger name="com.example">
        <level value="DEBUG" />
    </logger>
</configuration>

Reminder replace everything that says "myApp" with your application name.

10.2. Imports

When using logback and slf4j, your imports should consist only of the following for a non webapp class:



import org.slf4j.LoggerFactory;
import org.slf4j.Logger;

It is suggested that you use Red5LoggerFactory in-place of LoggerFactory to ensure that your application gets the correct logger.

For loggers inside your webapp imports should be:



import org.slf4j.Logger;
import org.red5.logging.Red5LoggerFactory;

10.3. Logger Instantiation

For non webapp classes:

To log to a "root" logger, change all your logger instantiation statements to:



private static Logger log = Red5LoggerFactory.getLogger(MyClassName.class);

Reminder replace "MyClassName" with the name of the class itself.

To log to a "context" logger, change all your logger instantiation statements to:



private static Logger log = Red5LoggerFactory.getLogger(MyClassName.class, "myApp");

Reminder replace "myApp" with the name of the context; "myApp" would become "oflaDemo" for the oflaDemo application.

Your old instantiations probably resemble this:



private static Logger log = Logger.getLogger(MyClassName.class.getName());

Your applications logging configuration file must contain the name of your application context in its file name; For instance the "oflaDemo" uses the configuration logback-oflaDemo.xml.

Lastly, as an optimation change your log statements to:



log.debug("Here is a log message for an object {}", myobject);

You no longer need to concatenate strings when logging, if you need more than one variable do the following:



log.debug("Here is a log message with a couple vars {} or {} or {}", new Object[] {object1, myobject, object3});

= Further Information =

Ceki Gülcü presentation for Jazoon09

SLF4J Presentation (video)

red5-1.0~svn4374.orig-doc/reference/src/0000755000175000017500000000000011760512605017606 5ustar drazzibdrazzibred5-1.0~svn4374.orig-doc/reference/src/en-US/0000755000175000017500000000000011760512605020535 5ustar drazzibdrazzibred5-1.0~svn4374.orig-doc/reference/src/en-US/appendix/0000755000175000017500000000000011760512605022345 5ustar drazzibdrazzibred5-1.0~svn4374.orig-doc/reference/src/en-US/appendix/rtmp.xml0000644000175000017500000000202111561341421024037 0ustar drazzibdrazzib RTMP Specification http://osflash.org/documentation/rtmp http://wiki.gnashdev.org/RTMP http://wiki.gnashdev.org/RTMP_Messages_Decoded http://osflash.org/_media/rtmp_spec.jpg http://www.acmewebworks.com/Downloads/openCS/TheAMF.pdf red5-1.0~svn4374.orig-doc/reference/src/en-US/appendix/rtmpt.xml0000644000175000017500000001060011561341421024225 0ustar drazzibdrazzib RTMPT Specification This document describes the RTMPT tunneling protocol as implemented by the Red5 Open Source Flash Server. Please note that this document is _not_ an official specification by Macromedia but hopefully helps other people to write software that makes use of RTMPT. RTMPT basically is a HTTP wrapper around the RTMP protocol that is sent using POST requests from the client to the server. Because of the non-persistent nature of HTTP connections, RTMPT requires the clients to poll for updates periodically in order to get notified about events that are generated by the server or other clients. During the lifetime of a RTMPT session, four possible request types can be sent to the server which will be described below.
URLs The URL to be opened has the following form::
http://server/<comand>/[<client>/]<index>
<command>
denotes the RTMPT request type (see below)
<client>
specifies the id of the client that performs the requests (only sent for established sessions)
<index>
is a consecutive number that seems to be used to detect missing packages
Request / Response All HTTP requests share some common properties: They use HTTP 1.1 POST. The content type is application/x-fcs. The connection should be kept alive by the client and server to reduce
network overhead.
The HTTP responses also share some properties: The content type is application/x-fcs. For all established sessions the first byte of the response data controls
the polling interval of the client where higher values mean less polling requests.
Polling interval The server always starts with a value of 0x01 after data was returned and increases it after 10 emtpy replies. The maximum delay is 0x21 which causes a delay of approximately 0.5 seconds between two requests. Red5 currently increases the delay in the following steps: 0x01, 0x03, 0x05, 0x09, 0x11, 0x21.
Initial connect (command "open") This is the first request that is sent to the server in order to register a client on the server and start a new session. The server replies with a unique id (usually a number) that is used by the client for all future requests. Note: the reply doesn't contain a value for the polling interval! A successful connect resets the consecutive index that is used in the URLs.
Client updates (command "send") The data a client would send to the server using RTMP is simply prefixed with a HTTP header and otherwise sent unmodified. The server responds with a HTTP response containing one byte controlling the polling interval and the RTMP data if available.
Polling requests (command "idle") If the client doesn't have more data to send to the server, he has to poll for updates to receive streaming data or events like shared objects.
Disconnect of a session (command "close") If a client wants to terminate his connection, he sends the "close" command which is replied with a 0x00 by the server.
red5-1.0~svn4374.orig-doc/reference/src/en-US/appendix/amf.xml0000644000175000017500000000145411561341421023631 0ustar drazzibdrazzib AMF Specification
AMF0 Specification http://download.macromedia.com/pub/labs/amf/amf0_spec_121207.pdf
AMF3 Specification http://download.macromedia.com/pub/labs/amf/amf3_spec_121207.pdf http://osflash.org/documentation/amf3
red5-1.0~svn4374.orig-doc/reference/src/en-US/appendix/data_mappings.xml0000644000175000017500000000540511561341421025675 0ustar drazzibdrazzib Data Type Mappings Flash to Java Data Mappings Number any of the Java numeric types int/uint * any of the non-floating point Java numeric types String String Boolean Boolean/boolean Array List Object org.red5.io.utils.ObjectMap Date java.util.Date XML org.w3c.dom.Document ByteArray * org.red5.io.amf3.ByteArray IExternalizable * org.red5.io.amf3.IExternalizable ArrayCollection * org.red5.compatibility.flex.messaging.io.ArrayCollection ObjectProxy * org.red5.compatibility.flex.messaging.io.ObjectProxy null null custom class ** custom class
Please note that Red5 performs automatic parameter conversion, e.g. if you pass a number to a method that takes a String as parameter, it is automatically converted. * - Only available in Flash Player 9 or newer (AMF3) ** - You can map the class to serialize to in Red5 by adding
red5-1.0~svn4374.orig-doc/reference/src/en-US/appendix/codecs/0000755000175000017500000000000011760512605023605 5ustar drazzibdrazzibred5-1.0~svn4374.orig-doc/reference/src/en-US/appendix/codecs/flv.xml0000644000175000017500000000073311561341421025114 0ustar drazzibdrazzib FLV http://osflash.org/flv http://www.adobe.com/devnet/flv/pdf/video_file_format_spec_v9.pdf red5-1.0~svn4374.orig-doc/reference/src/en-US/appendix/codecs/speex.xml0000644000175000017500000001042711561341421025452 0ustar drazzibdrazzib Speex Codec Speex is a new voice codec supported in Flash Player 10 and above. With the new release of flash player 10 this document explains a little about the new codec with this release.
Setting Up Flex SDk / Flex Builder Flex SDK / Flex Builder needs to be setup to target flash player 10 playerglobal.swc which has the new features enabled. Taken from the Adobe Open Source area http://opensource.adobe.com/wiki/display/flexsdk/Targeting+Flash+Player+10+Beta
Get Flex 3 SDK Download Flex SDK 3.0.3 or above. In Flex 3 extract into the sdks directory. Make sure that you have a Flash 10 playerglobal.swc at FLEX_SDK/frameworks/libs/player/10/playerglobal.swc.
Config Flex Config To Target Flash Player 10 Modify FLEX_SDK/frameworks/flex-config.xml. Edit <target-player>, replacing 9.0.115 with 10.0.0:
{{{ <target-player>10.0.0</target-player> }}}
In <external-library-path>, edit the path-element for playerglobal.swc, replacing 9 with 10:
{{{ <external-library-path> <path-element>libs/player/10/playerglobal.swc</path-element> </external-library-path> }}}
Do the same with <library-path:
{{{ <library-path> <path-element>libs</path-element> <path-element>libs/player/10</path-element> <path-element>locale/{locale}</path-element> </library-path> }}}
In flex builder, right click the project and choose properties, choose Flex Compiler, choose the "Configure Flex SDKs" link on the right, choose add then choose the location of the newly downloaded SDK and give it a name. Back in the Flex Compiler config choose "Use a specific SDK and select in the list the Flex SDK configured previously.
Code Example Setup the Microphone class to use the new Speex Codec. _microphone = Microphone.getMicrophone(); if (_microphone) { //_microphone.setLoopBack(true); _microphone.codec = SoundCodec.SPEEX; _microphone.encodeQuality = 10; _microphone.rate = 44; _microphone.framesPerPacket = 2; _microphone.gain = 50; _microphone.setUseEchoSuppression(true); ns.attachAudio(_microphone); } else { throw new Error("Audio Not Connected"); }
FFMpeg and Speex According to Art Clarke subversion revision r15028 of the FFMpeg source code has the capabilities of decoding the Speex codec from FLV files.
Links * http://www.speex.org/ * http://help.adobe.com/en_US/AS3LCR/Flash_10.0/flash/media/SoundCodec.html * http://help.adobe.com/en_US/AS3LCR/Flash_10.0/flash/media/Microphone.html
red5-1.0~svn4374.orig-doc/reference/src/en-US/appendix/codecs/h264.xml0000644000175000017500000002115311561341421025007 0ustar drazzibdrazzib H264 This Section contains some of the answers from the mailing list about h.264. Please read this first before sending another question to the mailing list. Paul Gregoire Posted initial Support in his Blog 6. October 2008 18:34: Steven and I got h264 working ! http://gregoire.org/2008/10/06/red5-h264/ Questions:
Does Red5 plan to support H.264/ACC streams in the next release, maybe 0.7.1? You can check out Paul's mp4/f4v branch here: http://red5.googlecode.com/svn/java/server/branches/paulg_mp4/ and according to the plan it should be part of the 0.7.1 release - afaik. And I'll let Paul speak for himself :-) http://osflash.org/pipermail/red5_osflash.org/2008-January/018483.html Paul:I feel like I'm done it myself a million times :-) I'm currently active in the mp4 / h.264 branch and I would love to have it be part of the 0.7.1 release. The problem for me is that I'm not sure when I will be done and I would like to 0.7.1 go live very soon; it is more likely that 0.7.2 will include the release of h.264. In actuality it is now scheduled for the 0.9.0 release but it may make it into 0.8.0. The 0.7.1 version will not be released - Paul
why are .mp4 files also listed in oflaDemo webapp grid as possible streams? The "correct" extension in Adobe's case is F4V for Mpeg4 / h.264 encoded content. If you want a video that works, use the sample that comes with FMS3: AdobeBand_1500K_H264.mp4 Like I stated in my email/post, I have clean-up to do in addition to making the video config packet dynamic (the one that contains the decoder settings). If you specify the flv extension that is what you will get, it will not include h264 content. FLV is expected to be any of the following video codecs: vp6, screenvideo, or h263. The audio will also not support AAC / MP4A for the flv extension. The f4v, mp4, and mov extensions will be provided by the MP4Reader class. The f4v file may contain avc1, vp6e, h264, mp4 for video and aac, mp4a, mp3, pcm for audio (there may be more but thats what I recall). Along side the MP4Reader is an audio only reader for AAC/MP4A files in the same style as the MP3Reader; it will be released at the same time and is for audio only files.
howto convert to h.264 using ffmpeg? Here is a ffmpeg encoding line to provide mp4 with h264 codec readable with flash player 9 , FLVTOOL useless. options="-vcodec libx264 -b 512k -bf 3 -subq 6 -cmp 256 -refs 5 -qmin 10 \ -qmax 51 -qdiff 4 -coder 1 -loop 1 -me hex -me_range 16 -trellis 1 \ -flags +mv4 -flags2 +bpyramid+wpred+mixed_refs+brdo+8x8dct \ -partitions parti4x4+parti8x8+partp4x4+partp8x8+partb8x8 -g 250 \ -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71" ffmpeg -y -i "$X" -an -pass 1 -threads 2 $options "$tmpfile" ffmpeg -y -i "$X" -acodec libfaac -ar 44100 -ab 96k -pass 2 \ -threads 2 $options "$tmpfile" qt-faststart "$tmpfile" "$outfile"
Does anyone have a link to an explaination of h264 licensing? http://www.mpegla.com/avc/avc-licensees.cfm http://www.flashmediaserver-blog.de/2008/05/21/54/ (skip the german text of the top) the list (in short ) from their: H264 /commercial if a Enduser chooses to pay title-by-title o no fee for videos shorter then 12 minutes o else the lower of: 0,02 US$ per Titel or 2% of the Price that the Enduser pays if the Enduser pays within Subscription contract: o < 100.000 Subscribers per year --> no Fee o 100.000 - 250.000 Subscribers per Y --> 25.000 US$/Yr o 250.000 - 500.000 Subscribers per Y --> 50.000 US$/Y o etc. this might be interesting for germans (we as only folk on the world have a fee for free televeision called GEZ):
dann gibt es noch ein weiteres Lizenzmodell, dass aber nur g?ltig ist, wenn Geb?hren des Endusers an anderer Stelle bereits bezahlt werden, wie z.B. bei den GEZ-Geb?hren.(ist aber nur f?r ?ffentlich rechtliche interessant):-) (there a differenet licensing model aswell but only available if the Enduser pays there Fee?s some where else like in german GEZ)
for me the stream.seek functionality doesent work for .mp4 files did someone tested yet? Yes, seek is one of the things that doesn't work yet. Will I be able to multiplex H.264 video and AAC audio into the current FLV container format? A: Adobe encourages customers to use the new MPEG-4-based file format. The new file format is designed to work with the features of these codecs. from: http://labs.adobe.com/wiki/index.php/Flash_Player:9:Update:H.264#Q:_Will_I_be_able_to_multiplex_H.264_video_and_AAC_audio_into_the_current_FLV_container_format.3F
Someone already created a demo? http://s1blue2.waltertak.com:15080/demos/ This demo is a simple AS3 Flash client playing a selection of FLV and H.264 content. The FLV content is to show the huge difference in quality. Some H.264 content isn't played correct ; the playhead runs too fast resulting in fast-forwarding. The large "720" and "1080" content requires upto 2 megabytes per second of bandwidth to be played smoothly. Seeking through H.264 doesn't work yet (as of 2008/10/08) .
Some more Info about Seek and possible solutions http://h264.code-shop.com/trac/wiki/FlashPlayer Seek isn't working yet with H.264 content&nbsp; (as of 2008/10/08) .
Are audio files supported? Yes, the following file types may be played: AAC M4A F4A They are delivered in the same manner as an MP3 file, but with a different reader.
How do I request an h264 file? These request methods are supported: mp4:myfile mp4:myfile.f4v mp4:myfile.mp4 mp4:myfile.mov mp4:myfile.3gp mp4:myfile.3g2 myfile.f4v myfile.mp4 myfile.mov myfile.3gp myfile.3g2
Does red5 support h264 live streaming? h.264 currently concerns only VOD. Paul: Right now, RTP/RTSP is not supported. When the MP4/h.264 features are complete, you will get RTP/RTSP for Free!
Links http://today.java.net/pub/a/today/2006/08/22/experiments-in-streaming-java-me.html http://rtspproxy.berlios.de/
red5-1.0~svn4374.orig-doc/reference/src/en-US/book_info.xml0000644000175000017500000000204711561341421023222 0ustar drazzibdrazzib Red5 - Reference Documentation Red5 Open Source Flash Server 0.8 0.8 1 Red5 Open Source Flash Server 1 Red5 Open Source Flash Server red5-1.0~svn4374.orig-doc/reference/src/en-US/core_components.xml0000644000175000017500000000435111561341421024452 0ustar drazzibdrazzib Red5 Core Components Core components available in Red5. red5-1.0~svn4374.orig-doc/reference/src/en-US/core/0000755000175000017500000000000011760512605021465 5ustar drazzibdrazzibred5-1.0~svn4374.orig-doc/reference/src/en-US/core/clustering.xml0000644000175000017500000000571711561341421024373 0ustar drazzibdrazzib Clustering In Red5 0.7 the Ant build.xml file contains a build target that creates a 'cluster' folder containing the same setup as described below. Use 'ant dist-cluster' to create the Red5 clustering setup. Limitations As of now, the current trunk only supports the clustering configuration for multiple Edges with one Origin. The Edge server only accepts RTMP connection.
Server Configuration
Configuration Files There are several configuration files added to support Edge/Origin configuration. red5-edge.xml, red5-edge-core.xml - used for edge spring bean configuration. They are under conf/. red5-origin.xml, red5-origin-core.xml - used for origin spring bean configuration. They are under conf/.
Configure Edge Server You don't need to deploy your application on Edges. We strongly recommend you to deploy Edge on a different server from Origin. But it should be OK to deploy the Edge on the same server as Origin.
Edge on a different Server from Origin Update the configuration of bean "mrtmpClient" in red5-edge-core.xml to point to Origin server: ]]> Replace red5.xml with red5-edge.xml. Start the server by $ ./red5.sh or $ java -jar red5.jar
Edge on the same Server as Origin You don't need to change red5.xml. Copy red5-edge.xml to $(RED5_ROOT) from $(RED5_ROOT)/conf. Start the server by $ java -jar red5.jar red5-edge.xml or update red5.sh to add a parameter "red5-edge.xml", then $ ./red5.sh
Configure Origin Server Deploy your application to webapps/. Make sure your 9035 port is not blocked by firewall. The port will be used by Edges to connection Origin. Update red5.xml with red5-origin.xml. Start the server by $ ./red5.sh or $ java -jar red5.jar
Use Your Appliation Your RTMP can go through Edges now. Your RTMPT and HTTP can go through Origin as normal.
red5-1.0~svn4374.orig-doc/reference/src/en-US/core/logging_setup.xml0000644000175000017500000002227511561341421025060 0ustar drazzibdrazzib Logging Setup The logging system uses Simple Logging Facade for Java ( SLF4J). This framework supports many of the logging systems available for Java and also provides simple implementations. The logging used by our dependencies are mainly Log4j and Apache commons logging and SLF4J allows us to combine them into one system. SLF4J gives you the ability to select a logging implementation and provides proxies for you dependencies if their maintainers did not select the same framework. We prefer the logback log implementation, but you may use whatever you like. There are some hoops you will have to jump through to get Log4j or Commons logging to work. Blog post about using other loggers here. After you chose an implementation framework, some of the SLF4J jars must NOT be in your applications classpath or they will cause conflicts. The default case it to use Logback, so the following jars must be included: slf4j-api - The core API logback-core - Current Logback core library logback-classic - Logback support library log4j-over-slf4j - Log4j proxy/bridge jcl-over-slf4j - Apache commons logging proxy/bridge jul-to-slf4j - java.util.logging proxy/bridge The items denoted as "proxy/bridge" listen for the logging calls to those implementations and pass them through to SLF4J. The following two strategies are to be consider untested. If you prefer to use Log4j instead, the following jars are required: slf4j-api - The core API log4j - Current Log4j library (1.2+) slf4j-log4j12 - Log4j adapter jcl-over-slf4j - Apache commons logging proxy/bridge jul-to-slf4j - java.util.logging proxy/bridge If you prefer to use Commons logging the following jars are required: slf4j-api - The core API commons-logging - Apache commons logging library slf4j-jcl - Commons logging adapter log4j-over-slf4j - Log4j proxy/bridge jul-to-slf4j - java.util.logging proxy/bridge If you want to use another implementation not shown here, simply check out the faq SLF4J FAQ Logback is the successor of Log4j and was created by the creator of Log4j and SLF4J. A conversion tool has been created for your log4j properties files configuration converter There is also an eclipse console plugin eclipse console plugin.
Web applications In your web applications remove the following entry from your web.xml log4jConfigLocation /WEB-INF/log4j.properties ]]> Add the following to the web.xml org.red5.logging.ContextLoggingListener LoggerContextFilter org.red5.logging.LoggerContextFilter LoggerContextFilter /* ]]> You should also: Remove any "log4j" listeners from the web.xml Remove any log4j.properties or log4j.xml files Create a logback-myApp.xml where myApp is the name for your webapp and place it on your webapp classpath (WEB-INF/classes or in your application jar within WEB-INF/lib) Set your display-name in the web application to match the context name you will be using (Use the example oflaDemo as a guide). Ensure that the contextName and jmxConfigurator have the correct context name, this is the name of your web application Sample webapp logback config file (logback-myApp.xml), not to be confused with the red5 log config file located in /conf myApp example.log false false true %-4relative [%thread] %-5level %logger{35} - %msg%n ]]> Reminder replace everything that says "myApp" with your application name.
Imports When using logback and slf4j, your imports should consist only of the following for a non webapp class: It is suggested that you use Red5LoggerFactory in-place of LoggerFactory to ensure that your application gets the correct logger. For loggers inside your webapp imports should be:
Logger Instantiation For non webapp classes: To log to a "root" logger, change all your logger instantiation statements to: Reminder replace "MyClassName" with the name of the class itself. To log to a "context" logger, change all your logger instantiation statements to: Reminder replace "myApp" with the name of the context; "myApp" would become "oflaDemo" for the oflaDemo application. Your old instantiations probably resemble this: Your applications logging configuration file must contain the name of your application context in its file name; For instance the "oflaDemo" uses the configuration logback-oflaDemo.xml. Lastly, as an optimation change your log statements to: You no longer need to concatenate strings when logging, if you need more than one variable do the following: = Further Information = Ceki Gülcü presentation for Jazoon09 SLF4J Presentation (video)
red5-1.0~svn4374.orig-doc/reference/src/en-US/core/bandwidth_limiting.xml0000644000175000017500000000036111561341421026042 0ustar drazzibdrazzib Bandwidth Limiting red5-1.0~svn4374.orig-doc/reference/src/en-US/core/testing.xml0000644000175000017500000006657311561341421023700 0ustar drazzibdrazzib Testing Red5
Overview As of version 0.8, the Red5 Testing framework has been modified and updated. The unit-tests have been updated to pass, and a automated system-testing and continuous integration framework has been added. This document attempts to explain the thoughts and architecture involved so as to facilitate review by the Red5 core team.
How to Start Testing Without Reading This Chapter To see the results of the Red5 continuous build server (this URL may change), go to http://build.theyard.net/. The build server runs after every check-in, as well as every night. We test against JDK5 and JDK6. To run all the Red5 unit tests yourself, check out the Red5 tree, and run: $ ant run-tests To see the results, open this file in a browser doc/test/index.html To run all the Red5 system tests, make sure you don't already have red5 running then in one terminal type: $ ant run-tests-server Then open this file in a browser.&nbsp; When the security dialog comes up, give it access to your camera, and select the box to remember the setting (if you want it to auto-run in the future): test/fixtures/red5-selftest.swf You can find all log files generate by the red5 test server in: bin/testcases/testreports/dist/log You can find the documentation for what the system tests do here (and can add to it by just putting ASDoc style comments in any System tests you add): Current Flash System Tests And that's it.
Who Should Read This Chapter In Depth? This chapter is targeted at people who are: Modifying Red5 code directly and want to make sure their code works. Interested in how Red5 is working to improve quality, and has some experience with software testing. People who have found a bug in Red5, and want to submit a patch with a Unit Test or System Test that will catch regressions. Goblins.
Red5 Testing Strategy The Red5 Testing Strategy has 5 components to it: \# Type Description 1 Code Write great code; we've done this from day one and see no reason to stop now. 2 Unit Tests 3 Functional Tests Write functional tests to simulate network interactions This is not yet implemented. We plan to do this in the future using RTMPClient, but any help the community can give here is appreciated. || 4 System Tests Use flash-based system-tests (using AsUnit) that make sure end-to-end interaction with Adobe's flash player works as expected. For example, we test that we can connect from Flash via RTMP, we can play back pre-recorded FLV files, and we can publish from a Camera. 5 Continuous Building Build and run all tests every time someone checks in to make sure all tests still pass. Currently the continuous server can be found here (but it will move): http://build.theyard.net/
Red5 Testing Props Major props go to the following folks: The red5 development team because, well, test frameworks don't mean shit if you don't got good stuff to test. Thijs, who set up the initial Red5 build server, and showed me how to get get Apache and Tomcat working nicely together.
Unit Testing
Purpose The purpose of a unit test is to make sure a java object operates according to its specification, regardless of how it is plugged in with other objects. For a good overview of check out this Wikipedia Unit Testing web page. For example, you can (and we do) have Unit Tests that test we're encoding and decoding data from AMF codec's correctly using Mock Objects, that test whether or not we can load information from Spring, and whether or not we can inject Meta Data into FLV viles correctly.
Technology Red5 uses the JUnit unit testing framework. If you're not familiar with that suite, please check it out. It is the de-facto standard for Java Unit Testing.
Running Tests To run tests, checkout the latest server build, and run the following ant command: $ ant run-tests To see the results, you can open the doc/test/index.html file once the tests are finished. firefox doc/test/index.html
Creating New Tests Writing unit tests in the JUnit framework is beyond the scope of this document, but you can find help at the JUnit site. The Red5 unit test framework support JUnit 4.0, but can run JUnit 3.x-style tests as well. To create a new unit test, just create a new JUnitclass source file to the right path under test, and end the source filename with the string "Test.java". For example, to test org.red5.server.api.ANewClass, you would create the following java file under the "test" directory: test/org/red5/server/api/ANewClassTest.java Once you do that, the compile process should pick up your new file and run the tests automatically.&nbsp; By default, the run-tests runs all unit tests in the following directory: bin/testcases/testreports
Running unit tests from eclipse In theory every should work, but you may need to set the directory eclipse runs the test from. Make sure it is set to: bin/testcases/testreports
Guidelines for New Unit Tests Unit tests help make the code base stronger, but that said we do need to make sure that unit tests meet certain guidelines so we can have a useful build process. Those guidelines are: Unit Tests MUST be self-contained (i.e. each test should run independently). Unit Tests MUST not require a Red5 server to be running. Unit Tests MAY assume that no Red5 instance is currently running while they run (and so may fire up Red5 objects that bind to ports if appropriate). Unit Tests MUST NOT require thread-timing specific to your machine to run (or fail) consistently. Unit Tests MUST run successfully 100% in order to be checked in. That means, no checking in tests that fail with "not implemented". Unit Tests SHOULD try to avoid introducing new dependencies, but if you must use one (for example http://multithreadedtc.googlecode.com/ can be useful), identify it when you submit a JUnit test case and we'll review whether or not to add to the ivy test dependencies. Unit Tests MUST document what they do, and how to tell if they really worked, in JavaDoc comments above each test method. Unit Tests SHOULD be written using JUnit 4.x annotations
Submitting New Unit Tests We really want new Unit Tests, so if you have a Unit Test that meets the above guidelines we'd love to consider it. To submit it, do the following: Review the guidelines above. Really. If you're fixing a bug: Create a unit test and make sure it fails 100% of the time before you fix the bug. Fix the bug. Ensure that unit test succeeds 100% of the time after you fix the bug. If you're testing a new feature: Write your new feature. Create a diff file with your patch using "svn diff" from tip of tree. Ensure that unit test succeeds 100% of the time after you fix the bug. File a new issue in Trac in the "Developer Tools" section. Please attach the diff files and the contents of any new files, and specify the following: What the test tests. Brief overview of how it works. Someone (probably Art) will review it and get back to you on changes that may be needed, or will commit it.
Suggesting New Unit Tests We really do want new unit tests, and would love suggestions. But bear in mind that Red5 is a 100% volunteer project and most people who work on it have full time day jobs (their time spent on red5 is a labor of love). So don't be hurt if your suggestion for a test is not picked up on. That said, a great way to suggest an area to test is to go ahead and write the system test yourself\! Send it to the list, and it'll probably get a warm reception.
Integration Testing We currently don't have a integration testing framework, but when I next return to this area, I'll try adding one. The basic idea for this (which I love) is to make a framework based on the RTMPClient.
Purpose The purpose of integration testing is to start to plug together different simpler modules (that hopefully have been unit tested) to see if they play nice together. See this Integration Testing Wikipedia Pagefor an overview of the concepts.
System Testing
Purpose When all is set and done, and you've Unit tested everything, and did integration testing by mixing together different components, you're still not done. At some point, a user is going to pick up your application, and start using it. And if you haven't tested from that end to your code and back, well chances are something will break. That's where System Testing comes in. In the System Test we try to do some basic end-to-end tests to see if our code performs as expected from the end-user's perspective.
Technology For Flash system testing (a.k.a selftest), we use the ASUnit|http://asunit.org/ framework, which is very similar to JUnit. You can find the current Flash self test here. We also use The Yard Flash Libraries to abstract away some components of Flash connecting and stream playing, but you're not required to use those libraries if you submit new flash unit tests.
Running Tests The Red5 system tests require a special test server to be running. This is just a mostly empty red5 server with one special application installed: http://localhost/selftest That selftest Red5 application has the following service exposed under the name "echo": red5.server.services.IEchoService.java: [http://code.google.com/p/red5/source/browse/java/server/trunk/test/org/red5/server/service/IEchoService.java] Every method on that Java Interface is callable from Flash by using the prefix "echo.".&nbsp; For example, "echo.echoNumber" will call the echoNumber method over RTMP/AMF.&nbsp; There are two ways to run the system test: Attended - Run a Test Server $ ant run-tests-server Start up the Flash Self Test application flashplayer tests/fixtures/red5-selftest.swf This method assumes someone is watching the test. Unattended - $ ant run-tests-systemtest This only works on Linux. It starts up a red5 server, runs the system test in the background, and then collects all log artifacts in the directory "output" relative to the current directory. It will also take snapshop pictures of the desktop as running if ImageMagick's import tool is installed. || System tests run the server with RED5_HOME set to bin/testcases/testreports/dist, and runs the flash clients from the directory bin/testcases/testreports/fixtures. Lastly, you should ensure red5 is not currently running on the server you run a system test on. However, because the system tests use their own version of Red5, you don't need to worry about them clobbering anything in your own Red5 installation. The System Tests use a series of scripts located in: test/scripts to automatically start-up and shutdown red5, as well as find the necessary flash logs from different parts of the system. The main one of interest is: test/scripts/red5-flash-player-headless It assumes it's running under a Windowing system (e.g. XWindows) with a Bourne Shell, and then starts a clean red5 server, runs the Flash system tests, and cleans up afterwards.
Creating New Tests Writing unit tests in theAsUnit framework is beyond the scope of this document, but you can find help at the AsUnit site. But to create a new system test, you can start with the Flash selftest application:svn checkout http://red5.googlecode.com/svn/flash/trunk/selftest red5_selftestTo create a new AsUnit test just create a newclass source file to the right path under test, and end the source filename with the string "Test.as". For example: test/org/red5/server/decodingComplexObjectOverAMFTest3.as Once you do that, you'll need to modify the AllTests.as file in the directory to add your new test. We use The Yard flash libraries|http://code.google.com/p/theyard/ to abstract away some of the complexities of connecting to and manipulating NetConnection and NetStream objects. See the Yard flash library documentation. You don't have to use them for new tests, but they can make things a lot easier (for example, by taking care of connecting for you). To see documentation of existing tests, run: ant doc
A Sample System Test Here's a very straightforward System Test submitted by trebor (at) vlideshow.com. This test connects to the test server and calls the "echo.echoString" method to pass a String to Red5, and then make sure we get the same array back.&nbsp; It tests both AMF0 and AMF3 using the same code path because they should be the same. EchoStringTest.as: AMF0 and AMF3 Strings sent over RTMP Test [http://code.google.com/p/red5/source/browse/flash/trunk/selftest/test/src/org/red5/server/io/EchoStringTest.as]
Guidelines for New System Tests Unfortunately Flash ActionScript is not as forgiving as Java is about cleaning up after a test is finished, so the guidelines for writing System Tests are somewhat more involved.&nbsp; Also, these tests MUST be runnable in a "unattended" mode \-\- meaning requiring no human interaction, to the bar is higher. System Tests MUST not require any human interaction \-\- i.e. if a human can't give permission for something, it should fail without blocking. System Tests MAY draw on the flash screen but MUST remove any artifacts when done System Tests MUST be self-contained (i.e. each test should run independently). System Tests MAY assume that a Red5 instance is running on localhost, on port 1935, and that the selftest application is available. System Tests MAY assume that the selftest application has the Echo service installed. System Tests MUST clean up fully after themselves. That is, they must disconnect and remove any event handlers.. System Tests MUST run successfully 100% in order to be checked in. That means, no checking in tests that fail with "not implemented". System Tests SHOULD try to avoid introducing new dependencies, but if you must use one (for example http://theyard.googlecode.com/ can be useful), identify it when you submit a test case and we'll review whether or not to add to the ivy test dependencies. System Tests MUST document what they do, and how to tell if they really worked, in AsDoc comments above each test method.
Submitting New System Tests We really want new System Tests, so if you have a System Test that meets the above guidelines we'd love to consider it. To submit it, do the following: Review the guidelines above. Really. If you're fixing a bug: ** Create a system test and make sure it fails 100% of the time before you fix the bug. ** Fix the bug, and run a new test server. ** Ensure that unit test succeeds 100% of the time after you fix the bug. If you're testing a new feature: ** Write your new feature. ** Create a unit test and make it it succeeds 100% of the time with the new feature. Create a diff file with your patch using "svn diff" from tip of tree. File a new issue in Trac in the "Developer Tools" section. Please attach the diff files and the contents of any new files, and specify the following: ** What the test tests ** Brief overview of how it works Someone (probably Art) will review it and get back to you on changes that may be needed, or will commit it. If your change is accepted, we'll integrate it into the Flash self-test, and update the Java Server trunk to use the new Flash selftest as our system test.
Suggesting New System Tests We really do want new tests, and would love suggestions. But bear in mind that Red5 is a 100% volunteer project and most people who work on it have full time day jobs (their time spent on red5 is a labor of love). So don't be hurt if your suggestion for a test is not picked up on. That said, a great way to suggest an area to test is to go ahead and write the system test yourself\! Send it to the list, and it'll probably get a warm reception.
Continuous Integration
Overview The last step of our testing framework is to run a continuous build. See this Wikipedia Pagefor some of the principles involved. The basic idea is to do a checkout, run all unit, functional and system tests, and then notify the person who checked in, and any others that are interested, about the current state of the build. The idea is that it is easier to fix bugs when they are introduced, than if they are found days or weeks later.
Technology We use Hudson as our continuous build server running inside a Tomcat instance (running as the Hudson, not root, user) that is forwarded to by Apache2. This currently runs on an Amazon EC2 small instance hosted at: [http://build.theyard.net/] E-Mail notification of bad builds are sent to the last person who checked in, and to the red5-builds (at) googlecode.com group. We run the following builds continuously: We build the java/server/trunk against JDK 1.6 on Linux i386 (Ubuntu) and run all units tests If this is successful, we run all system tests under JDK 1.6 on Linux i386 (Ubuntu) . We build the java/server/trunk against JDK 1.5 on Linux i386 (Ubuntu) and run all unit tests. If this is successful, we run all system tests under JDK 1.5 on Linux i386 (Ubuntu) .
How To Run The Continuous Build The Continuous Build server will run any time you check something into the Java Server. It also runs once every night. If you're on the Red5 dev team and want to set up new job, or log-in to hudson directly, talk to Art Clarke and he'll hook you up.
How to Submit New Jobs for Continuous Building For now, send a request to red5devs@osflash.org and we'll evaluate it.
How you can help with Continuous Building If you're willing do donate a i386 Amazon EC2 instance or an i86_64 Amazon EC2 instance, we're in need of both to do testing on. The current set up is temporary.
How to Set up a Continuous Build Server NOTE: THIS SECTION IS MEANT FOR SERIOUSLY ADVANCED RED5 USERS. 99.999999% of people shouldn't even read this. Glad you asked. We used an Amazon EC2 instance to get us started. Specifically this AMI from Eric Hammon at alestic.com. We then created a script that makes that image into one that can run Red5's continuous build server. See: http://red5.googlecode.com/svn/build/remote/trunk/ec2/ To set up an AWS EC2 instance to build and auto-test red5, do the following: Learn how to use Amazon EC2. Start up an instance of Ubuntu 8.04 LTS Hardy: ami-1cd73375 Check out the Red5 remote build branch: $ svn checkout http://red5.googlecode.com/build/remote/trunk/ Copy the ec2/ec2-explode directory to your new Amazon EC2 instance: cd ec2/ec2-explode ./ec2-implode ../ec2.tgz scp -i YOUR_AWS_KEYPAIR root@YOUR_AWS_PUBLIC_IP:/tmp Log into your AWS EC2 instance: $ ssh -i YOUR_AWS_KEYPAIR -l root YOUR_AWS_PUBLIC_IP Prepare your ec2-explode package: cd tmp tar xzvf ec2.tgz Run the ec2-explode script: ./ec2-explode You will have to accept the Sun JDK license, choose a password for your XAuthority file (don't worry \-\- the X ports aren't opened, you just need that to run a headless X Server to make the Flash System Tests run), and enter the data necessary to send mail from your machine. You'll need to patch up your Apache 2 files to reflect your domain name: rename /etc/apache2/sites-enabled/build.theyard.net /etc/apache2/sites-enabled/YOUR-APACHE-SITE vi /etc/apache2/sites-enabled/YOUR-APACHE-SITE service apache2 restart Go to your website and make sure hudson is running: http://YOUR-AWS-PUBLIC-IP/ It's probably a good idea to change the default "hudson" password as well. It defaults to: 10. fmskiller This is the password for the Hudson UI, not the password on the hudson linux account. By default the linux hudson account doesn't allow log in using passwords.
red5-1.0~svn4374.orig-doc/reference/src/en-US/core/demo_applications.xml0000644000175000017500000003570011561341421025701 0ustar drazzibdrazzib Red5 Demo Applications The Red5 demo applications are available for downloaded on demand using the installer application located at http://localhost:5080/installer.
Getting Red5 Demo Applications Server-Side and Client-Side Source With your favourite SVN client check out the source code from svn at this address http://red5.googlecode.com/svn/java/example/trunk/ or https://red5.googlecode.com/svn/java/example/trunk/ if you have a google code login. With your favourite SVN client check out the source code from svn at this address http://red5.googlecode.com/svn/flash/trunk/ or https://red5.googlecode.com/svn/flash/trunk/ if you have a google code login.
List Of Available Demo Applications (Server Side) SOSample - A simple shared ball demo that makes use of Shared Objects. admin - The Red5 administration panel. echo - A test application that runs RTMP/AMF datatype tests. oflaDemo - Simple video player as shown on the Online Open Source Flash conference. bwcheck - Demo application that detects the client bandwidth. fitcDemo - Video conference with chat.
List Of Available Demo Applications (Client Side) admin - The admin panel client application bwcheck - Demo to interface with the bandwidth check application, tests both download and upload rates. echo - Simple echo test AMF client loadtest - Simple loading testing tool, requesting a file multiple times. port-tester - Open port tester application. publisher - Simple broadcaster application
Environment Build Setup To build the demo applications and add WAR snapshots to the subversion repository, the ant environment requires a SvnAnt task library added to the ant common library directory: Go here: http://subclipse.tigris.org/svnant.html Download the latest SvnAnt ex: http://subclipse.tigris.org/files/documents/906/43359/svnant-1.2.0-RC1.zip Unzip the archive and place the jar files in your Ant lib directory C:\dev\ant\lib 4. Using your svn client or subclipse svn client in eclipse checkout or update the snapshots repository https://red5.googlecode.com/svn/snapshots. It will keep the registry.xml file up to date for modifying later. Add these variables to a build.properties file into user home directory svn.url=http://red5.googlecode.com/svn/snapshots/ svn.login=youruser svn.password=the google code password snapshot.path=/www/red5_snapshots/ Where snapshot.path is the path to the checked out snapshots directory.
Building The Demo Application To build the application and upload the created WAR file to the snapshots repository run the following ant target. $ ant upload-snapshot
Updating The Applications Registry Once the updated WAR has been uploaded to the snapshots repository, the registry.xml file requires to be updated so the demo applications installer will collect the update. Locate in the console output after uploading snapshot something like Destination: /www/red5_snapshots/admin- r3197-java6.war the file of the new war will be admin- r3197-java6.war. Edit the registry.xml in the snapshots checkout update the webapp entry with the new filename and commit the change ie Martin M, Dan Rossi Administration console admin-r3197-java6.war ]]> Subclipse version for committing changes also made by svnant in the snapshots repository, needs to be version 1.4 which is bound to subversion version 1.5 using this update site http://subclipse.tigris.org/update_1.4.x. Other svn clients also need to be bound to subversion 1.5 or you will get client too old errors.
Demo Applications Documentation Following is documentation for the demo applications:
Bandwidth Check Application This section explains the bandwidth check application and how to use it. The bandwidth check application handles two service method calls to trigger a download or upload rate check and return information to the flash client to determine what video bitrate to use.
Source Code Server Side - http://code.google.com/p/red5/source/browse/#svn/java/example/trunk/bwcheck Client Side - http://code.google.com/p/red5/source/browse/#svn/flash/trunk/bwcheck
Bandwidth Check Service Methods The service method is enabled in the bean with a name bwCheckService.service. ]]> Inside the BandwidthDetection class there are two service methods: Trigger a server to client rate check Trigger a client to server rate check onClientBWCheck(Object[] params) { ClientServerDetection clientServer = new ClientServerDetection(); return clientServer.onClientBWCheck(params); } ]]>
ServerClientDetection The ServerClientDetection class detects server to client bandwidth. 3 set of payload data arrays are intialized, the first with 1200 keys, and the next two with 12000 keys ie The start microtime is recorded, along with an initial number of bytes sent to the client. To initiate the handshake with the client method onBWCheck is called with parameters count - the number of times a result has been received from the client sent - the number of times the client method onBWCheck has been called timePassed - The interval time in milliseconds since the beginning of the bandwidth checking has occured. latency - cumLatency - the value of the increased passes from server to client. statsValues = new HashMap(); statsValues.put("count", this.count); statsValues.put("sent", this.sent); statsValues.put("timePassed", this.timePassed); statsValues.put("latency", this.latency); statsValues.put("cumLatency", this.cumLatency); statsValues.put("payload", payload); if (conn instanceof IServiceCapableConnection) { ((IServiceCapableConnection) conn).invoke("onBWCheck", new Object[]{statsValues}, this); } } ]]> An initial payload is sent with a size of 1200 keys, of the second pass, if the pass count is less than 3 and the time interval passed is less than 1 second progressively increase the payload packet sent with a size of 12000 keys. On the next pass if its between 3 and less than 6 times and less than 1 second, send the 3rd payload packet. On the next pass if its greater than 6 times and less than 1 second, send the 4th payload packet. Once the times passed reaches the amount of times sent, send the client the calculated rate, calculated by the following This will call a client method onBWDone kbitDown - the kbits down value deltaDown - deltaTime - latency - The latency delay calculated between server and client statsValues = new HashMap(); statsValues.put("kbitDown", this.kbitDown); statsValues.put("deltaDown", this.deltaDown); statsValues.put("deltaTime", this.deltaTime); statsValues.put("latency", this.latency); if (conn instanceof IServiceCapableConnection) { ((IServiceCapableConnection) conn).invoke("onBWDone", new Object[]{statsValues}); } } ]]>
Client Side Download Detection Client side callback methods are setup to enable the detection. public function onBWCheck(obj:Object):void { dispatchStatus(obj); } public function onBWDone(obj:Object):void { dispatchComplete(obj); } And then the information is obtainable on the Object argument public function onServerClientComplete(event:BandwidthDetectEvent):void { txtLog.data += "\n\n kbit Down: " + event.info.kbitDown + " Delta Down: " + event.info.deltaDown + " Delta Time: " + event.info.deltaTime + " Latency: " + event.info.latency; txtLog.data += "\n\n Server Client Bandwidth Detect Complete"; txtLog.data += "\n\n Detecting Client Server Bandwidth\n\n"; ClientServer(); }
ClientServerDetection The ClientServerDetection class helps detect client to server bandwidth. The server side method onClientBWCheck is called with some information to help the client to determine the bandwidth. cOutBytes - The bytes read from the client cInBytes - The bytes sent to the client time - onClientBWCheck(Object[] params) { final IStreamCapableConnection stats = this.getStats(); Map statsValues = new HashMap(); Integer time = (Integer) (params.length > 0 ? params[0] : 0); statsValues.put("cOutBytes", stats.getReadBytes()); statsValues.put("cInBytes", stats.getWrittenBytes()); statsValues.put("time", time); log.info("cOutBytes: {} cInBytes: {} time: {}", new Object[]{stats.getReadBytes(), stats.getWrittenBytes(), time}); return statsValues; } ]]>
red5-1.0~svn4374.orig-doc/reference/src/en-US/core/stream_paths.xml0000644000175000017500000001223311561341421024675 0ustar drazzibdrazzib Customize Stream Paths This document describes how applications can stream ondemand videos (VOD) from or record to custom directories other than the default streams folder inside the webapp.
Filename generator service Red5 uses a concept called scope services for functionality that is provided for a certain scope. One of these scope services is IStreamFilenameGenerator http://dl.fancycode.com/red5/api/org/red5/server/api/stream/IStreamFilenameGenerator.html that generates filenames for VOD streams that should be played or recorded.
Custom generator To generate filename in different folders, a new filename generator must be implemented: The above class will generate filenames for recorded streams like recordedStreams/ red5RecordDemo1234.flv and use the directory videoStreams as source for all VOD streams.
Activate custom generator In the next step, the custom generator must be activate in the configuration files for the desired application. Add the following definition to yourApp/WEB-INF/red5-web.xml: ]]> This will use the class defined above to generate stream filenames.
Change paths through configuration While the class described here works as expected, it's a bit unhandy to change the paths inside the code as every change requires recompilation of the class. Therefore you can pass parameters to the bean defined in the previous step to specify the paths to use inside the configuration file. Add three methods to your class that will be executed while the configuration file is parsed: Now you can set the paths inside the bean definition: ]]> You can also move the paths to the yourApp/WEB-INF/red5-web.properties file and use parameters to access them: ]]> In that case you will have to add the following lines to your properties file: red5-web.properties - recordPath=recordedStreams/ playbackPath=videoStreams/ absolutePath=false recordPath=/path/to/recordedStreams/ playbackPath=/path/to/videoStreams/ absolutePath=true
red5-1.0~svn4374.orig-doc/reference/src/en-US/core/bean_definitions.xml0000644000175000017500000000204211561341421025500 0ustar drazzibdrazzib List of Custom bean definitions This document gives a list of available custom-bean names
how to use the custom settings see: Customize Stream Paths
Bean Definitions Class Bean Description org.red5.server.api.stream.IStreamFilenameGenerator streamFilenameGenerator Chapter13.CustomizeStreamPaths org.red5.io.IStreamableFileService streamableFileService ?
red5-1.0~svn4374.orig-doc/reference/src/en-US/core/security.xml0000644000175000017500000001051111561341421024047 0ustar drazzibdrazzib Security This document describes the Red5 API that was introduced in version 0.6 to protect access to streams and/or shared objects similar to what the properties Client.readAccess and Client.writeAccess provide in the Macromedia Flash Communication Server / Flash Media Server 2.
Stream Security Read (playback) and write (publishing/recording) access to streams is protected separately in Red5.
Stream playback security For applications that want to limit the playback of streams per user or only want to provide access to streams with a given name, the interface IStreamPlaybackSecurity http://dl.fancycode.com/red5/api/org/red5/server/api/stream/IStreamPlaybackSecurity.html is available in Red5. It can be implemented by any object and registered in the ApplicationAdapter http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html . An arbitrary number of stream security handlers is supported per application. If at least one of the handlers denies access to the stream, the client receives an error NetStream.Failed with a description field giving a corresponding error message. An example handler that only allows access to streams that have a name starting with liveStream is described below: To register this handler in the application, add the following code in the appStart method: Red5 includes a sample security handler that denies all access to streams (DenyAllStreamAccess http://dl.fancycode.com/red5/api/org/red5/server/api/stream/support/DenyAllStreamAccess.html).
Stream publishing security In most applications that allow the user to publish and/or record streams, this access must be limited to prevent the server from being misused. Therefore, Red5 provides the interface IStreamPublishSecurity http://dl.fancycode.com/red5/api/org/red5/server/api/stream/IStreamPublishSecurity.html to deny publishing of certain streams. Similar to IStreamPlaybackSecurity http://dl.fancycode.com/red5/api/org/red5/server/api/stream/IStreamPlaybackSecurity.html, it can be implemented by any object and registered in the ApplicationAdapter http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html. If one of the registered handlers denies access, the client receives an error NetStream.Failed with a description field giving a corresponding error message. An example handler that only allows authenticated connections to publish a live stream starting with liveStream and deny all other access is described below:
red5-1.0~svn4374.orig-doc/reference/src/en-US/core/new_applications.xml0000644000175000017500000001416611561341421025551 0ustar drazzibdrazzib Create new applications in Red5 This document describes how new applications can be created in Red5. It applies to the new API introduced by Red5 0.4.
The application directory Red5 stores all application definitions as folders inside the "webapps" directory beneath the root of Red5. So the first thing you will have to do in order to create a new application, is to create a new subfolder in "webapps". By convention this folder should get the same name the application will be reached later. Inside your new application, you will need a folder "WEB-INF" containing configuration files about the classes to use. You can use the templates provided by Red5 in the folder "doc/ templates/myapp". During the start of Red5, all folders inside "webapps" are searched for a directory "WEB- INF" containing the configuration files.
Configuration The main configuration file that is loaded is "web.xml". It contains the following parameters:
webAppRootKey Unique name for this application, should be the public name: webAppRootKey /myapp ]]>
Handler configuration Every handler configuration file must contain at least three beans:
Context The context bean has the reserved name web.context and is used to map paths to scopes, lookup services and handlers. The default class for this is org.red5.server.Context. By default this bean is specified as: ]]> Every application can only have one context. However this context can be shared across multiple scopes.
Scopes Every application needs at least one scope that links the handler to the context and the server. The scopes can be used to build a tree where clients can connect to every node and share objects inside this scope (like shared objects or live streams). You can see the scopes as rooms or instances. The default scope usually has the name web.scope, but the name can be chosen arbitrarily. The bean has the following properties: - server This references the global server red5.server. - parent References the parent for this scope and usually is global.scope. - context The server context for this scope, use the web.context from above. - handler The handler for this scope (see below). - contextPath The path to use when connecting to this scope. - virtualHosts A comma separated list of hostnames or ip addresses this scope runs at. A sample definition looks like this: ]]> You can move the values for contextPath and virtualHosts to a separate properties file and use parameters. In that case you need another bean: Create new applications in Red5 ]]> Assuming a red5-web.properties containing the following data: webapp.contextPath=/myapp webapp.virtualHosts=localhost, 127.0.0.1 the properties of the scope can now be changed to: ]]> The contextPath specified in the configuration can be seen as "root" path of the scope. You can add additional elements after the configured path when connecting to dynamically create extra scopes. These extra scopes all use the same handler but have their own properties, shared objects and live streams.
Handlers Every context needs a handler that implements the methods called when a client connects to the scope, leaves it and that contains additional methods that can be called by the client. The interface these handlers need to implement is specified by org.red5.server.api.IScopeHandler, however you can implement other interfaces if you want to control access to shared objects or streams. A sample implementation that can be used as base class can be found at org.red5.server.adapter.ApplicationAdapter. Please refer to the javadoc documentation for further details. The bean for a scope handler is configured by: ]]>
Logging Logging Setup Tutorial
red5-1.0~svn4374.orig-doc/reference/src/en-US/core/tomcat_deployment.xml0000644000175000017500000007060611561341421025742 0ustar drazzibdrazzib Deploying Red5 To Tomcat
Preface This document describes how to deploy Red5 to Tomcat as web application archive (WAR). The standard Red5 deployment consists of a standalone Java application with an embedded J2EE container (Jetty or Tomcat) running as a system service, whereas the WAR version runs inside of a J2EE container.
Deployment The Tomcat war deployer scans the webapps directory for wars periodically. When a war is found that has not yet been deployed, the deployer will expand the war file into a directory based on the filename of the war. A war named myapp.war would be expanded into a directory named myapp; depending upon your installation the full path would look similar to this C:\Tomcat- 6.0.14\webapps\myapp. Red5 server is packaged into a file named ROOT.war, this filename has a special connotation on most J2EE application servers and is normally the default or root web context. The root web context is responsible for servicing requests which do not contain a path component. A url with a path component looks like http://www.example.com/myapp wheres root web application url would resemble this http://www.example.com/. An additional configuration file the context descriptor, is located in the META-INF directory for each web context. Applications that are not accessed via HTTP, do not require a web / servlet context. The root war file contains nearly everything that is in a standalone server build except for embedded server classes and select configuration files.
Context descriptors A Context XML descriptor is a fragment of XML data which contains a valid Context element which would normally be found in the main Tomcat server configuration file (conf/server.xml). For a given host, the Context descriptors are located in $CATALINA_HOME/conf/[enginename]/[hostname]/. Note that while the name of the file is not tied to the webapp name, when the deployer creates descriptors from the context.xml files contained in the war; their names will match the web application name. Context descriptors allow defining all aspects and configuration parameters of a context, such as naming resources and session manager configuration. It should be noted that the docBase specified in the Context element can refer to either the .WAR or the directory which will be created when the .WAR is expanded or the .WAR itself.
Red5 Configuration Configuration of the Red5 server consists of a few context parameters in the web.xml, a default context file, a bean ref file, and a Spring web context file for each application that will utilize Red5 features. Web applications that use only AMF to communicate with Red5 do not require a configuration entry in the servers application context. The application context which is managed via Spring is only available to applications that are contained within the root war; due to the way that the web application classloaders work. In addition, Red5 uses a context counterpart called a Scope which serves as a container for the context, handler, server core instance, and a few other objects. A scope is similar to the application model in FMS. The initial entry point or startup servlet for Red5 is the WarLoaderServlet and it is configured as a servlet listener in the web.xml as shown below. Functionally this servlet takes the place of the Standalone class in a standard Red5 server org.red5.server.war.WarLoaderServlet ]]> This listener is responsible for starting and stopping Red5 upon receipt of context initialized and context destroyed container events. The war loader is similar in function to the Spring ContextLoaderListener servlet but is specialized for Red5.
Spring contexts There are two types of contexts used by Red5, "default" and "web"; there may be only one default context but any number of web contexts.
Default context The default context is synonymous with the global application context and is responsible for providing objects and resources at the top or global level. Spring beans in this level are configured via the defaultContext.xml and beanRefContext.xml which are located in the ROOT classes directory (ex. C:\Tomcat-6.0.14\webapps\ROOT\WEB-INF\classes). The bean ref file defines the default.context bean which as an instance of org.springframework.context.support.ClassPathXmlApplicationContext. Two other configuration files red5-common.xml and red5-core.xml are used to construct the default context; these files are derived from the standalone configuration files of the same names, the primary difference is that the server embedding sections have been removed. The default context is referenced in the web.xml via the parentContextKey parameter: parentContextKey default.context ]]> This parameter is used by the ContextLoader to locate the parent context, which in turn allows the global resources to be located. The context loader is used by the WarLoaderServlet to initialize the web contexts. The scope counterpart to the global context is the global scope and it is referenced in the web.xml via the globalScope parameter: globalScope default ]]>
Web context Web context definitions are specified in Spring configuration files suffixed with -web.xml; If your application is named oflaDemo then its configuration file would be named oflaDemo-web.xml. The Spring web context files should not be confused with J2EE context descriptors as they are only used for red5 web contexts and the later are used by Tomcat. Each web context must have a corresponding configuration file, the configuration files are specified using an ant- style parameter in the web.xml as shown below. contextConfigLocation WEB-INF/classes/*-web.xml ]]> Context configuration files specify the resources that are used to notify the application about joining / leaving clients and provide the methods that a client can call. Additionally, the configuration files specify the scope hierarchy for these classes. Every context configuration must contain a minimum of three entries - a context, scope, and handler. The only exception to this rule is the root web application since it does not have a handler application, in this case the global handler is used. Context - Each context must have a unique name assigned since all the contexts exist within a single Spring application context. The root web context is named web.context, additional contexts suffix this base name with their web application name; for example oflaDemo would be named web.context.oflaDemo. A context is specified in the web context file as shown below. ]]> Scope - Every application needs at least one scope that links the handler to the context and the server. The scopes can be used to build a tree where clients can connect to every node and share objects inside this scope (like shared objects or live streams). You can consider the scopes as rooms or instances. The root scope has the name web.scope, additional scope names should follow the naming convention specified for contexts. A scope for oflaDemo would be named web.scope.oflaDemo so that it will not conflict with other contexts. A scope bean has the following properties: server - This references the server red5.server parent - The parent for this scope is normally global.scope context - Context for this scope, use the web.context for root and web.context.oflaDemo for oflaDemo handler - Handler for this scope, which is similar to a main.asc in FMS. contextPath - The path to use when connecting to this scope. virtualHosts - A comma separated list of host names or IP addresses this scope listens on. In the war version we do not control the host names, this is accomplished by Tomcat. The root scope definition looks like this: ]]> The contextPath is similar to the docBase in the J2EE context file for each web application. Where the docBase is used to locate resources by HTTP, the contextPath is use to find resources via RTMP. Your applications may add additional elements after the configured path to dynamically create extra scopes. The dynamically created scopes all use the same handler but have their own properties, shared objects and live streams. Handler - Every context needs a handler to provide the methods called by connecting clients. All handlers are required to implement org.red5.server.api.IScopeHandler, however you may implement additional interfaces for controlling access to shared objects or streams. A sample implementation is provided with Red5 that may be used as your base class: org.red5.server.adapter.ApplicationAdapter. Please refer to the javadoc for this class for additional details. As an example the scope handler for the oflaDemo is shown: ]]> The id attribute is referenced by the oflaDemo scope definition: ]]> If you don't need any special server-side logic, you can use the default application handler provided by Red5: ]]>
External applications An external application refers to a web application that accesses Red5 outside of the ROOT web application. Whether these applications exist within the same JVM instance or not, they may only access Red5 via RTMP or the AMF tunnel servlet. The tunnel servlet is configured in the web.xml for each application that requires AMF communication with Red5, an example is shown below: gateway org.red5.server.net.servlet.AMFTunnelServlet gateway ]]> The tunnel servlet class must be on the classpath of the application under which it is executed. In addition to the tunnel servlet the org.red5.server.net.servlet.ServletUtils class is required along with the following library jars: commons-codec-1.3.jar commons-httpclient-3.0.1.jar commons-logging-1.1.jar log4j-1.2.14.jar mina-core-1.1.2.jar These jars should be placed in the WEB-INF/lib directory of your application. ex. C:\Tomcat-6.0.14\webapps\myapp\WEB-INF\lib
Creating and deploying your application In the following section, two applications will be covered. The first will be a web application that communicates with Red5 via AMF or RTMP and has its own handler, referred to as "RemoteApp". The second will consist an SWF that communicates with Red5 via RTMP, this application will be called "LocalApp". Any IDE may be used to create these applications as long as it supports Java; the Eclipse IDE is suggested. SWF files outlined in the examples were created using AS3 in Flex.
Remote application This example will provide you with the minimum amount of configuration needed for a remote Red5 application. The following resources will be created: J2EE web application Client SWF Red5 handler class Spring web context Steps Create a web application named RemoteApp in your IDE. Obtain a red5.jar, which may be downloaded from http://red5.googlecode.com/files/red5.jar or built from source with the command "ant jar". This library is needed if you extend the ApplicationAdapter for your scope handler. Obtain the red5-remoting.jar, this may be accomplished by building yourself from the command line with "ant remotejar" or by downloading it from http://red5.googlecode.com/files/red5-remoting.jar. This library provides the AMF tunnel servlet. Place the library jars in your project library directory and add them to your build classpath. Compile the Java and Flex source. Create a directory named RemoteApp in the Tomcat webapps directory. ex. C:\Tomcat-6.0.14\webapps\RemoteApp Copy the contents of the web directory to the RemoteApp directory. From the bin directory copy the RemoteApp.swf to the webapps\RemoteApp directory. Copy the lib directory and its contents to the WEB-INF, excluding the red5.jar file. Copy the whole example directory and the RemoteApp-web.xml file from the bin directory to the classes directory under ROOT. ex. C:\Tomcat- 6.0.14\webapps\ROOT\WEB-INF\classes Restart tomcat Open your browser and go to: http://localhost:8080/RemoteApp/RemoteApp.html Click on the RTMP or HTTP connect buttons. For a successful test you should see a server response of "Hello World".
Local application A simple application that resides entirely within the ROOT web application. This example consists of a Spring web context, handler class, and a client SWF. 'Steps ' Create a web application named LocalApp in your IDE. Obtain a red5.jar, which may be downloaded from http://red5.googlecode.com/files/red5.jar or built from source with the command "ant jar". This library is needed if you extend the ApplicationAdapter for your scope handler. Place the library jar in your project library directory and add it to your build classpath. Compile the Java and Flex source. Copy the LocalApp.html and LocalApp.swf from the bin directory to the ROOT directory. ex. C:\Tomcat-6.0.14\webapps\ROOT Copy the whole example directory and the LocalApp-web.xml file from the bin directory to the classes directory under ROOT. ex. C:\Tomcat- 6.0.14\webapps\ROOT\WEB-INF\classes Restart tomcat Open your browser and go to: http://localhost:8080/LocalApp.html Click on the connect button. For a successful test you should see a server response of "Hello World".
Example Source The example application source is available in Subversion at https://red5.googlecode.com/svn/java/example/trunk/
Additional web configuration Log4j - The path to the logging configuration file and the Spring logging startup servlet are shown below. These entries should precede the war loader servlet entry so that logging is initialized prior to Red5 startup. log4jConfigLocation /WEB-INF/log4j.properties org.springframework.web.util.Log4jConfigListener ]]> AMF gateway - This servlet provides communication with server applications using AMF. gateway org.red5.server.net.servlet.AMFGatewayServlet 1 gateway /gateway ]]> RTMPT - This servlet implements an RTMP tunnel via HTTP, this is normally used to bypass firewall issues. rtmpt org.red5.server.net.rtmpt.RTMPTServlet 2 rtmpt /open/* rtmpt /idle/* rtmpt /send/* rtmpt /close/* ]]> Security - The following entries are used to prevent retrieval of sensitive information. Forbidden /WEB-INF/* Forbidden /persistence/* Forbidden /streams/* ]]>
Troubleshooting If you have problems with deployment or if your application does not start, follow these steps prior to posting a bug. Directory examples use a typical windows based path structure. Stop the Tomcat server Locate your Tomcat installation directory C:\Program Files\Apache\Tomcat Delete the "work" directory C:\Program Files\Apache\Tomcat\work Delete the "Catalina" directory from the "conf" directory C:\Program Files\Apache\Tomcat\conf\Catalina Delete the expanded war directories, if they exist C:\Program Files\Apache\Tomcat\webapps\ROOT C:\Program Files\Apache\Tomcat\webapps\echo C:\Program Files\Apache\Tomcat\webapps\SOSample Ensure your WAR files are in the webapps directory C:\Program Files\Apache\Tomcat\webapps\ROOT.war C:\Program Files\Apache\Tomcat\webapps\echo.war C:\Program Files\Apache\Tomcat\webapps\SOSample.war Restart Tomcat If you still experience problems, gather the following information and post an issue on Trac after you do a quick search to see if others have experienced the same problem. Java version Tomcat version Operating system Red5 version (0.8, Trunk, Revision 2283, etc...)
Definitions AMF::
A binary format based loosely on the Simple Object Access Protocol (SOAP). It is used primarily to exchange data between an Adobe Flash application and a database, using a Remote Procedure Call. Each AMF message contains a body which holds the error or response, which will be expressed as an ActionScript Object.
Ant::
Software tool for automating software build processes. It is similar to make but is written in the Java language, requires the Java platform, and is best suited to building Java projects.
AS3::
A scripting language based on ECMAScript, used primarily for the development of websites and software using the Adobe Flash Player platform.
Flex::
Software development kit and an IDE for a group of technologies initially released in March of 2004 by Macromedia to support the development and deployment of cross platform, rich Internet applications based on their proprietary Macromedia Flash platform.
RTMP::
Real Time Messaging Protocol (RTMP) is a proprietary protocol developed by Adobe Systems that is primarily used with Adobe Flash Media Server to stream audio, video, and data over the internet to the Adobe Flash Player client. RTMP can be used for Remote Procedure Calls. RTMP maintains a persistent connection with an endpoint and allows real-time communication. Other RPC services are made asynchronously with a single client/server request/response model, so real-time communication is not necessary.
RTMPT::
RTMP using HTTP tunneling.
SWF::
Proprietary vector graphics file format produced by the Flash software from Adobe. Intended to be small enough for publication on the web, SWF files can contain animations or applets of varying degrees of interactivity and function. SWF is also sometimes used for creating animated display graphics and menus for DVD movies, and television commercials.
Tomcat::
A web container, or application server developed at the Apache Software Foundation (ASF). Tomcat implements the servlet and the JavaServer Pages (JSP) specifications from Sun Microsystems, providing an environment for Java code to run in cooperation with a web server. It adds tools for configuration and management but can also be configured by editing configuration files that are normally XML-formatted. Tomcat includes its own internal HTTP server.
Bibliography Red5 - http://red5.org Apache Tomcat - http://tomcat.apache.org Wikipedia - http://en.wikipedia.org
red5-1.0~svn4374.orig-doc/reference/src/en-US/core/management.xml0000644000175000017500000001756011561341421024327 0ustar drazzibdrazzib Management
JMX Classes Red5's implementation consists of the following classes and various other MBeans: org.red5.server.jmx.JMXFactory - Provides access to the platform MBeanServer as well as registration, unregistration, and creation of new MBean instances. Creation and registration is performed using StandardMBean wrappers. org.red5.server.jmx.JMXAgent - Provides the HTML adapter and registration of MBeans. org.red5.server.jmx.JMXUtil - Helper methods for working with ObjectName or MBean instances.
Spring configuration The Spring configuration for the JMX implementation allows you to configure the "domain" for MBean registration and listener port for the HTML adaptor. The default entries are shown below. ]]> The config settings for the jmxAgent bean is located in the red5.properties, these are: red5.properties - # JMX jmx.rmi.port.registry=9999 jmx.rmi.port.remoteobjects= jmx.rmi.host=0.0.0.0 jmx.rmi.ssl=false jmx.http=false jmx.http.port=8082 jmx.rmi.port.registry - The RMI registry port. The RMI adapter may only be used if an RMI registry is running. The RMI registry is enabled by default. jmx.rmi.port.remoteobjects - The RMI remote objects export port to specify for access through firewalls. The default port is generated from the RMI stack. jmx.rmi.host - For RMI remote access specify the host to bind to usually the public address. jmx.rmi.ssl - Enable RMI / JMX SSL. SSL is off by default. jmx.http - Enable HTTP RMI adapter. The HTML adapter is disabled by default, but it allows easy management of MBeans from a web browser.
RMI Authentication RMI authentication is configured and enabled by default. This is to secure the RMI connection from anonymous clients. The bean properties remoteAccessProperties and remotePasswordProperties set the JMX access and password config files. The access.properties and password.properties config files define the JMX user rights and clear text password. access.properties contains a user and group rights config access.properties - red5user readwrite Where red5user is the JMX username and readwrite is the rights which is usually left as default. password.properties contains the JMX user and password password.properties - red5user changeme Where red5user is the JMX username and changeme is the JMX password. It is advisable to change the default login, aswell as configure with SSL enabled as the login is cleartext.
JMX / RMI / SSL When RMI is enabled with SSL, the bean properties remoteSSLKeystore and remoteSSLKeystorePass are required to load the SSL keystore and the keystore password for the SSL request. The default keystore loaded is the conf/keystore.jmx file which can also share the keystore required for RTMPS connections. The java properties javax.net.ssl.keyStore and javax.net.ssl.keyStorePassword are transparently set. To generate the keystore / and truststore for client / server connections run from the source ant truststore This will generate a keystore.jmx, red5server.cer and truststore.jmx certificate.
jConsole / JMX Client JConsole is a utility that ships with the JRE (since 1.5), it allows you to manage local and remote JMX implementations. To enable introspection you must add the following VM parameter to your startup: -Dcom.sun.management.jmxremote
Local Management After the parameter is set and the application initialized you can start jConsole at the command line by typing: $ jconsole A Swing application will appear and you must select the implementation (agent) you wish to manage, for local simply select "org.red5.server.Standalone".
Remote Management For remote connections with jconsole / JMX clients the command is $ jconsole service:jmx:rmi://host:port/jndi/rmi://host:port/red5
SSL Remote Management For remote ssl connections with jconsole / JMX clients the client is required to load the truststore certificate generated previouslly. The command for setting the truststore properties $ jconsole -J-Djavax.net.ssl.trustStore=truststore.jmx \ -J-Djavax.net.ssl.trustStorePassword=password \ service:jmx:rmi://host:port/jndi/rmi://host:port/red5
Links http://www.onjava.com/pub/a/onjava/2004/09/29/tigerjmx.html?page=1 http://java.sun.com/developer/JDCTechTips/2005/tt0315.html#2
red5-1.0~svn4374.orig-doc/reference/src/en-US/core/scripting.xml0000644000175000017500000005302211561341421024206 0ustar drazzibdrazzib Scripting Implementations
I. Select a scripting implementation Level: Beginner Red5 includes interpreters for the following scripting languages: Javascript - version 1.6 (Mozilla Rhino version 1.6 R7) JRuby - version 1.0.1 (Ruby version 1.8.5) Jython - version 2.2 (Python version 2.1) Groovy - version 1.0 Beanshell - version 2.0b4 Future versions may include: JudoScript Scala PHP (This one is non-trivial, I may just provide a bridge) Actionscript (Maybe SSAS) The scripting implementation classes are pre-specified in the following locations depending upon your Java version: Java5 - js-engine.jar, jython-engine.jar, groovy-engine.jar Java6 - resources.jar File location: /META-INF/services/javax.script.ScriptEngineFactory It is most likely that the classes read from the jdk or jre will be prefered over any specified elsewhere.
II. Configuring Spring Level: Intermediate Step one is to locate your web applications red5-web.xml file. Within the xml config file the web.scope bean definition must supply a web.handler, this handler is your Red5 application (An application must extend the org.red5.server.adapter.ApplicationAdapter class). The application provides access to the Red5 server and any service instances that are created. The service instances and the application itself may be scripted. Bean definitions in Spring config files may not have the same id, here are some web handler definition examples: Java class implementation ]]> Javascript implementation org.red5.server.api.IScopeHandler org.red5.server.adapter.IApplication org.red5.server.adapter.ApplicationAdapter ]]> Ruby implementation org.red5.server.api.IScopeHandler org.red5.server.adapter.IApplication ]]> Groovy implementation org.red5.server.api.IScopeHandler org.red5.server.adapter.IApplication ]]> Python implementation org.red5.server.api.IScopeHandler org.red5.server.adapter.IApplication Scripting Implementations One 2 III ]]> In general the configuration using scripted classes is defined using the constructor arguments (see interpreter section) in the following order: Argument 1 - Location of the script source file Argument 2 - Java interfaces implemented by the script. The interfaces for the code which extends an Application are basically boilerplate as seen in the examples above; You do not have to use those interfaces in all your script definitions. Argument 3 - Java classes extended by the script. The extended class is not always necessary, it depends upon the scripting engine implementation. The example location starts with classpath:applications which in physical disk terms for the "oflaDemo" application equates to webapps/oflaDemo/WEB-INF/applications
III. Creating an application script
1. Application adapter Scripting an application adapter is more difficult in some languages than it is in others, because of this I present the Ruby example which works really well and is easy to write and integrate. The application services are easily written in any of the supported languages, but they require a Java interface at a minimum. i. JRuby application adapter implementation # JRuby require 'java' module RedFive include_package "org.red5.server.api" include_package "org.red5.server.api.stream" include_package "org.red5.server.api.stream.support" include_package "org.red5.server.adapter" include_package "org.red5.server.stream" end # # application.rb - a translation into Ruby of the ofla demo application, a red5 example. # # @author Paul Gregoire # class Application &lt; RedFive::ApplicationAdapter attr_reader :appScope, :serverStream attr_writer :appScope, :serverStream def initialize #call super to init the superclass, in this case a Java class super puts "Initializing ruby application" end def appStart(app) puts "Ruby appStart" @appScope = app return true end def appConnect(conn, params) puts "Ruby appConnect" measureBandwidth(conn) puts "Ruby appConnect 2" if conn.instance_of?(RedFive::IStreamCapableConnection) puts "Got stream capable connection" sbc = RedFive::SimpleBandwidthConfigure.new sbc.setMaxBurst(8388608) sbc.setBurst(8388608) sbc.setOverallBandwidth(8388608) conn.setBandwidthConfigure(sbc) end return super end def appDisconnect(conn) puts "Ruby appDisconnect" if appScope == conn.getScope &amp;&amp; @serverStream != nil @serverStream.close end super end def toString return "Ruby toString" end def setScriptContext(scriptContext) puts "Ruby application setScriptContext" end def method_missing(m, *args) super unless @value.respond_to?(m) return @value.send(m, *args) end end
2. Application services Here is an example of a Java interface (Yes, the methods are supposed to be empty) which is used in the examples to provide a template for applications which will gather a list of files and return them as a "Map" (key-value pairs) to the caller. i. Simple Java interface for implementation by scripts ii. Spring bean definition for a script implementation of the interface org.red5.server.webapp.oflaDemo.IDemoService ]]> iii.JRuby script implementing the interface # JRuby - style require 'java' module RedFive include_package "org.springframework.core.io" include_package "org.red5.server.webapp.oflaDemo" end include_class "org.red5.server.api.Red5" include_class "java.util.HashMap" # # demoservice.rb - a translation into Ruby of the ofla demo application, a red5 example. # # @author Paul Gregoire # class DemoService &lt; RedFive::DemoServiceImpl attr_reader :filesMap attr_writer :filesMap def initialize puts "Initializing ruby demoservice" super @filesMap = HashMap.new end def getListOfAvailableFLVs puts "Getting the FLV files" begin dirname = File.expand_path('webapps/oflaDemo/streams').to_s Dir.open(dirname).entries.grep(/\.flv$/) do |dir| dir.each do |flvName| fileInfo = HashMap.new stats = File.stat(dirname+'/'+flvName) fileInfo["name"] = flvName fileInfo["lastModified"] = stats.mtime fileInfo["size"] = stats.size || 0 @filesMap[flvName] = fileInfo print 'FLV Name:', flvName print 'Last modified date:', stats.mtime print 'Size:', stats.size || 0 print '-------' end end rescue Exception =&gt; ex puts "Error in getListOfAvailableFLVs #{errorType} \n" puts "Exception: #{ex} \n" puts caller.join("\n"); end return filesMap end def formatDate(date) return date.strftime("%d/%m/%Y %I:%M:%S") end def method_missing(m, *args) super unless @value.respond_to?(m) return @value.send(m, *args) end end iv.Java application implementing the interface, upon which the Ruby code was based (This code is NOT needed when using the script) v. Flex AS3 method calling the service [Bindable] public var videoList:ArrayCollection; public function catchVideos():void{ // call server-side method // create a responder and set it to getMediaList var nc_responder:Responder = new Responder(getMediaList, null); // call the server side method to get list of FLV's nc.call("demoService.getListOfAvailableFLVs", nc_responder); } public function getMediaList(list:Object):void{ // this is the result of the server side getListOfAvailableFLVs var mediaList:Array = new Array(); for(var items:String in list){ mediaList.push({label:items, size:list[items].size, dateModified:list[items].lastModifi } // videoList is bindable and the datagrid is set to use this for it's dataprovider // wrap it in an ArrayCollection first videoList = new ArrayCollection(mediaList); }
Creating your own interpreter Level: Advanced Lets just open this up by saying that I attempted to build an interpreter for PHP this last weekend 02/2007 and it was a real pain; after four hours I had to give up. So what I learned from this is that you must first identify scripting languages which operate as applications, not as http request processors. Heres a test: Can X language be compiled into an executable or be run on the command-line? If yes then it should be trivial to integrate.
Links with scripting information Spring scripting http://static.springframework.org/spring/docs/2.0.x/reference/dynamic-language.html http://rhinoinspring.sourceforge.net/ Java scripting http://java.sun.com/developer/technicalArticles/J2SE/Desktop/scripting/ http://blogs.sun.com/sundararajan/ https://scripting.dev.java.net/ http://today.java.net/pub/a/today/2006/04/11/scripting-for-java-platform.html http://www.javaworld.com/javaworld/jw-03-2005/jw-0314-scripting_p.html http://www.oreillynet.com/onjava/blog/2004/01/java_scripting_half_the_size_h.html http://www.robert-tolksdorf.de/vmlanguages.html Javascript http://www.mozilla.org/rhino/ http://www.mozilla.org/rhino/ScriptingJava.html Ruby http://jruby.codehaus.org/ BeanShell http://www.beanshell.org/ Python http://www.jython.org/Project/ http://www.onjava.com/pub/a/onjava/2002/03/27/jython.html http://jepp.sourceforge.net/ http://jpe.sourceforge.net/ http://jpype.sourceforge.net/ Groovy http://groovy.codehaus.org/
red5-1.0~svn4374.orig-doc/reference/src/en-US/core/plugins.xml0000644000175000017500000003014411561341421023665 0ustar drazzibdrazzib Plugins Available in Red5 is a Plugin architecture system to enable to extend features into Red5 for an entire server or application. Plugins are loaded on startup and then configured on a per application basis. Currently only available via SVN trunk.
Loading Plugins are compiled into jar files which will be loaded and parsed by the server on startup. Path to load the plugins is in: /path/to/red5/plugins
Configuring Plugins can be configured via the application adaptor by setting a property inside the red5-web.xml config file. The plugins property has one child node which is a list of plugins to load for the application ... ]]> Inside the list can be configured multiple plugins beans ]]> pluginName - the name of the plugin compiled into the plugin pluginType - the fully qualified name of the plugin class ie org.red5.server.plugin.auth.AuthPlugin method - method is a getter for a factory method as the plugin may provide multiple features ie getRed5AuthenticationHandler methodReturnType - methodReturnType is the fully qualified name of the plugin factory class to provider a certain feature ie org.red5.server.plugin.auth.Red5AuthenticationHandler Plugins are able to be configured with config properties using a property setter which is a spring hashmap list of values ie htmlDomains file:///path/to/allowedHTMLdomains.txt swfDomains file:///path/to/allowedSWFdomains.txt ]]> Where using spring map syntax each property key / value is within an entry tag htmlDomains file:///path/to/allowedHTMLdomains.txt ]]> Due to some issues with spring context paths loading in plugins, full absolute paths are required to files to be loaded ie file:///path/to/allowedHTMLdomains.txt
Developing To begin developing a new plugin it's best to download already built ones from SVN to use as a template ie http://red5.googlecode.com/svn/java/plugins/trunk/securityplugin/ To configure some ant properties to compile the plugin correctly, inside build.properties update the following red5.root=/www/red5_server_xuggle_timestamp_fixes main-class=org.red5.server.plugin.security.SecurityPlugin Where red5.root is the path to red5 and main-class is the fully qualified name of the plugin. At the top of the ant build script, update the project name to the name of the plugin which will be used to generate the plugin jar file ]]> Make sure the following ant property is set to either the main-class property or static to the plugin fully qualified name. If this is not setup correctly the Plugin loader will detect there is no manifest and not load the plugin. <attribute name="Red5-Plugin-Main-Class" value="${main-class}"/>
Plugin Main Class The plugin main class requires to extend the Red5Plugin base class which the plugin loader will then use this as the main class for loading the plugin and factory methods. The getter method getName is required to be set so the plugin can be identified and loaded correctly using the plugin config in the application Other methods are doStart , doStop and setApplication setter method which is required to set a reference to the loaded application. The plugin factory method is required to be configured and return a reference to the factory class which is then loaded in the application config. A reference to the application can also be set if desired so the factory method class can manipulate methods and properties on the application.
Factory Method Class The factory method class is what gets configured to load and is where the features to run happen. It is required to extend the ApplicationLifeCycle class as well as implement the IRed5PluginHandler interface. Setter methods for both application and properties is required so the class is able to get a reference to the application as well as have property configs set. props) { properties = props; } } ]]> An init method is required to be overridden to enable the factory class to start and then enable features and manipulate the application
red5-1.0~svn4374.orig-doc/reference/src/en-US/book.xml0000644000175000017500000000135211561341421022205 0ustar drazzibdrazzib red5-1.0~svn4374.orig-doc/reference/src/en-US/getting-started/0000755000175000017500000000000011760512605023642 5ustar drazzibdrazzibred5-1.0~svn4374.orig-doc/reference/src/en-US/getting-started/the_team.xml0000644000175000017500000000405011561341421026144 0ustar drazzibdrazzib
Who is on the Red5 Team? The Red5 Project (red5 AT osflash.org)
Project Managers Chris Allen (mrchrisallen AT gmail.com) John Grden (johng AT acmewebworks.com)
Active Members Dominick Accattato (daccattato AT gmail.com) Steven Gong (steven.gong AT gmail.com) Paul Gregoire (mondain AT gmail.com) Thijs Triemstra (info AT collab.nl) Dan Rossi (electroteque AT gmail.com) Anton Lebedevich (mabrek AT gmail.com)
Inactive Members Luke Hubbard (luke AT codegent.com) Joachim Bauch (jojo AT struktur.de) Mick Herres (mickherres AT hotmail.com) Grant Davies (grant AT bluetube.com) Steven Elliott (steven.s.elliott AT gmail.com) Jokul Tian (tianxuefeng AT gmail.com) Michael Klishin (michael.s.klishin AT gmail.com) Martijn van Beek (martijn.vanbeek AT gmail.com)
red5-1.0~svn4374.orig-doc/reference/src/en-US/getting-started/configuration_files.xml0000644000175000017500000002764411561341421030425 0ustar drazzibdrazzib Configuration Files
Directory "conf"
jetty.xml The settings of the HTTP server and servlet container are specified using this file. It runs on all available interfaces on port 5080 by default. See the Jetty homepage http://jetty.mortbay.org/jetty6/ for further information about the syntax of this file.
keystore Contains a sample private key and certificate to be used for secure connections.
log4j.properties Controls the log levels and output handlers for the logging subsystem. Further information about log4j can be found on the official homepage http://logging.apache.org/log4j/docs/.
realm.properties (Jetty) This file defines users passwords and roles that can be used for protected areas. The format is: <username>: <password>[,<rolename> ...] Passwords may be clear text, obfuscated or checksummed. The class "org.mortbay.util.Password" should be used to generate obfuscated passwords or password checksums
tomcat-users.xml (Tomcat) This file defines users passwords and roles that can be used for protected areas. The format is: " password="" roles="[, ...]" /> ]]> Passwords may be clear text, obfuscated or checksummed. For information on different digest support or available realm implementations use the how-to: http://tomcat.apache.org/tomcat-5.5-doc/realm-howto.html Further information about tomcat realms can be found on the official homepage http://tomcat.apache.org/tomcat-5.5-doc/catalina/docs/api/org/apache/catalina/realm/package-summary.html
red5.globals Specifies the path to the configuration file for the default global context to be used for Red5. By default this file is located in "/webapps/red5-default.xml".
red5.properties File containing key / value pairs to configure the host and port of basic services like RTMP or remoting.
red5.xml The main configuration file that wires together the context tree. It takes care of loading "red5-common.xml" and "red5-core.xml" and sets up the rest of the server. This is the first file to be loaded by Red5. The J2EE container is selected in this configuration file by configuring one of the following bean elements. Jetty ]]> Tomcat ... cut for brevity ... ]]>
red5-common.xml Classes that are shared between all child contexts are declared in this file. It contains information about the object serializers / deserializers, the codecs to be used for the network protocols as well as the available video codecs. Configuration files used by Red5 The object (FLV) cache is configured / spring-wired in this file. Four implementations are currently available; The first one is our own creation (simple byte-buffers) and the others use WhirlyCache, or Ehcache. If no caching is desired then the NoCache implementation should be specified like so: ]]> The other bean configurations are as follows (Only one may be used at a time): Red5 homegrown simple example 5 ]]> EhCache http://ehcache.sourceforge.net/ ]]> Whirlycache https://whirlycache.dev.java.net/ com.whirlycott.cache.policy.LFUMaintenancePolicy Configuration files used by Red5 org.red5.server.api.IScopeHandler org.red5.server.adapter.IApplication org.red5.server.adapter.ApplicationAdapter ]]> Ruby application org.red5.server.api.IScopeHandler org.red5.server.adapter.IApplication ]]>
red5-1.0~svn4374.orig-doc/reference/src/en-US/getting-started/migration_guide.xml0000644000175000017500000007147711561341421027545 0ustar drazzibdrazzib Migration Guide This document describes API differences between the Macromedia Flash Communication Server / Adobe Flash Media Server and Red5. It aims at helping migrate existing applications to Red5. If you don't have an application in Red5 yet, please read the tutorial about howto create new applications first.
Application callbacks When implementing serverside applications, one of the most important functionalities is to get notified about clients that connect or disconnect and to be informed about the creation of new instances of the application.
Interface IScopeHandler Red5 specifies these actions in the interface IScopeHandler http://dl.fancycode.com/red5/api/org/red5/server/api/IScopeHandler.html. See the API documentation for further details.
Class ApplicationAdapter As some methods may be called multiple times for one request (e.g. connect will be called once for every scope in the tree the client connects to), the class ApplicationAdapter http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html defines additional methods. This class usually is used as base class for new applications. Here is a short overview of methods of the FCS / FMS application class and their corresponding methods of ApplicationAdapter http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html in Red5: FMS to Red5 Callback Methods onAppStart appStart / roomStart onAppStop appStop / roomStop onConnect appConnect / roomConnect / appJoin / roomJoin onDisconnect appDisconnect / roomDisconnect / appLeave / roomLeave
The app''' methods are called for the main application, the room''' methods are called for rooms (i.e. instances) of the application. You can also also use the ApplicationAdapter http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html to check for streams, shared objects, or subscribe them. See the API documentation for further details.
Execution order of connection methods Assuming you connect to rtmp://server/app/room1/room2 At first, the connection is established, so the user "connects" to all scopes that are traversed up to room2: app (-> appConnect) room1 (-> roomConnect) room2 (-> roomConnect) After the connection is established, the client object is retrieved and if it's the first connection by this client to the scope, he "joins" the scopes: app (-> appJoin) room1 (-> roomJoin) room2 (-> roomJoin) If the same client establishes a second connection to the same scope, only the connect methods will be called. If you conect to partially the same scopes, only a few join methods might be called, e.g. rtmp://server/app/room1/room3 will trigger appConnect("app") joinConnect("room1") joinConnect("room3") roomJoin("room3") The appStart method currently is only called once during startup of Red5 as it currently can't unload/load applications like FCS/FMS does. The roomStart methods are called when the first client connects to a room.
Accepting / rejecting clients FCS / FMS provide the methods acceptConnection and rejectConnection to accept and reject new clients. To allow clients to connect, no special action is required by Red5 applications, the *Connect methods just need to return true in this case. If a client should not be allowed to connect, the method rejectClient can be called which is implemented by the ApplicationAdapter http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html class. Any parameter passed to rejectClient is available as the application property of the status object that is returned to the caller.
Current connection and client Red5 supports two different ways to access the current connection from an invoked method. The connection can be used to get the active client and the scope he is connected to. The first possibility uses the "magic" Red5 http://dl.fancycode.com/red5/api/org/red5/server/api/Red5.html object: The second possiblity requires the method to be defined with an argument of type IConnection http://dl.fancycode.com/red5/api/org/red5/server/api/IConnection.html as implicit first parameter which is automatically added by Red5 when a client calls the method:
Additional handlers For many applications, existing classes containing application logic that is not related to Red5 are required to be reused. In order to make them available for clients connecting through RTMP, these classes need to be registered as handlers in Red5. There are currently two ways to register these handlers: By adding them to the configuration files. By registering them manually from the application code. The handlers can be executed by clients with code similar to this: nc = new NetConnection(); nc.connect("rtmp://localhost/myapp"); nc.call("handler.method", nc, "Hello world!"); If a handler is requested, Red5 always looks it up in the custom scope handlers before checking the handlers that have been set up in the context through the configuration file.
Handlers in configuration files This method is best suited for handlers that are common to all scopes the application runs in and that don't need to change during the lifetime of an application. To register the class com.fancycode.red5.HandlerSample as handler sample, the following bean needs to be added to WEB-INF/red5-web.xml: ]]> Note that the id of the bean is constructed as the name of the handler (here sample) and the keyword service.
Handlers from application code All applications that use handlers which are different for the various scopes or want to change handlers, need a way to register them from the serverside code. These handlers always override the handlers configured in red5-web.xml. The methods required for registration are described in the interface IServiceHandlerProvider http://dl.fancycode.com/red5/api/org/red5/server/api/service/IServiceHandlerProvider.html which is implemented by ApplicationAdapter http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html. The same class as above can be registered using this code: Note that in this example, only the application scope has the sample handler but not the subscopes! If the handler should be available in the rooms as well, it must be registered in roomStart for the room scopes.
Calls to client methods To call methods from your Red5 application on the client, you will first need a reference to the current connection object: If the connection implements the IServiceCapableConnection http://dl.fancycode.com/red5/api/org/red5/server/api/service/IServiceCapableConnection.html interface, it supports calling methods on the other end: If you need the result of the method call, you must provide a class that implements the IPendingServiceCallback http://dl.fancycode.com/red5/api/org/red5/server/api/service/IPendingServiceCallback.html interface: The method call looks now like this: Of course you can implement this interface in your application and pass a reference to the application instance.
SharedObjects The methods to access shared objects from an application are specified in the interface ISharedObjectService http://dl.fancycode.com/red5/api/org/red5/server/api/so/ISharedObjectService.html. When dealing with shared objects in serverside scripts, special care must be taken about the scope they are created in. To create a new shared object when a room is created, you can override the method roomStart in your application: Now everytime a first user connects to a room of a application, e.g. through rtmp://server/application/room1, a shared object sampleSO is created by the server. If a shared object should be created for connections to the main application, e.g. rtmp://server/application, the same must be done in the method appStart. For further informations about the possible methods a shared object provides please refer to the api documentation of the interface ISharedObject http://dl.fancycode.com/red5/api/org/red5/server/api/so/ISharedObject.html.
Serverside change listeners To get notified about changes of the shared object similar to onSync in FCS / FMS, a listener must implement the interface ISharedObjectListener http://dl.fancycode.com/red5/api/org/red5/server/api/so/ISharedObjectListener.html: Additionally, the listener must get registered at the shared object:
Changing from application code A shared object can be changed by the server as well: Here all subscribed clients as well as the registered handlers are notified about the new / changed attribute. If multiple actions on a shared object should be combined in one update event to the subscribed clients, the methods beginUpdate and endUpdate must be used: The serverside listeners will receive their update notifications through separate method calls as without the beginUpdate and endUpdate. Calls to shared object handlers through remote_so.send(<handler>, <args>) from a Flash client or the corresponding serverside call can be mapped to methods in Red5. Therefore a handler must get registered through a method of the ISharedObjectHandlerProvider http://dl.fancycode.com/red5/api/org/red5/server/api/so/ISharedObjectHandlerProvider.html interface similar to the application handlers: Handlers with a given name can be registered as well: Here, the method could be called through one.two.myMethod. Another way to define event handlers for SharedObjects is to add them to the red5- web.xml similar to the file-based application handlers. The beans must have a name of <SharedObjectName>.<DottedServiceName>.soservice, so the above example could also be defined with: ]]>
Persistence Persistence is used so properties of objects can be used even after the server has been restarted. In FCS / FMS usually local shared objects on the serverside are used for this. Red5 allows arbitrary objects to be persistent, all they need to do is implement the interface IPersistable http://dl.fancycode.com/red5/api/org/red5/server/api/persistence/IPersistable.html. Basically these objects have a type, a path, a name (all strings) and know how to serialize and deserialize themselves. Here is a sample of serialization and deserialization: To save or load this object, the following code can be used: If no custom objects are required for an application, but data must be stored for future reuse, it can be added to the IScope http://dl.fancycode.com/red5/api/org/red5/server/api/IScope.html through the interface IAttributeStore http://dl.fancycode.com/red5/api/org/red5/server/api/IAttributeStore.html. In scopes, all attributes that don't start with IPersistable.TRANSIENT_PREFIX are persistent. The backend that is used to store objects is configurable. By default persistence in memory and in the filesystem is available. When using filesystem persistence for every object a file is created in "webapps/<app>/ persistence/<type>/<path>/<name>.red5", e.g. for a shared object "theSO" in the connection to "rtmp://server/myApp/room1" a file at "webapps/myApp/persistence/ SharedObject/room1/theSO.red5" would be created.
Periodic events Applications that need to perform tasks regularly can use the setInterval in FCS / FMS to schedule methods for periodic execution. Red5 provides a scheduling service (ISchedulingService http://dl.fancycode.com/red5/api/org/red5/server/api/scheduling/ISchedulingService.html) that is implemented by ApplicationAdapter http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html like most other services. The service can register an object (which needs to implement the IScheduledJob http://dl.fancycode.com/red5/api/org/red5/server/api/scheduling/IScheduledJob.html interface) whose execute method is called in a given interval. To register an object, code like this can be used: The id that is returned by addScheduledJob can be used later to stop execution of the registered job:
Remoting Remoting can be used by non-rtmp clients to invoke methods in Red5. Another possibility is to call methods from Red5 to other servers that provide a remoting service.
Remoting server Services that should be available for clients need to be registered the same way as additional application handlers are registered. See above for details. To enable remoting support for an application, the following section must be added to the WEB-INF/web.xml file: web.xml - gateway org.red5.server.net.servlet.AMFGatewayServlet gateway /gateway/* ]]> The path specified in the <url-pattern> tag (here gateway) can be used by the remoting client as connection url. If this example would have been specified for an application myApp, the URL would be: http://localhost:5080/myApp/gateway Methods invoked through this connection will be executed in the context of the application scope. If the methods should be executed in subscopes, the path to the subscopes must be added to the URL like: http://localhost:5080/myApp/gateway/room1/room2
Remoting client The class RemotingClient http://dl.fancycode.com/red5/api/org/red5/server/net/remoting/RemotingClient.html defines all methods that are required to call methods through the remoting protocol. The following code serves as example about how to use the remoting client: By default, a timeout of 30 seconds will be used per call, this can be changed by passing a second parameter to the constructor defining the maximum timeout in milliseconds. The remoting headers AppendToGatewayUrl, ReplaceGatewayUrl and RequestPersistentHeader are handled automatically by the Red5 remoting client. Some methods may take a rather long time on the called server to complete, so it's better to perform the call asynchronously to avoid blocking a thread in Red5. Therefore an object that implements the interface IRemotingCallback http://dl.fancycode.com/red5/api/org/red5/server/net/remoting/IRemotingCallback.html must be passed as additional parameter:
Streams TODO: How can streams be accessed from an application?
red5-1.0~svn4374.orig-doc/reference/src/en-US/getting-started/frequently_asked_questions.xml0000644000175000017500000006752411561764617032074 0ustar drazzibdrazzib Frequently Asked Questions The best way you can help make this FAQ more useful is by asking questions: either in any of the places above, or by leaving your questions in the comments below. Bugs and requests for new features can be submitted to Trac Ideas for new features can be talked about on the mailinglist
Questions
General What is Red5? What does Red5 stand for? Is there a migration guide from FMS to Red5? applications? How do I create new applications? What are configuration files? Is there a mailing list? What is the mailing list etiquette? (TODO) What Ports does Red5 use? How can I help? I'm interested in helping the project. How can I help? Who is on the Red5 Team? Are there any benchmarks? (TODO)
Documentation Where is the official documentation? Can I get the documentation in PDF format? Where can I find the latest javadocs?
Configuration How to disable Socket policy checking for 443 (RTMPS and HTTPS)?
Streaming How do I stream to/from custom directories? How to detect the end of recording? How can I record RTMP streams from Red5? Does Red5 support multicast streaming? Can Red5 stream using UDP?
Codecs What Codecs does Red5 Support? What is RTMFP and when will it be available in Red5?
Database What databases are supported? Can I use Hibernate with Red5?
Scripting What scripting languages are available? Does Red5 support Actionscript 1? Does Red5 support Actionscript 3?
Shared Objects How do you setup a Remote SharedObject? How can I make a Remote SharedObject persistant on the server? What are remote SharedObject slots?
Legal Licence Information Is Red5 Legal? Codec Licenses (TODO) Third Party Licenses (TODO)
Red5 WAR version Is there any documentation on the Red5 war version?
Misc Is there an IRC channel? Are there forums? Are there any frameworks that I can start with? What is Paperworld3D? What is Jedai? Are there free tools (TODO) Are there development tools? there video tutorials Are there video tutorials (TODO) Are there any examples on the web? Is there professional support? Are there hosting solutions? What Red5 groups can I join?
Troubleshooting Why am I receiving "closing due to long handshake?
Answers
General
What is Red5? Red5 is an open source Flash RTMP server written in Java that supports: Streaming Audio/Video (FLV and MP3) Recording Client Streams (FLV only) Shared Objects Live Stream Publishing Remoting
What does Red5 stand for? Originally referenced to Star Wars.&nbsp; Red5 was the "one who did the impossible".&nbsp;
Is there a migration guide from FMS to Red5? Yes: Migration Guide
How do I create new applications? Creating New Applications
What are configuration files? see: Configuration Files In Red5
Is there a mailing list? Check the mailing list page.
What Ports does Red5 use? http.port=5080 // tomcat or jetty servlet container rtmp.port=1935 // traditional rtmp rtmpt.port=8088 // rtmp tunneled over http mrtmp.port=9035 // used with an edge/origin setup proxy.source_port=1936 // used to debug These default ports can be changed in "RED5_HOME]\conf\red5.properties" Additionally, most users only forward port 1935 and 5080
I'm interested in helping the project. How can I help? You can create a new Trac ticket for any contributions you want to make, attach the files there or link it. Make sure you signup on the mailinglist as well..
Documentation
Where is the official documentation?
Can I get the documentation in PDF format? \
Where can I find the latest javadocs? http://api.red5.nl
Configuration
How to disable Socket policy checking for 443 (rtmps and https)? You can change the port to something over 1024 like 8443 or comment out the RTMPS section.
Streaming
How do I stream to/from custom directories? Customize Stream Paths
How to detect the end of recording ? See the API docs.
How can I record RTMP streams from Red5? See: http://ptrthomas.wordpress.com/2008/04/19/how-to-record-rtmp-flash-video-streams-using-red5
Does Red5 support multicast streaming? It should be noted that multicasting support is not available in the Flash Player. For that reason, no media server can deliver a multi-casting solution to the Flash Player. In addition, many networks have multicasting turned off so it may not be realiable for other platforms either such as Windows Media Player. These solutions usually fall back to unicasting when clients cannot receive muliticasted media. In regards to Unicasting, Red5 already has this functionality. In addition, we have an edge-origin solution sometimes referred to as stream-reapeating.
Can Red5 stream using UDP? No. Even though Java can stream using UDP, the Flash Player can not receive data sent using UDP.
Codecs
What Codecs does Red5 Support? Video codecs: ScreenVideo On2 VP6 Sorenson H.263 H264 Audio codecs: ADPCM NellyMoser MP3 Speex AAC
What is RTMFP and when will it be available in Red5? RTMFP stands for "RTMFP (Real Time Media Flow Protocol". You can read more about it in the release notes. Just search the following page. To understand what this protocol is and does, read the following FAQ. Red5 does not support RTMFP. At the moment, there isn't enough exposure to RTMFP and discussion can resume once it is released and more is known about the protocol.
Database
What databases are supported? Red5 is built with Java. So any database that has a JDBC driver will work.
Can I use Hibernate with Red5?
Scripting
What scripting languages are available? Scripting support (JavaScript, Groovy, Beanshell, JRuby, Jython)
Does Red5 support Actionscript 1? Not yet, but there is development in this area and proof of concepts have been presented at conferences.
Does Red5 support Actionscript 3? Not yet, but there is development in this area and proof of concepts have viewed by Red5 team members.
Shared Objects
How do you setup a Remote SharedObject? see: http://livedocs.adobe.com/fms/2/docs/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00000607.html
Legal
Licence Information http://www.opensource.org/licenses/lgpl-license.php For an easier explanation, please see:
Is Red5 Legal? Please read our response: http://osflash.org/red5/fud
Red5 WAR version
Is there any documentation on the Red5 war version? read: Deploying To Tomcat
Misc
Is there an IRC channel? Yes: #red5 on irc.freenode.net Flash non-IRC based chat: http://red5.newviewnetworks.com/iChatBar2/#
Are there any examples on the web? Below is a list of applications that use Red5. http://www.snappmx.com/ a Rapid Application Development System that supports the creation of Red5 applications. http://code.google.com/p/openmeetings by Sebastian Wagner. http://www.dokeos.com videconf module by Sebastian Wagner. http://spreed.com http://www.videokent.com/videochat.php http://www.weekee.tv an online video editing site by Weekee team. http://blipback.com BlipBack is a video comment widget that you can embed on any number of social network sites or blogs you]have. Blipback lets you or your friends record short video comments directly to your page. http://artemis.effectiveui.com Bridge AIR applications to the Java runtime. http://jooce.com Jooce is your very own, private online desktop - with public file sharing capabilities. A highly-secure, on]ine space to keep, view, listen to - and instantly share with friends - all your files, photos,music and video. http://facebook.com/video Video uploading/recording/messaging system that allows you to record a video on the upload page or]send a private message to another user and attach a video. http://www.f-ab.net F-ab is a simple browser for Flash movies. F-ab has "FLVPhone", which is a video conferencing telephone ]sing the Flash movie. Red5 is embedded in F-ab to communicate with the remote FLVPhone. Streaming video chat software script is a RED5 based system that allows you to build comprehensive pay per minute / pay per view video chat site. http://pixelquote.com Huge Pixelwall where visitors can simply add Pixels with their Messages - by Simon Kusterer. http://nonoba.com/chris/fridge-magnets Classical fridge magnet toy. http://www.quarterlife.com Video blogging http://www.avchat.net Red5 Flash Audio/Video Chat Software http://www.avchat.net/fms-bandwidth-checker.php Red5 bandwidth checker with upload/download and latency tests http://www.justepourrire-nantes.fr Red5 Flash Video streaming http://www.nielsenaa.com/TV/tv.php Red5 Flash Php/MySql/Ajax driven scheduled & streamed multi channel TV - VOD http://www.videoflashchat.com VideoFlashChat - Red5 version for Web Based Video Chat http://www.videogirls.biz VideoGirls BiZ - Red5 version for Pay Per View Video Chat Software http://www.ligachannel.com Ligachannel.com - Italian singer site. Red5 used for VOD Protected Streaming and audio/video reco]ding widgets http://www.sticko.com/ Video portal with widgets for popular social networking sites http://www.zingaya.jp/ VOIP server built on Red5 for Flashphone http://www.gchats.com/red5chat/visichat/ Visichat, flash video and audio chat with red5 http://www.agileagenda.com/ The AgileAgenda web service was written with Red5 http://www.videoondemandsoftware.com RED5 based Video on demand HD-TV quality pay per view/minutes software http://www.videochatsoftware.org Flash red5 video chat software http://www.hubbabubba.com/ HubbaBubba world http://www.deltastrike.org/ DeltaStrike - free online realtime multiplayer strategy game
Is there any professional support? Companies Listed: Infrared5 ( www.infrared5.com) Red5Server ( http://www.red5server.com)
Are there hosting solutions? Red5Server ( http://www.red5server.com)
Are there forums? see: http://red5server.com/forum/
What is Jedai? see: http://jedai.googlecode.com
Are there any frameworks that I can start with? see: http://jedai.googlecode.com see: http://paperworld3d.googlecode.com
Are there development tools? See http://trac.red5.org/wiki/Red5Plugin
What is Paperworld3D ? See http://www.paperworld3d.org
What Red5 groups can I join? Linked in Red5 group
Troubleshooting
Why am I receiving "closing due to long handshake? issue: Closing RTMPMinaConnection from [IP_ADDRESS] : 2610 to [IP_ADDRESS] (in: 3415 out 3212 ), with id 512231886 due to long handshake solution: Have you installed the example your trying to connect to? The examples are installed on demand starting with Red5 0.8. Just check the welcome page http://localhost:5080/ and look for a link that allows you to install them. After an example is installed, you should be able to run the examples. Note: We are improving this so that if an example is chosen, it will be installed.
red5-1.0~svn4374.orig-doc/reference/src/en-US/getting-started/building.xml0000644000175000017500000004504511561341421026164 0ustar drazzibdrazzib Building Red5
Build Environment Setup
Ant Apache Ant 1.7 and above is required for building the Red5 project source code. download here http://archive.apache.org/dist/ant/binaries/ The path to the ant binary must be on your system PATH environment variable (test by typing ant -version at a system prompt) defined, typically PATH=$PATH:/usr/local/ant You can check this on windows by typing set PATH or on unix by typing echo $PATH
Java Java 1.5 or 1.6 and above is required for running ant, compiling the source and running the Red5 server. Download Java 5 http://java.sun.com/j2se/1.5.0/download.html Download Java 6 http://java.sun.com/j2se/1.6.0/download.html You must have the environment variables for JAVA_HOME and JAVA_VERSION defined, typically JAVA_HOME=C:\development\j2sdk\1.5.0_07 JAVA_VERSION=1.5 You can check this on windows by typing set JAVA_HOME or on unix by typing $ echo $JAVA_HOME
Red5 You must have the environment variables for RED5_HOME defined, typically RED5_HOME=/www/red5_server FAILURE TO SETUP YOUR ENVIRONMENT VARIABLES WILL PREVENT YOUR FROM BEING ABLE TO BUILD PROPERLY You don't need netbeans or eclipse unless you need an IDE for java. Download Netbeans Download Eclipse
Building
Getting Red5 Source The Red5 source code is available at the google code project page and svn repository. With your favourite SVN client check out the source code from svn at this address http://red5.googlecode.com/svn/java/server/trunk/ or https://red5.googlecode.com/svn/java/server/trunk/ if you have a google code login. Team members will be added to the google code project group and in your google code login you will find the svn password for committing changes at this address http://code.google.com/hosting/settings.
Getting Red5 Demo Applications Source With your favourite SVN client check out the source code from svn at this address http://red5.googlecode.com/svn/java/example/trunk/ or https://red5.googlecode.com/svn/java/example/trunk/ if you have a google code login.
Getting Red5 Flash Demo Source With your favourite SVN client check out the source code from svn at this address http://red5.googlecode.com/svn/flash/trunk/ or https://red5.googlecode.com/svn/flash/trunk/ if you have a google code login.
Running the ant build To build the red5 source simply run the following command from the command line inside the red5 source directory. $ ant dist
Current Ant Targets all - Runs clean, prepare, compile, jar, javadoc targets bootstrap - Compile and start the server using the bootstrap class checkout - checks out the Red5 server source (requires svnant.jar) checkout-all - checks out the entire Red5 project sources from the root level to a specified directory clean - cleans up all the files and directories compile - Compiles Red5 compile_core - Build Red5 server sources and downloads java 6 dependancies compile_core_compatibility - Build Red5 server sources and downloads java 5 dependancies compile_demos - Copies over the root and installer webapp compile_script - Compiles scripting sources compile_tests - Compiles junit test classes compile_war - Compiles Red5 into a war distribution console - launches a non-SSL jconsole for managing Red5 in JMX. console-ssl - launches a SSL jconsole for managing Red5 in JMX with SSL enabled. doc-all - Generate docbook documentation for html-single, multi html and pdf. doc-clean - Cleans the docbook files. doc-html - Compile reference documentation to chunked html. doc-htmlsingle - Compile reference documentation to single html. doc-pdf - Compile reference documentation to pdf. doc-prepare - Extra preparation for the documentation. dist - Make Binary distribution. dist-archive - Create archive file for distribution. dist-cluster - Create Edge/Origin distribution. dist-debian - Create Debian package. dist-edge - Builds a Red5 edge distribution. dist-origin - Builds a Red5 origin distribution. dist-installer - Make Installer distribution. dist-macosx - Create Mac OSX installer. dist-windows - Create Windows installer. dist-redhat - Create Redhat installer. ivyclear - Clears out the Ivy cache. jar-determine-classpath - Determine classpath for jar file. jar - Make Archive. javadoc - Generate JavaDoc. java6.check - Checks for Java 6. prepare - Prepares for building Red5. server - Compile and start the server. shutdown - Shuts down the running Red5 instance. udp_server - Compile and start experimental UDP server. run-tests - Run JUnit tests and generate HTML reports. run-tests-systemtest - Runs some end-to-end system tests against a test server using a flash client. run-tests-server - Run the selftest server. svn-add - Add files to svn. remotejar - Creates a jar that may be deployed with remote applications. retrieve - Retrieves the libraries if needed. rtmps_keystore - Creates the keystore file in the conf directory required by RTMPS. truststore - Creates a duplicate keystore file and generates a truststore file for jconsole SSL connections. upload-snapshot - Uploads a snapshot of Red5 to the repository. war_demos - Build wars for demo apps. webwar - Make Web Archive.
Ant and Ivy When cleaning the dependancy libraries using and ant ivy with the following command $ ant ivyclear It is required to run the rebuild of Red5 in a particular way to make sure ivy retrieved the libraries correctly. $ ant -Divy.conf.name="java6, eclipse" dist
How to build with eclipse This guide assumes eclipse 3.1.0 and you have downloaded the entire red5 build from the subversion repository at https://red5.googlecode.com/svn/java/server/trunk
Recommended Eclipse Plugins The following plugins are recommended or required for building red5 in eclipse. IvyIDE - http://ant.apache.org/ivy/ivyde/download.cgi. See here for installation / update instructions Spring IDE - http://springide.org/project/wiki Subclipse SVN Plugin - http://subclipse.tigris.org/
Importing the Red5 Project There are two ways to import the Red5 project. Either import an already downloaded working copy of the Red5 project or import the project directly from SVN. Import the checked out working copy. Start Eclipse. Begin to import project File Import In the Import dialog box select the item Existing Projects into Workspace and hit next. Hit the browse button next to the Select root directory text box. Select the root folder where you downloaded the red5 repository,(e.g. c:\projects \osflash\red5 or /www/red5_server) and hit ok. Make sure red5 is selected in the projects area and hit Finish. Eclipse should automatically build the project, you can force a build from the menu Project Build Project Import the project working copy from SVN. (Subclipse must be installed). Begin to import project File Import In the Import dialog box select SVN and then select the item Checkout Projects from SVN and hit next. A list of available SVN urls will be available, if it is not available select Create a new repository location click Next and enter. http://red5.googlecode.com/svn/java/server/trunk or.\ https://red5.googlecode.com/svn/java/server/trunk if you have a google code login. Click Finish. Eclipse should automatically build the project, you can force a build from the menu Project Build Project
Updating the Red5 source from Eclipse. Updating the Red5 source from trunk. In eclipse right click the Red5 source project. Locate to Team Update The source will be updated from SVN. Right click the Red5 project and select Refresh. The project should also be cleaned after each update, by the following Project Clean
Debugging Red5 in Eclipse. Click the arrow next to the icon menu and then click Debug Configurations. Click Java Application in the menu then right click and New. Type a name for the debug configuration (ie Red) and type org.red5.server.Bootstrap as the main class. Select the Arguments tab. In the Program Arguments enter -Dlogback.ContextSelector=org.red5.logging.LoggingContextSelector -Dcatalina.useNaming=true -Djava.security.debug=failure In the VM Arguments enter -cp ./conf In OSX with JDK 5 and JDK6 to specify JDK6 the PATH variable has to be set. Goto the Environment Tab, add a new variable called PATH, and place this in there. /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home/bin Click Apply and Close. Goto the build configure path dialog Build Path Configure Build Path In the Source tab choose Add Folder and select the src/conf directory. Make sure "Allow output folders for source folders" is selected. Under red5_server/src/conf, select Output Folder and choose Edit. Select Specific Output Folder, select the root directory and choose "create new folder" and choose "conf". Select conf, the output folder for the Red5 configs will now be placed into red5_server/conf. With the imported red5 project selected click the debug icon and it will launch the server. Console logging will appear in the console window. If you get an error in the console like: java.net.BindException: Address already in use: bind at sun.nio.ch.Net.bind(Native Method) at sun.nio.ch.ServerSocketChannelImpl.bind(Unknown Source) at sun.nio.ch.ServerSocketAdaptor.bind(Unknown Source) at org.apache.mina.io.socket.SocketAcceptor.registerNew(SocketAcceptor.java:362) at org.apache.mina.io.socket.SocketAcceptor.access$800(SocketAcceptor.java:46) at org.apache.mina.io.socket.SocketAcceptor$Worker.run(SocketAcceptor.java:238) Exception in thread "main" Then the socket red5 wants to run is in use, you can change the socket port in the property rtmp.port in the property file red5.properties.
Ant, Ivy and Eclipse When cleaning the dependancy libraries using ant and ivy with the following command $ ant ivyclear It is required to run the rebuild of Red5 in a particular way to make sure ivy retrieved the libraries correctly. $ ant -Divy.conf.name="java6, eclipse" dist Then back in eclipse right click the ivy.xml in the project and click Refresh it will also resolve the libraries in Eclipse.
red5-1.0~svn4374.orig-doc/reference/src/en-US/getting-started/releasing.xml0000644000175000017500000000231111561341421026325 0ustar drazzibdrazzib Releasing Red5 This document describes the steps necessary to create a new release of Red5: Make sure everything has been committed to the trunk or correct branch. Update the file doc/changelog.txt with informations about the new release. Create tags of the modules that are linked into the main code tree:
documentation at http://red5.googlecode.com/svn/doc/tags Tags for versions should always be the version string with dots replaced by underscores, e.g. version "1.2.3" becomes tag "1_2_3".
If you would tag the documentation folder for version "1.2.3", you would use the url http://red5.googlecode.com/svn/doc/tags/1_2_3
red5-1.0~svn4374.orig-doc/reference/src/en-US/getting-started/libraries.xml0000644000175000017500000000553311561341421026341 0ustar drazzibdrazzib Red5 Libraries
Spring scripting support http://www.mozilla.org/rhino/ http://static.springframework.org/spring/docs/2.0.2/reference/dynamic-language.html#dynamic spring-support.jar
Groovy http://groovy.codehaus.org/ asm-2.2.2.jar antlr-2.7.6.jar groovy-1.0.jar
Beanshell http://www.beanshell.org/ bsh-2.0b5.jar cglib-nodep-2.1_3.jar
Ruby http://jruby.codehaus.org/ jruby.jar cglib-nodep-2.1_3.jar
Jython / Python http://www.jython.org/Project/index.html jython.jar
Java 5 Libraries The following are need for Java 5 only:
Script related JSR's jsr-223-1.0-pr.jar jsr173_1.0_api.jar
Javascript / Rhino http://www.mozilla.org/rhino/ js.jar xbean.jar - needed for E4X
red5-1.0~svn4374.orig-doc/reference/src/en-US/getting-started/system_requirements.xml0000644000175000017500000000524511561341421030514 0ustar drazzibdrazzib Recommended System Requirements The following are suggested system requirements: Red5 System Requirements Supported operating systems Windows 2000 Server Windows 2003 Server, Standard Edition Linux Variants Mac OSX 10.4 and above Minimum Hardware Requirements (Development / Budget / Low Traffic) X86-compatible CPU (Pentium 4, 3.2 GHz or better, Intel Duo Core 2, PentiumD) 1 GB Available Memory 100MB or 1GB Ethernet card 200 MB of available disk space (SATA II) Recommended Hardware Requirements (High Traffic Production) Dual-core / Quad Core (Intel XEON 2Ghz and above, Opteron 2Ghz and above) 2 - 4 GB Available memory or above 1GB Ethernet Card with big pipe network 200 MB of available disk space (10K RPM and above SATA II \ SCSI RAID 1-5) Network Storage Cluster Solution for mass content storage (ie Isolon, Dell MD1000) Software Requirements Java JRE 1.5 or 1.6 Service Scripts (Java Service Wrapper, FireDaemon Pro)
Java Memory Tweaking http://www.peuss.de/node/67 http://andrigoss.blogspot.com/2008/02/jvm-performance-tuning.html http://java.sun.com/javase/technologies/hotspot/largememory.jsp
red5-1.0~svn4374.orig-doc/reference/src/en-US/getting_started.xml0000644000175000017500000000307211561341421024443 0ustar drazzibdrazzib Getting Started Red5 intro here red5-1.0~svn4374.orig-doc/reference/src/en-US/author_group.xml0000644000175000017500000000220211561341421023764 0ustar drazzibdrazzib Steven Gong steven.gong@gmail.com Paul Gregoire mondain@gmail.com Daniel Rossi electroteque@gmail.com red5-1.0~svn4374.orig-doc/reference/src/en-US/images/0000755000175000017500000000000011760512605022002 5ustar drazzibdrazzibred5-1.0~svn4374.orig-doc/reference/src/en-US/images/logo.jpg0000644000175000017500000023776711561341421023465 0ustar drazzibdrazzibJFIFdd kExifMM*bj(1r2iB@'B@'Adobe Photoshop CS3 Macintosh2008:07:19 14:57:37&(. 5HHJFIFHH Adobe_CMAdobed            k" ?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IOTI%)$IJI$RI$I%)$IJI$RI$I%)$IOTI%)$IJI$RI$I%)$IJI$RI$I%)$IOTI%)$IJIs_\~Wgu LvXcw{+lz|X|I=WI)񭓇#)`9ѐ^,'\oVWSfCy>EU㇨eVemu]LIeQ}XoOͮ>sҶf7q?eMW/ޕZZ[Xicmg蠟_[:gK]4>zf 69i~1~ͯu/?Y>}[#:v58x9{wӎGwZtsnG.a;"]4ǭ}o}'%u`t&zDncD2m~As}~3XnaćTc>=z=_Uomp3ns#ԺF#g/w^,:,F~LUӱ5r 5~m_9qŖq.St};?4to]Ps0[vrk߿fӱ]z 󾮿/?b[[e-]Nf]q~)~*=\|]c7?Zҭ6[;mlgWe?k9'`l0H&$xRI$V)$IOTI%)$IO/(Uӗ}~ȷ`Xi-dj_/ٿWzWMs]]Nsv{:r?youzFc*kwX>^MP>C-i&T6~ֶ_o?xS<\[Q[굔^][Z6cEnBtd.w}|_Vz9]&dT|h{ˎG٪ w~gvՙ[`O~{Yeݻ}]M%: p>޽sZ3kO}@I߲oE}xs+3]z]}muq)3/DȤ}WIN~WLW8X8ӎi 7Nm{gMU>atz^o{1i}nzmI,^z:m{I{so:wQ^'>f'렧}oN>MG]kufcos/s}VV]V%/Mq@oyy~Ybc<1$#ޡ}v>H{߶kgo?hO4Cg[=]ʕyWwQpm[kGzUߛّe2z7ߙGU궜ƲKj )Y첵&!"[>%<33K{DQ8$R4ԒI$TI%)$Z8[3$IJIGswl'l I)I$JRJ\7@Jq:/fiu=JE]G #ico#~kϨXԙhuNCf#=mwl~_kXv0`;k䷷pdPS>tO"U۵ٯ^Ɵ^3!׸f,I$$I)I$JTI%"eb]'mc1#۪X˱ YhCic BosqSM̉k"Y/a,:~z^ϥ e4ݠ5՞?{+U4>?GJHs̖[{Iphk2nV1gkpIenvݳ-S@,:@VY^֍wzI9;\^۹>ma\I%9cCݺeRvohȖBʟ߳JsSos^RN;=p^Osr[}isXѴ com.apple.print.PageFormat.PMHorizontalRes com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMHorizontalRes 72 com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMOrientation com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMOrientation 1 com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMScaling com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMScaling 1 com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalRes com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalRes 72 com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalScaling com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalScaling 1 com.apple.print.ticket.stateFlag 0 com.apple.print.subTicket.paper_info_ticket PMPPDPaperCodeName com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray PMPPDPaperCodeName A4 com.apple.print.ticket.stateFlag 0 PMTiogaPaperName com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray PMTiogaPaperName iso-a4 com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMAdjustedPageRect com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPageRect 0.0 0.0 783 559 com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMAdjustedPaperRect com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPaperRect -18 -18 824 577 com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMPaperName com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMPaperName iso-a4 com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMUnadjustedPageRect com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPageRect 0.0 0.0 783 559 com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMUnadjustedPaperRect com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPaperRect -18 -18 824 577 com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.ppd.PMPaperName com.apple.print.ticket.creator com.apple.jobticket com.apple.print.ticket.itemArray com.apple.print.PaperInfo.ppd.PMPaperName A4 com.apple.print.ticket.stateFlag 0 com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.type com.apple.print.PaperInfoTicket com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.type com.apple.print.PageFormatTicket 8BIMdd8BIM&?8BIM 8BIM8BIM 8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM8BIM 8BIM08BIM-8BIM@@8BIM8BIM=logonullboundsObjcRct1Top longLeftlongBtomlongRghtlongslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongRghtlongurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM( ?8BIM8BIM8BIM QkȠ 5JFIFHH Adobe_CMAdobed            k" ?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TI%)$IJI$RI$I%)$IJI$RI$I%)$IOTI%)$IJI$RI$I%)$IJI$RI$I%)$IOTI%)$IJI$RI$I%)$IJI$RI$I%)$IOTI%)$IJIs_\~Wgu LvXcw{+lz|X|I=WI)񭓇#)`9ѐ^,'\oVWSfCy>EU㇨eVemu]LIeQ}XoOͮ>sҶf7q?eMW/ޕZZ[Xicmg蠟_[:gK]4>zf 69i~1~ͯu/?Y>}[#:v58x9{wӎGwZtsnG.a;"]4ǭ}o}'%u`t&zDncD2m~As}~3XnaćTc>=z=_Uomp3ns#ԺF#g/w^,:,F~LUӱ5r 5~m_9qŖq.St};?4to]Ps0[vrk߿fӱ]z 󾮿/?b[[e-]Nf]q~)~*=\|]c7?Zҭ6[;mlgWe?k9'`l0H&$xRI$V)$IOTI%)$IO/(Uӗ}~ȷ`Xi-dj_/ٿWzWMs]]Nsv{:r?youzFc*kwX>^MP>C-i&T6~ֶ_o?xS<\[Q[굔^][Z6cEnBtd.w}|_Vz9]&dT|h{ˎG٪ w~gvՙ[`O~{Yeݻ}]M%: p>޽sZ3kO}@I߲oE}xs+3]z]}muq)3/DȤ}WIN~WLW8X8ӎi 7Nm{gMU>atz^o{1i}nzmI,^z:m{I{so:wQ^'>f'렧}oN>MG]kufcos/s}VV]V%/Mq@oyy~Ybc<1$#ޡ}v>H{߶kgo?hO4Cg[=]ʕyWwQpm[kGzUߛّe2z7ߙGU궜ƲKj )Y첵&!"[>%<33K{DQ8$R4ԒI$TI%)$Z8[3$IJIGswl'l I)I$JRJ\7@Jq:/fiu=JE]G #ico#~kϨXԙhuNCf#=mwl~_kXv0`;k䷷pdPS>tO"U۵ٯ^Ɵ^3!׸f,I$$I)I$JTI%"eb]'mc1#۪X˱ YhCic BosqSM̉k"Y/a,:~z^ϥ e4ݠ5՞?{+U4>?GJHs̖[{Iphk2nV1gkpIenvݳ-S@,:@VY^֍wzI9;\^۹>ma\I%9cCݺeRvohȖBʟ߳JsSos^RN;=p^Osr[}isXѴFStsVlLsObjcnullFsIDlongAFrmlongFsFrVlLslong@LCntlong8BIMRoll8BIMmfri8BIMhttp://ns.adobe.com/xap/1.0/ Adobed@^     u!"1A2# QBa$3Rqb%C&4r 5'S6DTsEF7Gc(UVWdte)8fu*9:HIJXYZghijvwxyzm!1"AQ2aqB#Rb3 $Cr4%ScD&5T6Ed' sFtUeuV7)(GWf8vgwHXhx9IYiy*:JZjz ?ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u0OomGf^>~=ûqg0};aQrmGOX(# O[^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~O|%OtBݝSgky?-ALVs=ruQDi'MJ}׺/_[ hX: ]?7/.l~섢r96BDWu?'T 𵟞S4[{w!gn.2# fLe ~WV<-]x_b*^²Lέ>M՛%U+d1lGDh7O='{Gpn?}9<u]ŏ8hؼcEU Vٲɸe X;ZcbfiXMPz֓$ /Z5Vx:/?{⊻qt`nPo-u>(;^7#(9jݵy4u=u zR/*q~7Rf|5E]AxM43X?GS/?d1e_udu_brtWcrxʸ+ *jj*Y%$#=u;ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~R) ܕ_~|w[;?{G?ۣn;rm̥v?cJ 1#PƲC<$:V{*^#:GLG ݁eE~[|,>۳ysv m|Bz$|BEJw^{{^׺u{{^9._rnL/oݿg3Baq42||8^6I*&"$gv i7?^g=џ7 *+kzG[M,0J:EWI_uUO-^81M.^A?1>PjU=_J<̵F3oRU^v t;Oc`咝ahh_Q$th'I<~_OŞ[ !# Z&sv`7iT%."LqSt׺K"7~㢡|Q|OSUכ19]6>,N_gܝ)2¢o14O#9JHԪV3ٟyXkW>l|u-@Kٛ#;fWmhմZaILeSoFG j^OX_?m.윞#|\AD }Rj{uɯ+>ȶGݩ[J[K'EǺG[Uw+C&wCT)Cѹ^o,<|tgWE\y%fs%NAbձKY)[z^ԍB3Tnyi6|^޹Yvdb7iL6*,2t=k{uu{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺uߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~R) ܕ_~|q}tp?\6Wu׺u{{^׺ ;ϼOQo]^ QS>. "V8c#d*aj܅}D4KQ4q_* $恹7'Jnuԑczd>S]&.zl+SCiBcYelGS/ֵ2;79Tr`o▛ R5JYS"_E߁?z>F=߽g7qퟎ]aPf v^nGDEKs͗5b$_`^?L{ +G4]XEz ˱pYNԔYzUgVDc0zTZlI|N¬dҌh|sn]|u{F+R5qԵQFyW2&+{=/'cufdu<:7PzƧOڕ݋ٸBIKFi=׺ٟ/ӳGK;s=5\su~Q=m}Q+iuuMV1 ςjxXzߑ[|AG! j ڔl54SDL8Y,rid 3$n鿉͟qQV_!:;y{wc`&LJ6ܲ1u{t9_VAs_~bz}˟mm7hQeY,{f+|eGݬX|3cߺT}h7q+lVW|Z=G]&Nl~~$ﱐ _?~y޻:q-&olL~Si=SUK1uPC"QKS"u'_r+2RVnC?檅nԘ/S,vUx۶Kܒyb׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~R) ܕ_~|q}tp?\6Wu׺u{{^;n;WrMp9mѺ>z fom Lo/xqu,O,8б6׺4i}]]7mOQNڧq]ѹqRTRsjj'Y"S{o7ƥnc-}eG{wt4pzSM:L$бIoIG]Ћ? ׿=u=ō>%/۔3x z)FJ8;-鱔mLonyM\oQgkvo_l=|o+! .ZѪ !,fظ׺ڟz5u?uG_[# ٝopK ̈ <=-*3J-edťY$fcз{{^X/OG7(3~/f^g~{ߺDcĶ N}-M6fvvÚxDupEp> PԋPڹU~0Puk2N>B-ʿ/ c½,ȴJڴ(ݔRF juϟEvGyu6گvW|vciXjX%қ34y܄y`&fԚ{'Obh_hj\^V3&\.YIW?wV4YDUK*H4^|L(%/{|d^׺~Vnߺ^J[?+`e{~?2ۿq׿ҿVm^_l \}uտ[w>׺nͭ>vg>oy4k k{jZ:*cRR-=M5FAQOQSA<2HfE*2 ^W[C-~{+o돿u~Vnߺ^J[?+`e{~?2ۿq׿ҿVm^z*2:GB]X {^׺u{{^)`'fx>29e6>4t䆞5Da({W[C-~{+o돿u~Vnߺ^J[?+`e{~?2ۿq'Œ;?c3vW%WvR ][Rݝe+=%-t3HPO{^{|hѲu8׽u~{ߺ_?W>p&2W5JRg7C};Xiڛ=&:u5T?mǬ-L iMF+n9crdw{եZ%?O/kOE3Gߓ=ћ^!;¯#rv>;۔u5Z*0UP׃?kO_ѳdNk߿׃?kO_׿/?98b:c滗.u+wIl]bmNm(λnSK$*,N }lnQ%x1 : Qr:?/*{Wg4l{uns,sMkIVX Aw ?br4y<^N)15e uJKOWGWO+G,R+$XH|NON)y 9?7hOpsCץuG׳>>=׺?~-„~owFw%.í_{1:[Lfif+F^:*uQmǾMA:[+pٌ|Tා_v?_TR^+pmNJ:%@Otn{^ l,|)7[B`lEhm⡡FaSy8↗;I5{׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽uߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺZ‡?@;?nl [w*([eYE~Jz+}&ۘ k#NVRS׺[ӹzn 5ܛtnLnkpn=#g32LS!Q$+$^ߺ^׽u~{ߺF?C~/|s͹;WHei)vo|4xMS1WyZ*Zh笨{OOw%>gWhm-+54n͋.ŭ6OsCQLhnd"fmԝ4Y9%FO{EEEeDusUUU455K4+4M4YfbI7~{ߺ^׽u~{ߺ[hET-} Bm *1[]畍J:AVgöUsxihJ^} u~{ߺAgvR|oogwݕƒ ǤSBS[VEKGGMՕՓEOOm>nk/YuzVvj٧1<./-. RJ=׺gߺ^׽u~{ߺ^׽tp?\6Wu׺u{Iƾil})ꝏWUyv^zh6Zl^qjzcIe1^E[ϴ7foc~vmoݹڤz7SdhOf.8Eߺ_X?)Ϧ?GݽV\^ʭ'ȯɖ|&bKu)Q2Pf: LVIIsD4G{'PFo}g2K|temm(.8$Ɣ0=FDe !{=u7({CH&z.pnh2:U0=\QsQA /}wYmMiKKSȭllw=2e彦ص?J}S2~ MgsEG<嗭7_F={ߺ^׽u~{ߺFgGXߍr[WWq^⥼ݾ㯦ϼgW[oav޻17v4\[Q`8ʸbڹ Hu?bn,wc!o-͓YUy v*cdUSnK3Jw@}׺)GIXһnWiYb4JMVD'U[Y<tT$ o"up.vnҩ~Zz,W#,%C0 )CWIB)I^8Ꭵ1|;'7pڝqewf{!>W?wnJܦ[+_R-EU]LTYTup{?jۘ<ஊc+rQR$PLO2SӢ (gQ{{G&OnouS}`{ni?^蛵?v׺&Onouݧyۿ}/l#>?kB>#ע5_{uO_-o>oNܔ(&e6c!&&#(y$ŧT9^t~{ߺ_$/Qg˳:O%g\|\GRcrrKޝy[#/ݍQMAP1TM&9Q5uegZ{^i~QS[ zd+[9YEU$ iꩨdxjV#~LDݩ>Ӱ? m׿7jϴw[}uMڟ;@~{vN7qߺPr]u8jcbo,V6U-G"FUuPY,@~#}tp?\6Wu׺u{m0)1̻Df\dQK^! gy"HR=׺K#s~ɉmtڬgY)jQed*n] {u(+uϟ_5?%[=#3}ݑSPUy9Sqrƒv:)^k7vs[G{Kii0[wIdQGPCzB LM^a{TM$r_㧿WLؙwjO{kgq1O,t\+P2,ut-$rƲr?PGނ1,gfW>@fY5JDfAFhA:??O_E7TW(q?_7?y/0d[~ʿ:oW(q?^}?"ݿw׿Uq_}bG;K;L/!{@C?q$?׿_yayȷoON]n77j\U9]pQ\fHF#YeyZ "xhJ0` c7{g;9O9;tIlݶ)+=eXx$hA G% #` + z>s׽uNSw2?MŭGyu+_ < z^մ[o< j^[) ouO[;$~ #nǺw|AQR{&l JVۏn;P b!V|A>~tfonݐHf>mQA)h禖9Xu¨~,o]{fgOPݝ+${OU$UfW_EH\dُ{׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~j VYt/V:ߺ[O!u׽u~{ߺ^/QQ? 4t}s枒9ey_gմVZYJ#5ğu߿zo~vW_~}>u~{ߺ^׽u.swΏ{u"_w*G~ߺ^b0qp}3/M*JH<MQ7]R;;ZIۛ+w~[u{{^׺R+#׺^/_/?l~}=u~{ߺ_R|UwYi0}Q=ة4WX=twVZlPH>׺ۧe` c!Z}hbYQ;mRᦊO5;~nXdMEO#}~ _ދ?}}9A6 U5r>%v덙WV^m~{ߺZ›IOSWܙ3zK9{?^ݽ6]_臚X?O{oݍ֛vw.ڻ jc@l[0 2_5WEAeC`lmwv=p/vf >9g97n^\w鿳[߀y.US.RԽ7: pE+P$K`}ZU7r-2~Q#ɴ?W?͐CwY*ݱ\5Hjk /^?v V/^~H#~iϽ@t/u\=]G>}v^1<%dܹ-6(YlF,R[X"Dt yտz>kq/Eayev-r}[l 9 Ւ{oν;[~mlՏܻ3pwF߮] &<T6wJO;;WFVc4yiDhjhOuIWZE7V:= s9]#,yl?z]5~IWK7[.^׺{UcQHZϐI\:HzR)i"?+O'vNUM"ܚx런uݏN%r'aG)Oy!! vToxz:r19I2q!+PUET;/RFĎ@>܊CJ?פ[[uU. x@u*Hף ~|ߵ]{!*ڦl~ٴ2./gtJ ="F/VUT4'|3޵x7Qz"pQ,IQwj>){][=nJ&bjB:!8@Z}u4~{ߺFC7^7EխZy3{y暷e8[ՊZI&dWeZbJi,}s.7{޴oQxGN ? {x>VOtyNأn^Z9E B@&))h䌲7W}޻F~>sjuĴRZh*HIb⇣OE׽uXzk ;Hq 8ǍcǦw{)b&%]ٸ}XCwH?uT?_mB^C5KR Ͷaj2ϖa0&rѪRV#'~6jݏU쟇=Ik6_7hbDqUKתd)kO_Q~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~j VYt/V:ߺ[O!u׽u~{ߺ^o {p}uu{ﱾH7Uoo)vpyZߐg**c:zwGSo~mAX ǿuAX ǿuAX ǿuAX ǿuAX ǿu;Ϋr>e=n/7_O=?uu=K}|@׺]^׺;jJ/![%ZES HRUFjz$R+*uߺ_gnm^guo׺u{{^H_䯞W^{|hѲu8j{{_9vT{2805^`c6Cr%49 hx՜}׺]f({RJ8ðRA?ʻ~^M$ݛpc> f+% Y4qX;.{z?E_kv'ǿ]?k޹izKպK-O[j)oMO.!i~(4/^O{#s?l??Cv|_ɺqFc({C/-[w62wd 8`0g,՛OVЏ}u OPwtuCo/W:oS?;ww}{_}yl|u OPwtuoc_ɷ7[1?'~ 7\mޛ=AUynf)x Sy*POSsۯ>24O[7t]]c)=>$Rn4Y0No^??km?$SFfWM62na@+ p=׺8(P=<.mvvW@n^~W3;1]j8P42J{uz׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~j VYt/V:ߺ[O!u׽u~{ߺ^o {p}u~{ߺ^׽u~{ߺ^׽u"_w*G~ߺ^俘O'>׺~}G{yտ{^׺u{A!ے{?_{/u;Fߺ^׽u. {6\4cOE6]ك iå|Jl-{RxMw:+6ݽM&B3]vMm\FL:*)cs IA$ӱ)Vݫ G]5!:'I=lCVtmmIu5&_7.οz\& khի\oZxbZi\IŰX>?yAw6[=:__]1F_*8/Ѿ?q$?ZnE''#5U5Dݑ*!Z թK[R+%KtrSԪs V o2CC4&xcFGBY Páe9֠jV]vdl͹F=q>69OEGQ %r^Y2M#33c/YZmY$6* |g99͜c{YIm<,t{;;lcj5z|MChV##e͸dncI }״-[QF*.G5ٝ-(ᣩ(‡%WE*=4Sј{^9{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~j VYt/V:ߺ[O!u׽u~{ߺ^o {p}ui'YoK{|nC=;r\6k9mֻ|=& Ү׺~}G{yտ{^׺u{A!ے{?_{/u;Fߺ^׽utmOB9?{ XR婻fVolVB@([1^sF'Z~\56+5QKM#rnۓRJu8me"j,[{G'&?Uء&~W :eVe6Sxch{u~{ߺ^׽u~{ߺ^;|,[tVR Y \An7xG,갡6i:K{MVg*OŸyroZH-=Uʹ":zXG?EE$=Vn|ࢧĐB =aOMr|iPI Y(dПlu+׽u_诗)??uw!.w0\-{@Gz{Hn`DX%uAԘuX2TK<{s=)u a%Z+jQ=׺CFԁBEs}:Oz赞-רy|z#{!ۛ+w~[u{{^׺R+#׺^/_/?l~}=u~{ߺ_=o[_ĉ|=L{cG83{v3N RI MS$Ư VV) `7 'wVla߻gޱ18O))3jdܛ_)_QP PMu \zn"44(!_];)ZQgmݿ99Rs,~ rMlmCʤ[ĄG4s,": _+"d7il7\u3E}= S`Zz&%W b7&y^Y/^M3l"X3ҋU*YҦs .T6 iK";ƎCiuT}~\Sn/3@eN޵2-ڳ9cK5F?XuӫK,ݡ9 ?*,{Ko[f.pӐO`TAan6Ϟwmﯔy*?m˴c U6nGGR%}7*Fi"2=u^[6?['ϓUmmX}NXӧvz#$U˔Q*rsޛ;Y_FwuX/~E_)>@?q{s}v\5wF~!Տڸ9)8JjXpuO|FPqٜz㷷r)bUܑcjT:Sl,9tUT{u}׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~j VYt/V:ߺ[O!u׽u~{ߺ^o {p}u"ޛߟWߺ_O~{ߺ^׽u~{ߺ^׽u~{ߺ_!T>թ2rQLSCbo1oo\M{}}uzA{ߺV{{^׺unJu8׺8.Ə+ߺ_s~{ߺ^j7GA|X_;mǻzo3ZvBnnzڀɍ' XQQ׺So.USIכ*%O}]dEx#MOQߺ_]??͗۝LilZV&鿓{*{m}D I cyfGS3=׺)o=YG;jm76CmS/UPw|yl=3gT|sd6M] O|nFQ׺;!-OEIQT11̕-וS7Jϸou?;:/m,Ϋ_~C_3%.gZh JM.kw:fv\&DRF^J/ɿA`*ȶWpݙ1"MbTk'd7 $Q`qԚԡo~}v(qM &3:j,~:hU%4P@ߺSu~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽uߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~j VYt/V:ߺ[O!u׽u~{ߺ^ʧ6/WޝzrbcvRoem ה}ef)^zZ=Ɂb3ZJԈ?{ν|Ᵹ۽g&Gbu\smu\vP,$۹0G"2KCB$"3uߺ[|RG2?zR`~1K:}[s;\E5UU\mPvXxR-ф?_M׺Io|׿2O<{uA6=tY~cO=O0_izøq86=c0{:<63;/7GG1m"$0^]~共b1[_amlR|\]f_"mٛksnlĴQM$8y 4n{wu{{^׺¸?OǾ_;{btM( Cd#}Q1MI%\ɮ5ܱU%FQ}׺?E7_qKs{{/ǴTw+*?(wVO6*㪦^13.>utfov[C ˻0%)S<<ڪ()*(r(kuvAܗƿ;/W3 ojnDIJ4*ȵ6xfHяvK#'ܛwnd;aM'6>|kHEgQ-F[oU%L+U..Ckx k7l^" "ESB#~,xasZl/dXPr\/nw!M<& _{ߺ^׽ue( IDaFYGQgIUMXIIQXI $I8;Mw/g3^:ǽxq==D fႾGe+j)r>۽{,[al}ׇSlnXe{MO-46Wdjt~hqsqu.ʼ>Pw^ 2rWRRdkBd7&\S6 SDDx =׺/|_.{>Jwwvqn 6? i+l5-63BbRAM@^ zRU? ;lTaV&康)L.i)gT]+sp|RJĸc>׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺uߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~j VYt/V:ߺ[O!u׽u~{ߺ^tY;>lt~[p}֎H19zx ZZlnOSz`>I1J'm,|&'ْ<ssTKޑQ krJD}uc(g`bQ8 -SD!j>P׿u{{^׺u{{^׺u`BȤ0\_̪'S|ne6kEvɦϵۖ6XmHniY((eZUU^ϳb>0czlzvؙ6ulzcۻ%Q!4LrIO^Y~{ߺ^׽u~{ߺ^׽te>$D6/wRO%&.07n۟ Nx8dV88\}jFԒSʎd@*ݫxܬ"Q檢J:Juߺ^׽u~S򃥻/xm~y=IHhMN+9*m};GWSUO$s_Jn-:7{Ue{c;dTf))q= ?c +W}]+G…{+an/ǎvO ۹l$-ncy|yf[buu=:Ը!z>nĿ:gŽgm8z#=/鍡ca +re-'K ?.|]Z*zL6Ajl]6ev5Frd3TmajT^j6ۘ]7.[Grcwum\;p*<<.sSYcPh%7}t o5Ugl|.U$G=7 ;7&:$#ygb͹lHFE{p[ŴM0[ܥ8V6h俒=eWp7J(qCE璱>{S1f5زk?(X{+F<6YyvsT' |VWߟ'ewV6?ܝ cm'SM龱8 3w܆ ~?ˑK%C1j7`?_sOɯim|]Tt3w]'dQA{3B8 ʭB/!?Ғga*ݿo什[5WIMZB_ŌƟ$Gu?Z.^el Pdqde16sL{=c䙴[[XE'`*38ǽ>H z//n"\։4H+"(i\W#=ѲzgbR-RQnL寤5R`VעJͽL~*ǦuuvIL3;_&~YUN#Ekg)IYr’lN1f sI>[_av/Z\% auk@|'Jw+Bd;n~Rl'Y~zn=$nMmU\q$'y+@<"=׺#?#7c.\|wyo$., Bafr=Erщho{9J#% %T}*}u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ_ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~~43 2{{C zm*nU7jo]'GD * 4o{T@&Gw׺6<_{}(~:m>vvWt#[s#kS$%arr=uy^׺u{{^׺u^}=ܛmOWnoMegRMє(4u^\ʏHiy=GK,tZ$vtꪚS,HT LuMwl[=u;6=l׿PK|ܘ04[TFExLF)ʾ-U^d4!hgK$hGT@&Gw׺{^wm+{g{!ɷxgu@&Gw׺{^wm+{g{!ɷxgu@&Gw׺,-ľ]_C!td! `)Apz Qb0A<"5,Xu{{^׺u{3W};_`JfHFGUG]}2m=Z>ڲ I)zY_uI(R[M9ɻ7%n?~GS=h窓avE=gxjiUOQywrWךw_WE]NN4NŸSRU,SS$^}11O ڎx/xFgle㡭^8pIy`ܻ/"y#zI_u&{/vgJZÚC!7ezUs4RCi1FLeJ^{? cqw9;.޴Ux8u]gNG \Q )]ޝJ:OVK's/ƽV*ϽZjru/OO?5qzkeJ[o Ae_E^1 uF{CVvt)jeȜV]]IijM*uqʞ ?41]Cgp3ߒ4_kd\ Pufs?_gyQ3 i-_~7 m̟C0(Cm?/)i6bIwxw fh82(==U~1U׺Oot.G[;pH>NmL*HE6.ؤ`n>a4JfOui?,cj|`=]bno!̸ͼJlxZ5f{xK]ҏom`|f[koc( A`xllN8UTǿu{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺAptU]ӝٰ6hv˄zb)s{{9dJ*u)jb)SGUs$sF|g$+%;_]_#Wf2_7Vj3ۻ7=asCG[vGd)1BKuV=]a;4Y^ۋ,sƵT5cs{5+ux,m{ªĊL. ~a-ie6K3tظCb ]u*Kj&hbp}׺ٻ-K+AnIayY}iI]Vh*m鴒W{L?䅻4zEN3wt]iP> u-E'D ʱ{9K;igwy}}>J2ޏdvfb[v>,jy䥪Q( @^?M _'w?k)cg|/Xt_sVO#xigl{+hUIR6<$o{^A q<+-ݹ2nō%wn'ih(Oֽe[2gcN*j3-M=):/:i:( [a'](#LߊKP=׺#|==[soz-/T<IvNI/_R-`}׺''JIEmo>?8vU1Ud{=94`*|uu{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺uߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u_7'?OaihZtT.SÁ6+wÍc0UQeVP-{A]$g>Xffʬxb=Sgu q̺@1Vv^_^:-*4=K\cVykC1> !``{u]ۣb2-|>CMea)LqM RlљceYy!r>׺oď8}:rVޗ}ѐػ4 hnlnJ Yc`edHQ?'%HO_){Wҫx{o`>Hznjǿug$DSo:I_'ݝ>XL9ȫ c*Vߺ[*|4a|1ꪜf=IQTf?EыRpN|~iw wYXXt̶B[-:} ov_\B[w'ZucMI]j,9\_6B@avacNC't?;7dKKo }mOQ.ˀa\HjyUȊ{0$Px0GNu{{^׺u{{^׺u{{^׺u{{:H jj"5F,ž5 RceI7=cgGMKuvNa6^gQ]+39,>N׫L+c@#E-K*SMs^x}>{{ywW\nM۽˓ RmH2ëlmhn\ŧ#f FC#;i UO*kB[ O v*HԌfocvsdvrqKWBGDԲꥮІArR m*xdEt5Sҟ޺^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ_ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺEGyδ<2P-dU]ӭ&c2Sn*SFFCѕXxϸBuL]\>GEW=GݝaE.NO.+rٚ,n!AI#XVfu1-s<_.['dzx`lBFUd+Jz*c<+*$T%A&Bx$ Tϸ M&{kkcqgqxD)%UL'p\ -'S[tAi!bT+ IkUՈ* GS=o-봰:MnL6.E >B:I4̎Q:KG$lGGRUԂ6#zQkx`lBFUd+Jz*c<+*$T%A&BxHro]cm߻vՆK3جu ְIY MaY'}= cki2Qikhj!TӼ GpՁT[׺۞~{o]]YZ⦾ Sʮr$H)*BX,wJFS{C?ub=p.A;SD*4U2ĥN6c6\pS+`ˣ)cYch`>l޲[GqMC>gk<ޮ4;c4MGA,)]Vgf Ы$Q|@:^,PE$I0,QFIHA$zsv73l.#le$&wV & 6I QX 4,Lt[-}ק:enMg̝E=&6%UVM0UOuUF* '꥕H ׽unޫϷsj548J| zzH'zՑSCU:FduRn@VꡔWO $$`{V長.L<08ZuRլ38 #YCZS=WRVשX'=`* yYTZeY~%#"ҷ޺H9ەgs`j62Qqr֥s8n,m,EBuC,aWEzX{W׺`t_rPMf/MUO2zyxd?\ +eloW_:*ڿ ]썓vNr xğgX1CpLuXГtebytg,k,l0G@Wl_ϴwRkl׵LtLfѧTMI%t]#,=ӆ FѾ!ˠwq̐?son]h>?7F=$߻loM.RU{YYN!k@e vԮNGFҢg~ݤ9 `nc#I!ʩ j =iTUnMy;2˷sؼq2]U*?ߊuUt zi4O*G(^Z~_u@mNqn)ݛomIXU[5JHTD/iB ՝U4rX6b)I`-ucϿF[0=~UUnz}j7۔ml ZhFL1vy*]IrXƛuJS 7LE@ /Y&f '-ESPTz* yV' ؂>($GYC*AOAuW:ڇutus*(r)rW4TL}P$UrB-6b}CRM4 1+qEj^I$TI =%bZ^޻K?,*MLJRqQICY=D%R{VHQd "#o~4dWrC,rSj4W-ZiBWT41֪+J׵yzܸ {L1#]}0jJiIښi "ivE@(Oim٪i}}W[mnɓeqa[+R3y=UFJr8TSh+F'Oe76RlVz|UI4Xƶ{!jd_LѼFp9QÓ{Yb[V8t?UR~õ2D]ݎIWoRq jpK-wlJ|OMúOPlWta#ddΖ5!ΰGEPj8Z QSp>t>G?m,nyͿtnz=uϺwvGznWIUp>>i>3Ir1QV<Db֧'Meے|~t++5}[Rnj'ʌn&ǽm|x秦T =6DlV)ᥟ%_I5dIdI_Pf}dxHa 'p@}Η\)6B\Kkc䞫SKU}ie"AQ1"B '^;dl׭d2Vu gn=u8-YA7>OGmj䥪DH+q*8)EuH(0[\vњ;>cc)z5OWIݏMEFDLJZլ2ԥԋӥM`ԟW  :?s?}yڻ+U%NFm8JTKS[S.mpX0zknJ|æ2_7#6?gv`̲޿?{r4aM~9[pwlj:%IڴE}xg;}}g}ijܝiFњ#CSڬ<&+AHFIu ,kƢ*K O>{̐OE]_1hhK.?!./sySMN:Wvy>mއ ]^a< [A/̟]i:`d|+,Rh# <' x%rX!2ƁYHӣwe7Iu%^_#'Y1ո15X4wrl>Ym #iݓGW6Փ/:nDl%-N/]F/Z$lZdY)WJ@\fd;W>^nރ<㦤r$m*B<`c4HJqHVJgCV{p݇˫e{_SwdkJ+56S=T&`qqFy?1}C+gwߪh*wn;-Nt`ۣkq6yeXB)\}?Uq \ugl+p3<&[*h)gPOіGFpx6#R4#=ODn:~KutՕ-==LIS-=.0VG;49*pE31Vv CxQm:@[Z*q7I]]6&]cu^ hj=ܨUM<)GKMECBQ G6*GT8YdR8c?y;c1b&84lnGeqSPYxԔzy'֌ÐzW}M35 ?⺬^>Nv\l˓h7ٚqᶆ|`J 444Mhr =]_hu?mnn咚R_[_zA_HnNjRk9 vtTtaC0\y>iu.;v w6Ԧ*,#W⪠NDZ8jaa1D 1/[_RH-FS<[[Cnhvmn.3sQT5O%@:(\8ǴX9{%¡xdpz# whTU}kޕCTUz9=Gn1j@ZHyPuwҧ, O_OYgu)*e{ f%Nf1J."Ap-W-A8S.da{[^/?45{FnTW㪦c#h(̐#oXZfb#_Eq)1џ<Vf1oSvZne#rrr8)`ajJ=<F`Yq@=+i]V/Cmm';w6^T4clUCpWi%}BM_yz({W!_ Ν[U4Hƹۊ~}_:7onWIErMQQG)AS= zztj5)5T;:h*:0!JhSo|rAsp?K.oժ{IѿUa{WP,O4 +Q!Хzj6٫ulWTR*oOJǥmFvo(cv~%emZ֞T;E 1 :>'zL&"5UX\4u1GQD%Q1Ȭ%O֑Ĉ |W^jPv'Ct1'MHR:RAPA\kcX?!=7RA>n>˼.Yv.aZTWas yi!@I1նf?/;:3[O?I1b{-v&Fi.B17H^mMĊ={ߏWfn1ܕ?j8wv2IBifB\--ZWpzX|~XWsǏV'FU_ŏ-Wmj/Z?ãUkɋL߃=,G^Kd_9~?X~=9_7ai$/;XS}n5[ݭ~]5W8jzϸq"IꐮmzvB9 Q^5Β.Kr$zՃ[G1uO]ˉ[zNjMlCL9].$m]%l"=WHˡ,Zz7DQXR|GD]^ntJJ4AoOKggl?G[ٽwz򖪋c<֧k z)1SdѠF`Fm%؎Y37kq#@˥~7Xs8gU7ګ?m_Վv_{+oǷw ?KU*LR$Yژ5%TXHU*鋽Hw'"G/qhhUHnJv7gOI69Ao][:l_ggލ&=[=&a5T"Ek^W?GZ~#6vFۃtlt|kE]*5tIZASF̠LƯve*hxHYWZ@O/vvl]b*6馊:z=.+-PTei×Ko{zb'F4@0s[{1ٽkipg5aV-N̊ EQE4WYE/:lYV%[Xګ?AO4z3t7X]mV? !H5:$IY؁wv,nI>I$s҅U@@ :[#M_:)sLJV'F{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺL;l`]ˏ)͏P.A(dag dT!ԆPF*A#,ªz]ҝKu;Mnuvrx캺lf8MQ#| H"5C5&H?kZ\Y4\G_g|Sgx3h8ٶT QP#5j\Sy$@6/bP$j?à)ҝ;ww'|n WLc%Q'SsxLh݌ hBDH.|F n]Zip^'=JJZ Zj*xi(ᤤ!a0 1 TU*pUnpcVCiǓ4;g66TEݑP\uy2t~},~%_TpQ˼1S)@dF!M dӤM} Suf7R5w'C.֛O{^*+Oq,T"FTS D1#=믓q&6`; _]y-FIv:cYU\YA74K!|H'[ LTya޽_yv_+׃g?=QuSXz1':*?Zu^1?%۽pfz:l&;e1XQcWtZ=^JҐԵ%]ECx؛24M=h 3AW[󩷗aum]F=>⡪yeGSYS#`)w`X(U Z2 skX/"3Хj]uظ]АQnڸ6p<3Vb6髫djb_1P$gS8$y 5Oǣ!i-[y zDzNGuY*bvF0Jӹv,zS K k忶o*ZLv,eFǞ:7TD٩LSSgeV@ҤyHuJ)I͸W#?ϡ~ޙ=>nۏ'h)q;nE3-,Ebnܥu&O1ZiBBZ߆E҃q!^w=:7ܙ|cjn0&,GI$p,KSU$͢?<=!cO{OhVcY[@͞+_(2gSǎcƒ%&k G)V|nFmp.uYׂEP/䐤 Q҃wcÅnuzSO {II*-u%za(WXͽκS^J4O]}'֟#^MwUG5v~5-MWcmH!''YZzJnH4hÆ|OWQ"PI8x/N|gsv'\ee,ܔf|z \6>|v[ y]HDRR†(O,F$ME=|\~)Pw']lkp,ۄý)wPGOn8% L{ҡuF|1u|P1t'N w\f2 ֝QS**b6[wZEJ|2V%au } N LQAsSǗ^2rUzl_ IB>GHު_/ϫEOUU[SGM=^6YUMIQC%M#KQ%$c2D>H^Gam=iUڜWǚQ$2KGW$,(b֠;G"3=(zb1qE#z~l|=_on7\nMjf22]S]SL CL&@;;F2izMd9!&>ߗH?5{cp#zSfI0\V:%Z C RG 0dS #%7wp0N?8z 'K6pQR겻y䰕y<~>zL->СP'5%S۴DC9']@b)4n{[/|uٻSlݕ3Tmi Y?'']Hu?XXk/X$+Ǐ/LCνWw7[ɺ}6(nfjj֧,U\pjfMqm/8I LVؼrB*Ӯ?Oq|ڙ #xQnՐMTuUMI˼T8dt Ncp=XB]-áTQx9tO]ڔo+q]䊛!wY3VJM "ÃW>SmjqW,U濟ˣᵷfl̮ݘv.>v:H#If?f)PQ람(Y!ǕF~ugbE ߶;Oa@cg}xע ^ ^>#RC=fQ"U[M$mk)FI޺UǶi{_g)b+#Yમ]a~" jįtO{/h)5z82zv1ۃ7&*s.Woa9iqew($gU!T9,aԅ-0.ޫǧ[wEJ'.ܔcK&cp&PIžGbICWfZ&2Ta**j5sQbg9gTck1QJ'x&e%)A$ES}~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^P嫦pFJFGڙ [>IVS֍}>C:(#뭳Oxko׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺXji⫧o'iM5<)=;<icgFWS }tYk~oUM]ڂzUS%(ltړS~?Cn_a6N=G5>Kq]cCSOrz8q/DuMGD44I =,׫~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^red5-1.0~svn4374.orig-doc/reference/src/en-US/images/red5-banner.png0000644000175000017500000006123111561341421024610 0ustar drazzibdrazzibPNG  IHDR IQ~ pHYs   cHRMz%u0`:o_FbIDATxiVյ6L PG@l("9UFG P#j"hY( 5W({"eh(P4$ߙǻZY/ȹkĢ}^{לs>-y & ?"~0CoP#g,H N#qx3L$+uux^I+!/qi>@++CD`yLjտ/D9^3A߯&g5'1sa0ĵ{殞}<_5:)K?p̚ ϝ|uuy$I^O@>gẹҵςպȝ(ص%ų"(|3dv^ͻtV1gk,V3d>궽ʨKƬ7g~Ɛ.mQ2~WgJ/=[lő@`bg30p1K_df[Bt\̦=,l,w3cM+ฉWȅ3;\&D`"a,[l,L ʏ@0ޤ7gqҋ‚L$ury ~1KIL/G3<:g4+hY_F4~/Oj}6X^\v O# gfm(X-j\>1X-pXcN+F2*#: ,"mM[㘶rڃ\7`g<M"`.q A B\*J97"bJ"d&U''PƬ)PM&7,%ą$Iqc0R1(P8HѺ#F=`wu<3gLNրX890JQ/3+E1$c6c֞\aLڱ8pHyisƗϑ2~=!%1_fso(SL9.XfO7Z-l}DPArq$3^99T*2 }+),B6hTfF6EB`iev;6SFMqX9Bqs W%%vpY!a%gby(<IG"&5D{}LvOt.9 qGWIYh_M-I-!ֆO2&\%,}<.hC$w@YM8úNMz: 9[^%Hʾl2K2۽l$%*2àmK’:¤h 6s`2; Zl *D`؍uluLl0TV#9lvgxxMbu>}l#-G17M)榓K'Ɂ!y0e:4cQ LC "S%X B!Hh7!q-LZ:dIP[DջAPCLȒRB7>=9.‚OcQS|jg?.+2*H3)Վ&clF )@"+0"|d&F. ~,#e2 HquHG]IL)Xc%"9g5B 2yn2CqJ"ҵ*_ ,|ep'fC^b2@HǦs#%j'sevgF+̺9!"u| Rf'Msz`:u$L3| +!ϒ KΘ"Hzԭ麲QDdJ&!LLAH~zԄ\ojTHv d|yB‰t|S5Sod:HϏh^"a!fP 2*0X/8xʬCD)Q?:0N1'531\i#sf$͛SI[9{cܴɛشE|,;u#һnȡ,"hȑO!bQa;΢lO\Mr{gsLn5ba{dk<`4`IJ%01P='Bm>dC%tijm:*"ʨ 08#ɪ*$zǦL棳+!2nD"bF2۝$~1@GFa$8g,30fC"L&-C&*n:(3Z0JwRpLI#DFaI#ZSחZ&$Ou% uҚ$fR`‘fX.M ØLʄΞȴ -ͤW|%PA*2àD Reԭ]:X-<XavH;DABRH PE umWnZ%9בF0Jz\ƴe?5; TqFH, O9բX(vʹR"E.vxna:k}=6 c0ͽ gނFW AƯ%А!}5(T3FC15y180LӤ AK.Biu4^2*"xu Xt:$$T,JŋYTrdɎ SdHn2ZBJ\a~;A6FX C{%1k BVN#$X@rB,lp}i)%n=ȖK"己zE8ǍFm^FϕB0BeƙRQw+f۪S@X+\ذ`fRNgV-{GA>\ Q?d 9S.b i =PP-Le*[[jٰ |ZBB0LMP;Q$'@s$і|n1ȜKrYt$k5A9i߳`"CN>wAI4*jŔ#&bN6P`j:ը sAs׀u CIǑfNH[?ZivtoRQAZ4Uʨ 0(!/"kb)20*np~:."h2i?VrZ2'0ʪ0'7Pߦ{ΖUprK.섯km=e[ s4$D@0Hm !"^:jbsJMo +Z6*ĺXDx$gt2IdXL3hSY\#佰';AϜQjuJ-ZCr%c22*2TJ~+չMcU.,̪7| H5 -/j^6ѻ$e'D`KMOIAԞOoOb1vIlD*9#p_fm]4!?,$c3H!MÞKQRJESfu )WZ~jlY.Ոb -]l2'Z#⣸tnC^X}0G|'3Zv"Ie ({-f%ʨʐV˼uka RH5ȼqxt28M3 Y$ #blCGD1㱎\hHD0mg-﮻FGK vfM$(-M} rD(_Y~=-%ޗ-Zl*m'\yQ`Qi2 PIeZ?V$YrfDY;bxizcdhjDQVS ֝jZ Aed[ǹrNG@Cn2.I+N˨!ީSA^Xކf@kk+ΝÇW,We|/_nI,! O,S4dJsDdaNPDy(eMC|Nbdx_Xe`lMM d1h"A(pEC2_Ar3d9^՗΂S үT#Dvc136NƓ*7 `l!qB#"Qo":dTS-_6m,8a^rq)Isv4aITz,/UvG"־Z›asdʙ1u c}j>׾f llD{{VAkU[à^^$2ѕ/) fkIvؔ-ԏv¨1cQw/5.A.7̱d#?mƮkW㓏>oc*BۚP#e9`tD7(=`e===xW_ŹǞyHHL>ΤR] !ܕa\0uA"\J6w2,0f$-R`%A):bH nڱNVLF9pJĩpU&B"R.ЎplK# ;8!3]z)7? P=k1weV?O?E[[M ---hkkC[[[}uu5jjjPSS 8bM<(4MlQ;6ڞ{6Yo/kºkpp!SnI\\bO>46;BPkWcynC;1bu4PP`M7ÐmŤk1~=\+~ XCM]=SENA8\3=B!0qs4|\:W| Ri*w*' EKA J˔?I}>HVɬks}JL1}ʬΤ Ӫ.,A:+}}Z\xxg|! 8t>0nmi<8Vhw=" Ք@E̝;DCCj TuÆ hiih娭X@"J;6Ò!=Vo4tkV# bimXl3hptv3C`gƖ|dX!C+Y&!+aOR ;5Y'==[F F켳h/ 7ļ /DOO7| r2%D 88b꛸>_GM=M_HeH 26d4"VEBL- Xmtz%p\nXPUU\j)M1hlO=w׭Ä YW6 ;Ba,Q'!}PilaX I@A{ly4fNZ $ 6vxXj)qp-`Ĉ{̱>eIkkmZnaV_ЀiӦ2HzaD+vb{֝,q5H"~A=\$Cqbs0j%w!vܤ!`(M6g7jl$P \)7_ 7~|1]ϵ9hF.{17ltqg_HNp=  xGp/4ń9Q 8˙bLZ"#JJ[o ״ ܺ|3: U:hH[0/UUUZ=ɦB*FWk cRFBH QkkD{C^EVxT `9\Uxq̝;T6ݰxJ*0DJ]%aآ.BN0ˍbSbjOV׸}\}fԅܔߙ|Nܦ5ȤJc!z3#XDFy=УKpX|M{'Ndj׿?n{[o+Dŗd|\".@EAH5oXGE^KƷ)FFurJXK@X00&^-AWW`ʡ)gDfUU=p{wUE^ a0K@jK⦓q~\\TFRP LL͊1+J rSّ]4A2nU6lPfABe}}} 8[]heĝNj9ǜ ) 6FQ !#D0;kNba[aM6U d+9vM91xȐ͑<;h dFۋG>y4ᨃpYgnCooVM@jX.30e$:Ltt\L0b )*% 7#DlI}ďHߑ&Qwԩ_}%ֿ)n<8?#vä}Eӯ~7^ wtnEé31j8cݕZaI\`Ӧ/q[b撋7mڄK/yv7<KxP!! jSDw>vWC("-+WDg`Ƞm ODz'C`>)݀cN  _: 5ci\ƍE3{v4wy'F UbѢEp%<… qa+_߾bu 9ѠwvtkŔ)S?}_t:>FdRݠy7rB{{;ΝǃPWWFh\(ںokkCccc|8 *?\sǼ" !C-̢_DI1'(HSNq>&V]7o m N'3O9 Y_ΙCAK}ٿhĝ-1x`zF#N=@ r'ybJ3@v p2\رb#dž}^+.1$B_9S] ˗ћoL?'+./9|K \ue/_q7EeкZpq0wڂᅲV1ܴ ]r >?< 6mh}A4,}AՅ?*.B\Y{JCE7,- o8WW…M磳˨k:;tՅzT CV},\ EWg'd+8c0'qcϜ}W]/>LE g}äѣy \pf>}`ޥGf,ZCn;cذa4ڵ䒋1ct]P,Ʒ׬]wŋ/N?7|3kŮ#Gb͚5qaI씤l 쪈 mm^s\Ϻ uuuhllQSSF. En̝;uuu8p .]Kmmm[dL:::`۷ߕf?BގÇ Xxq4Çw(Ɔ 6|p̝;7֚#=w}fvo5555oX'5vCSG9'Yl$c궜-2VZ͟~1~3|7oƾ9 7/ۃW\^/U=S_ne1=DA '!3šJHa ߘQXV*,em;WP&.3X-t#wU[wYg`[no朋ⳏ>܊-ԭoQC̙k};p1r]vygY\B*M]s },&d^z:ŦgFpLV6C= Nu}C`ժU<1; cʕ⋱k1aDL?Κ5 K[[Q5`VXcU&rb9xDS~~ Ι3&Ϥͭ8Ϗ?(~3R0i 4`Guuv` XxuX){Xx?㩧آ樳Ûx.9 Sɓ'gԩS1`ذa'1N"riT:l): {_8cMիԄŋ@v---hnnFmm-/^Zc[\DW^ fƷ~R;wze`[ZZ0~x6^_CC/_x?38p]ƮUNMMMoN]q?{.Hj6ەBy]47';7AƁk~[rNy퇩7+ ;&nDt . ~ԯ8WBU+3O>+/GO9ucтX[)y {S>:%I*Xb*83q`ۡC2s&k/^8eLt޹XK雯O>ϝAowI'jOJ.Z5_(BOwI%#O9/-ަGZ[^8)wvܴ N g(P\._:v1ƹ瞋1B0`uϽ8ceK/ԙ3#\4կbqF[8\ N~`KsFep hnnƆ АW2vv455)iҥٶ v1հ4$`H:HS(WV[ۋuoO>A۳Ϣ3fDSзoB)4T3ϔvRNH8O߾YƥYS7z155&͎B@l8\"fa\xNdΚ5ka?c0)Qb|qF5kp{Qh@ ^o}X!D9; pǣݐ=f l \___R]]]̻ouCC܌昣p{hkkF{{{Sޫ3ޛsfhmml†Q-À @')@hQc^P;ĆO>.EYwށyWG|Z|i6cРq΃ O1az{z e~) ZP8#tG~'pؑGzM(s]vbs$_GGLd;vPg |3nW81j:AC1ѣG''wׇʧ(^r/X(i(i=쳍6ME.X+o/aÆ D|7N8d#=^X2ÇWqW(˒{Q MMMhmmmiiAKKV8455)!s碾^On稺Z]LaXcМԄ絴؃rs[@PjJ PIQl1ch**׭]>C1rO?J\&{J|o$5Q8=M( &JK핥?yRt>p18pT8y$`7î/_:tt`ĥT9uW: h mUӺP~yFRPUU .=.("ή.ܷd ~yٱ w lu~2:Ȉ{FCE/$]65 >-`+E e}P;E; ٹֆVHh^Guu5V^iӦ95=p@̟?]Y"/ʚP`eBkk+xk<"54!'$b݂I1[V>ΌYr-$~ޞ'cd%/N-eĒIC^7~s,N<AZi~ǒ:lD4&&ƛGއ)+OՙSKdg 0~ή5˦DV:$RQCg DJuRg9sWWgK__5`@b,q(k">g)N}lFӎc#|`%%"}̊ $!oݾ8w%'/\M#~˗cess/^Ю744l#D"-?2jjj⽕Nkkkg5{vSIX34+gr>ؠ> i*E.-xuJ_ fIGɩ2}GN2+ecdcIfhÏ::~믾7,"eQSBy.S]}=1T$ 2aϽ.9%M pU zU8 rA @ggW|GQSxH3MѣGk*hʻ +27Y\tK/(P2K2/#<*jtQȥtb&Ηb](pMw=677xhG駟Έ 0On)%ipl<6lؐ-; ܜdIɔ6.~ԯg͎ӪӪ"͜PcǥkһvBa0+t*@c-E% EJ7_'qs'|BnMYG9e or襷:L>˟{V)zBO^6:XFf YHި0>S/ØTd.; UUcgn u ĉ7:D切M:Fc VyJ,I'?Z92J.uW?QRorp} ITZ;`a$3KkAHlN0kkV0$C*HPZM!ؽD^dFE݀|0zT|.mf]WW(NooSWoa(u]2)+k4ybK/#U$osZV&}7 2jD u*(yl9R89 )!め{}y@{'^ҵcwwP>eڸd]eיYn}cQH6z:N{ vg}?=ȣRzM3+W(_-UjW*99}Q)%qclDa E,_|>H"7ًt|۩[lR*"bzJ k-*s0ĐnnlذCCC^Dο{9Tb*z{zpu% R=%cۃ,wW\鵓C]Hmxɡ&,{1y;)%?w8j18?O&W)5FD7^_}%9Ǯn,Z,ZrmU;]l"摜sUU߇]m2^ wveqv(?-W G[*>lɗ*.LuKw}ymsMl ,IyƥpTWt%`a4g߾`kǎ>~H#WgG'.b\|EQ.q>)6Rf<i6RH:ge.s^N1P)|gE\hllޯ̝;L6lݚ5ZLWXfzQ6bNP_Y6m M)^8&E$ᓏq9)]=}S'7|;} |WW6 J5-s=oUDP Ɉۃ۱jˑx"~2bg4bg v+s)VU5'M!CbEp7ƛni3g:kCEƍ7n܈GyÆ 3(.xh{9ʪ>M6iR⴯ wCtN:476Tr=nο_s9Gzwݚ O8N8G6ӦOS;,:Z[p`w]389Ygc1X=$f|2.T (,¯;sw]:oNqکb/x'*9 wu.7/nGOtd-b^'|2>۸1{ƛnT!NXv Aɓ'm> `Lh]ێ ?{⌆3P{`mr="{%+«>(u:,ng&Ǧ&455Eсl]__磹YEQdÇGGGG$2XxommUňaZ 544 ---xsi)KfnKKGh7{DMZU: .d Do?63r<**Q+w^+/h5v,.U1"fYo+5Q7WH5Kgƫ+WӏK Ncƍ=ҩ0O>=T~)01x`C`А!i}Wxefj 2cwS<Ұ R4ږAAQ@|7ćGO"گHsǞe:V,C)3g_ᅬ= #wcۡ FR*~BwO7^?\g8>tomBɱO,Ƶfn|gVصl+xUXxuUrr߄ 0a"N1C#&cwuuaɽbʕQ_j~8#JR߄fO>8y1{ 5Gu$vܱ;cԎ땣`&'4̺bѢxR;,<ֺuE˥@}msY1}HZ$5vIjN ~kSK'6Q0TR${8u;;JM 2҉'f*2amK [aH[QU])!DjP^{zdsQ?ǩLi㳤"rJHѭ~,BurjX%(PIv@C sOÛFJҟx,ٟT )td)@KH[PHRz9s:)諚NB(͐)pN$g 3[Id u8s9sIVe!Uf2b]eWRMd35DSB3ɋcOk++*BbO },>Pae0I'ؿy`Tm&%(~HY 6QAMi2Om$dռBC2WvH\DD$g-^e #$2lM2C& Y+hI"f ϟre#jAbVeC6xFCH.)j, %%G:9j7BM"0P eMۜimu, R 5/6; VR+$'hpZ ”)TFexnD(nے&EsYu"g5m>87nha`N줙Y^3U0 r5@^)Җf8cs6;'}n p9,Fg(^ l$ٻjbA (A,)TT@¨WuuP( HK](p6T`.pQ=tLD|$./)MÔX8!Р U b.Qw^m-w?+iwéeP' 2@%"ZSƌMɾP6T!62d `xCFؙ~N "Jj^Y ?˄!`gDZ`GDsѬKP` =-Id/h&s) Ju$Ԍ8i"Ț亓Ə JbB=sn"d(mZUzlS"AxMFd;"ȫ /I`S1}GDeRlB4Q[KG0E7м"KγqL@- &Ne_^U91$Yahb}dR9ub*԰" u3k`P.@2T<2mda45cg M r%Vk_99l wk$1I|CsHܵXס e{Ȍ{vZB~ ("$ISri+/ie_%:oXpD)WVFe ˛xFdd4-r,#bv䕺$kDl$}"FΠR=F\TLeCN%dD|QOlD :j@=>Nyė՗_NNۘaYl*rp4)Su!VE[xF6%%* B0`WIF C%(2iPRM+c&g4Vyhjo(Ҳa%%7΀Y2*0vD(aDZ3<XWLFDHYFx[Xe& [-2-HD رa M/2i^~sX=YTXGd"DkI9=];\ux7DA"_*VtKQ8CVF%t-YH+\wjE "ia\ ڡ+ CWWrĨZYG6 ;#đbG@ anvc]$Qbv}2j?!$-ej8"uP2*#;hcO0e, C$ g(W"57.N%r>hv@! 2̉RH%Hϕ2ה#^ ׁ@d\s N(΁@m+n4sE`@| w[^{ARs=dCDTDgu=[C/fϜWT)%]$RS[6ɔZEAHZޫD"4P\sTe ՠIty14|eTFeВǞb6g,;H+^ Mh2;"ll7D"'m-fr~3}(+k("bw0U4ЩЄ$NЈ 'x#>O2-(C+HA3Bs"RzYvK #ZY#N%bdH9$4!rFMʹ eψqtȾRJS|:JݿD侕+bOy2d0gؑ{qF+2*`ߟ ٥)#5u$$1\b0ӡR+P-VӯG 9\**!D *9l/4nL n*%MhiC-ITFeTFLI@ifQh30a"RAM{YhNض;ua0[ ?Z."՞cax #/I5@4\oTΙICHÁq;Pj⪜f j^T䚻g0k\r!=LΤn=9HgC|%IAaք.6 FO62Q?瘔oQnO1^gKQJ+SW9r\rw s?Qkʨʐ&x(55&jvBl(Z(0mUF=ԟ gRȡ )VFsua"FVEz:*χUz=UevGv mB "gVlh2|3Qd֮24Dڸ+)8&T$GYBW&0NY5E.hkBeTaSYfEEs ̺Qe'uz)T+2gʁLIc,{!9ӶjdG #H 8EXi"Uddm9*@sj33JX)'*7o{YUѧbCS%)'`dtP}Ćx6y1bQ)ރmt*⚕#Lj΄)oJ'j7rdEi` 9(3MmM2кe5(6"ᒓ'r ĬҔ+hhd8Ep2mXKBݦd%E!1IFB2 Y?\uqlmʄВAP';tF^p-b-iQl+ՑICxn6LıXo(E&R0a}%KEEJř#LDMFf9JH h$a`PeG)g-y ,}]G%,2-œCSX84!by*%ƙ:Tao# 2L@0sueb >{[Wx|Qʺ mot7ĆdW"f;yHD A=,x(' fMᬶ<l .y<f%q]+k\fLkR)'g/hRvf?(Zm,Dkw4! !hdZ)Ķ(g&(C$]oŲIFՂ<A "39_2!3%aXW8K-x9qPkX9yF8 QAڣ2.P`ӄm4d a]kXpHãiC|MI''P*393 %tL^+dK HU.7Z ųR<ΕDldIsFygR*Xj 2UeTFeug2_,l[%e#uvCܼb8_g1C.+guN&|R $Q g>RVɃYhGP"brYV;#G#4eu.”F@(GpSD)Ik(s Y]qI6q't0SJZ=c;K%FЫ L2"NVJl z懲 QaH:W7IӖ`X  !#Kٌ9$!D2d-ڻ`x)h*2S/U6glH9~M`C3"I{,H.8L N tׄzatCƢGt h."[a=Ȩ%ʇb9$;0LQDT%݌!bQx'횯Ukd TKNNtH)Tgk<K)g )-iΫʸw|μ9Spg}fʨ ^$6v=IhRߍ윉Hyk4#h2^a|M9'@O|@UYLn)̗m`k,fJD82!Rŀr88W|_:Ěooep'1(˒j<4R**&;WD- N{Na0!؈+r2LРstnk2,S$lX:|}]:MM ꐆEb8)EK2߁Nx%;t(c(հ伍KTL>BZ ? #A \7r$6ޝߎY)9Id1h"(@V 5 +4x>^tZ:kObdaR\aqA8X:iـ,*|逑;!]#VFeTFr(Bn#1Bm]ygMX*-n"[EL|qTs:;[ḴnYQʋ3ke2sr6Xj.P.S@VpUdo;(2u9 bd?L V Y+6 8Uyh4Rͧ'x-rHTtNpEv>KFDNCx&70Q9X!"f뢤70TFeqIENDB`red5-1.0~svn4374.orig-doc/reference/src/en-US/images/debug_button.png0000644000175000017500000001431011561341421025163 0ustar drazzibdrazzibPNG  IHDROciCCPICC ProfilexXwT? .^^EzD"* M: R+ 4 H("vvoٜ3gLf7yyُ|F wP %RAlPDT0**FբZP7:MfCFh{':GWߡ0 #Qb0>st L3lbXf(V k%`ð)"l# ;npȐ8$ԓt,R*FfV>&}M:O p8\w7 ##!S" &@VHvlll\\܉<<&#EEE3/۔tFn%-ckTTTZTT1TT^SPR PPKۨ?PoHӘӤӼY Ѻ&V>Cc}oӯ3222D10t0Lxoƿ23j13^a8ƸʤΔiYٗ9y"bReUȚ &fvmm݀= CÇ#cSӛ3W!W/:7!w8w90 O"O$/W׃7wϔ/3?)"?%V%A&A# ! ! ` aEa_#"9/עQyQobh1% Z 3xk|ْRrR~RURҴ҉ҏɈeJdޞ8"ģ?eEeeKe?ə];W#p]"bZI[)^]iGY^9LYJʒjA\mZKUABcVWMZsQKXGQkM[J;Dyn]n^}}Ou9s݆hClFFD:ucƽ&&V&&'EN|l056f:qTV3`fdvl\<ܢbR2ֲߊŪꏵuMM-m햝]ݴyW,ՎN睞wsJqzFLԙ,~.T.hW;z}yDb񻛦[۲{Gǒ5e/ |ob>>e>[f5G~v~M$mQAA)Ay!&!աPGa0  >Qiy?&* j0Z$Jb~̭sss=ܱ 3ΗAqgzy/\M%& %J%$NKz̞|!yņʔT.]F]<|ĕ+n/ӤӉ/J_-z1)Y z]C3wZK.Wnj<e“ߕh4]g~ cwvozXnPR!P_\꿥x:&fֲN>ް8r[;wʛMiw{ls_?{DzN?rx4fX'OjڹK::2;qɝG]1]A+O=?עw>gZ]j/_T|JUˠ!-^?Qy<:91Fo_;n>Lt/L'R''}jѝ#}u>yb!snIf}Yyo߃ﭤҬ^_Z{CϐG77j~4V6vN^>v@đQ! ;_5P8@7L/a1 0;u` R@ ӈ9e#&y$:a11ϱUq qr_yʻ)`*!T*< SQ\CO@_脊96 E~%KX=jSZ6:%zO f ׍NGG! %eZǙNg7\f\vnT|Lxo_~OmOlͮM}o[XL[ ^]wEcUbyӟUR7Boڪܽ4ޒV'#&T㉭%ÙeR"ii 4O00g;r=XYqlmy!\xE 0 |l!!'&A-1/*,m"C%D\|œbQY\y_eDF-^^C\PV)+ D}wC#Vcɛ-yYZt[[[S[iӷg_qpL?mts+ur6h6^Eɻ眯@A!P0(l ji$./*!Z= ܥسu7/|Nxx-,rygWSӦǯLRZ.q&ʝk)*)R.f/>(r#4r򣊅[E5>u >}7ߍ\uZ }#6ǑOR ::>wH<#>GH{#vޕ~|1iVkɦ# y 8mu ñp@8 8u~E` A<Ȇ ހYX)B+$B`M]J | u "QxF:.ـGQPFW4PaL1iXR16;JLB$i"9S%@&#uǐORS4SrQ^N"y8Z@z`HģLuLL̩,j,XY2عsrsqaʹո'y.Sg-/',, &*zQFOĐdTtVr* |JL,*NoGBBabc.%%\ħT\ҝf>%=u,ϯ@xҧ7[+T=~];V޻oW2E<^>WCw\>~˄T\˂ϒ/~~GO8?>L=%<@*lVL@4$  o8 UZ5?'B ۾U/9¢TQacj& 3c$$I$ܤ/q<88*Y)9܇-y)y)訲siXh*h%hЙMӇ3{zLt,6,lFr,0Fs!/4ݜHhX$ԔtLʼn˲rq JuUU yM#祟enØDi!seդmWC;N,g:znְ~?t/34;'?D\tisjzL6(;AvpW{RJ[,C)zԷ6kaWk_[^_ ;ObʓzS3_ NKϿ5;?Lހ1P#I`9A583m"PD%#iB1QuMzbMw}d4t玛%s%"w%_l:MCe}IM/@?223+,ְy /q4pr)qc'x.3  Yۋ8E'JdKHI`Փ /UR*I^Z:8H%cG~SS0MG84v>tNt%q;>3?h"ZHyߝЙTu%+]iY\||!(Vݲ~j{ߵn滿p}3iϳ}K^ +Џ.iyA 婲s|_wf|])_m[ѵ^3Mͦ?Jz4937vw*vvvwv[_:;89;xzrthxrr{x}4plP2ǧȵ㗣 9dUT"qw>n1ꡡ<[;On pHYs  iIDATH VMhAbƊE=y1X]A7 AH(b R*V1"CAj-VR-M)$XKn~6lD]gm!}}y7r\mMm5h7ۢ#{8 Y\SMMU|.5j4;{'tES TQA¹s?gӸA>"f]hH~xj v0eYn4s 8s2&P(%\7 ýR 5E@Mɡc؆*#_[!K/==,@ƒ(H$0%gIJEԷ`b{/}%e ?-`҄L @Qx<R)x^pMOiu?} M/V{*}QHde8)R9tp 'Y,{~9T|bܒ Ȍӈ$gc!e->$߾"荞K_n#"3zժl;rr#U[ML3D#+ 9yk"kKC5+>wYRʝI3wM51[$ r˒GOMJeBNIENDB`red5-1.0~svn4374.orig-doc/reference/src/en-US/images/red5-banner-logo.png0000644000175000017500000002504311561341421025547 0ustar drazzibdrazzibPNG  IHDRB#x pHYs   OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3- cHRMz%u0`:o_FNIDATx]gXT~ 3)3RPQĎXb1b1yL&z5DQc-AEԨ( DA20s˹N2( <ϙ=߽^{""hE¼ypٵHCCC@__UOGhP((((T*Eaa!ĉh߾= LMMaeeKKK7nF+=Ddd$6\ܾ}HHH@RR !P]] R ˲ ` ÀCGG033#bD"-hJ%qcڴiAloAA>|DEE(,,lz Э[7lllҢa,3f ,,  I&aȐ!\<@dd$Ξ=+WE޽; COK*-4'U >#Gi_ll,JKK@G!''.\%D"LMMall Hw|\{ɓ8{,=zJb=zgΜ9sk?-^ƈ#uVtرYruX`YV7P???L8Ǐ[ff&=zx$&&"==@ )QZZ gggBTWWC.CWWfffFΝヮ]ё+'OÇqed2aŊ4hvCP`Xb~1aNqR\\ٳHHH@QQU ŋq5ڵ vvvd(((@VVR)>|;wɓ <C &OI&̙3سgN:Ƹ8?-œ9s4AZ5P*g:ӈ#(55Y///YfWW,OR_ҥKӓlmmio>:Yx1ӇmOjj*j׮}W nXBT-}w~z4}tرcdmm֧={jDd-zeHR=zZx"uؑvJΝPYQnQHKأ'Uݹ"omjKD%D,Uw5!___{.ҥKַͭ Z[aZT˷l2NVN:a۶m wdP~2|TXa|304瑑1baȐ!۷/1ajQBiB*"2ݻ79;;Szz:'M0AX7oV$Վ;j7g(Nf}ۛ,,,EQ *%%TС]zDnݺUaUU5IɌIEDAFFF4qD3+++@U|ZMM39::ҕ+WhڵZ@tvv:7ӧ4iҤVӇ պuDTQQ.L^EJ Ȇ\Haɮ+3=/ը=}+W5kO3gvuu8""ZdIʊ߯x۷UUI%hРA*e999Q||<ԩ;A#&+˻^qΔz)=H圪! 2:uDDDT\\L*b}oǎXZZ]vjzUpss Zg~P{{{|PXaJyyy(..5ONN=)S4Xލ7]FKWW000P8:} "HR-US… xʳ>:uJظqU׆ `r*_Ɔ 'N 88&&&2e ֬Y}$DEEa`Fꇡac5jT8RP`kkӧO59d2oߎ={ԙOSoUrDcǚM^>|8֯_ &@GGSN͛s.oaÆN΁X,s6k/T...r9̚,cccꢢΕNNNMޏ>[ϟ#11Qeݻ7(b077o 2gΜaÆ!>>={|}}Ž(TVVB$5אr!˲jS(//o2>5QFu%,Z#ݻwEPgC"wwMB;#І-4'TWɩ=@N? 3_~wg榶NJJiIDM?k Wall HIIRCBZ!= G̬חU_~}5꿮P(}Rk9mTe>BkH*+fkkknU0w,"r3hCGΝ;A*@"\xxt_$5ڽ-HOOGee%7`-GNNh4eT Qn7 4jB0HLL w?l[*,,֭[!|xqV^^7n4LȲMھĽ{wӧD "<}T%O\\Ν SSS<{ yyy  FB4)hYi`fj4=a3!!y"UNNVN===IRyxx`ڵWK"22燹sB,#<<Ƃ daLQf  CFVz t>Pp3ݺa6j A0{l `و[jU}}7uabbv࠶tssX,FZZ8'''t֭q+X V)fD@l jLi)vbP& tlC^.'濼988[K_v[H$RCHR@,s"_m[ TRRecc0)M <4dILLDuu5 ADP*Pcll ej.RUEEm077.gMqtt@DkPy<M d5"URRtuuacca<ɳF=j4U>Ԅ|[`cc&Toxq- C0ZUr̥].]p߿faj,oTs6мq...jw߿\a养w憎CoP^ܨV|5M7oTduttYzk- ]]WY+JX[[k(ު HLLݹsŠApQܿorbРA"q7ԗ744{1pEn ]z!Hpy 6aͧR  ZצӼ2,utsW0899<iiiS ^#Us^Т~ ǏRz*z ###1{ԩSѷoHł'(!Q90ޚ5Tp0<օ,9r֭Lώ;,nĈkv4=9U]4h\]]U/EHHtttpXC(xqISli&%9kNh-`ŰDpp0*++qA퇃*fP(| j z*[[[`ڵ ѣ/Y{0cG05QU4 x3>G?~?OƮ]TV)DٳgkS9ySkG|,1c ~UUUXhbcc1֬YP_NgAY3s7w0?oU^֭֭[a<|!!!*QN 44TPU4Vg!"ӦMKޒӱj*b ND aYEӉ'ضm)==fеkW,\X|9*++`Ī=mV-Aw<۹ V_|w׿/S}~)Ə_PA}A ݻɃUUUÇ[E@WMƴi&;w/#Gҳg^w#.ȈƎK)))uVHH՛]A+E f*!7o#W>++NFFFk..vII 8P>>>\b RUVVҞ={CmP믿˲j*ktss3g47sy{{J.߹ssA0}1CHѝ]Ha"Q!ԋHֵžHѭ')&=x(XcdggG...t%yff& 2Dobݻ׸@oT5ByyyѵkHTҼyZm;njCIIIMbccK./*MII &H$ٳgSfffʈ'}##v(zpvJk6@nNʽ 8T 999tR200 󱱱ԫWZc4>:&Q^^͛7(F4yVFCCCZ|y _W^Xyf$"jڷoS.]h\`@eϟ7 G$Hh޽TUUO?*-b5CT kvE-BA&D*kpp0Srr2߿UK.ׯ_'///6B1cedda,X@666A6m,-\UVP\\L#Yfh…jQ"]|Y* %u\qXf Ǝb,\o\β,ƎUV!''GTTZ=z%Kbu?yK.űc4nnnX|99k4㏈@UUzѣGVVVu;@LL ~:r">>OŋP(/cdY/^ҥKq5r]ja;Rij"!er0gee5# XP 0 ϟ#??$EodXv-6lؠfQ?G@@q)ܾ}|>BΝѡCXXX]v044IJe:t@ee%PTTgϞӧuRRRPZZ www!00sW pǶg||WXzu8HM3g`ٲeuo5j&M{O /..C||< ,B!LLL@__K5^^^ƍ8v?tu ~MTZqcƍصkWvȑ#Y,!77(..0駟̙3`ff ZW颢"_> ,h%- BWŋ!ؠGx'''ԺO]j.^SN鴴鈍Ell,Qχ7-Z!C8%-F'N`ΝyftWWW8;;0551BCCq\3d_'O )) }:&Md^ҢEQ]]s㈍Ejjс J%B!gX X,--1c`̘1MUK*-\~]h)aeeݻO>ݻ7wﮱ9-hs(++T*EBBnܸD$$$@*RldPKKKt󃧧'bqWrEUUˑgϞ!;;HOOȑ#all R XZZ ;vD"'"$>*hu  0555=˲ҥK5vpڒJIsIENDB`red5-1.0~svn4374.orig-doc/reference/src/en-US/legal_notice.xml0000644000175000017500000000052411561341421023700 0ustar drazzibdrazzib distribution to others, provided that you do not charge any fee for such copies and further provided that each copy contains this Copyright Notice, whether distributed in print or electronically. red5-1.0~svn4374.orig-doc/reference/src/en-US/introduction.xml0000644000175000017500000000421111561764617024011 0ustar drazzibdrazzib Introduction Red5 is an Open Source Flash Server written in Java that supports: Streaming Audio/Video (FLV and MP3) Recording Client Streams (FLV only) Shared Objects Live Stream Publishing Remoting (AMF) For the current release information goto the Releases page at red5.org. Lastly the documentation is under development at the moment. If you have unanswered questions after using it, please check out our mailing list
0.8 Public Beta Release More stable version of 0.7 for production environment testing. This public beta release will have many more features and so the focus should be on testing and bug reports. Hot Deployment Auto-unpacking of wars New Install application for example apps ** examples are downloaded and installed on demand No installed examples by default New Download Repository Official Release Home (red5.org) New Welcome page with new styles Bug fixes
red5-1.0~svn4374.orig-doc/reference/images/0000755000175000017500000000000011760512605020264 5ustar drazzibdrazzibred5-1.0~svn4374.orig-doc/reference/pdf/0000755000175000017500000000000011760512606017571 5ustar drazzibdrazzibred5-1.0~svn4374.orig-doc/reference/pdf/red5-reference-0.9.pdf0000644000175000017500000256060311561765176023412 0ustar drazzibdrazzib%PDF-1.4 % 4 0 obj << /Producer (Apache FOP Version 0.94) /CreationDate (D:20110509231717+10'00') >> endobj 5 0 obj << /N 3 /Length 10 0 R /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 6 0 obj [/ICCBased 5 0 R] endobj 7 0 obj << /Type /Metadata /Subtype /XML /Length 11 0 R >> stream 2011-05-09T23:17:17+10:00 1.4 Apache FOP Version 0.94 2011-05-09T23:17:17+10:00 endstream endobj 9 0 obj << /Length 12 0 R /Filter /FlateDecode >> stream xuSM0W+5^?ۭC?h/(<%bR$7iT!`75ʁ*J) n{'xF ~K*Ȩ (}zxߋT]ص^3*Is8v[qO?m5'>5I ˲$,[N"/S*ty%/ / vtzO HF{H;-0$*U> endobj 10 0 obj 2596 endobj 11 0 obj 786 endobj 12 0 obj 446 endobj 19 0 obj << /Type /Annot /Subtype /Link /Rect [ 313.622 617.18896 359.47 627.36395 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.red5.org/red5-server/) /S /URI >> /H /I >> endobj 21 0 obj << /Type /Annot /Subtype /Link /Rect [ 365.586 617.18896 523.304 627.36395 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.red5.org/red5-server/) /S /URI >> /H /I >> endobj 22 0 obj << /Type /Annot /Subtype /Link /Rect [ 319.74902 559.992 371.08603 570.167 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://groups.google.com/group/red5interest) /S /URI >> /H /I >> endobj 23 0 obj << /Type /Annot /Subtype /Link /Rect [ 377.202 559.992 532.511 570.167 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://groups.google.com/group/red5interest) /S /URI >> /H /I >> endobj 24 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 544.59296 157.103 554.76794 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://groups.google.com/group/red5interest) /S /URI >> /H /I >> endobj 25 0 obj << /Length 26 0 R /Filter /FlateDecode >> stream xXK8WpIB @%ͦ6Ɂ16 SuV;ύ D(ba䛟:Ex#7O~p`wbBY97jK2a8uSlwps0=m3`)ݥ-b`0ҒKa*ݥ~-b`0֒-ɃG"`_~0#YwD^O36C/#ܐ1oM6X]ʘ%mplnF6_t<(Z؊h1K۰Xt_?l~d ?14rە{|wmz :ÕD]u׵T ՄiԙT.lq3.,E/JBx_IHU([78_Tl;.nۍz K/x.)W32q86Q)II[US9*b/iƙr1oᙻ|c~EkjS_yLfC)m_(9g7͍&/Z}K_q7 endstream endobj 20 0 obj [ 19 0 R 21 0 R 22 0 R 23 0 R 24 0 R ] endobj 18 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 25 0 R /Annots 20 0 R >> endobj 26 0 obj 1482 endobj 32 0 obj << /Type /Annot /Subtype /Link /Rect [ 338.075 502.26898 386.354 512.444 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://trac.red5.org/wiki/MailingLists) /S /URI >> /H /I >> endobj 34 0 obj << /Type /Annot /Subtype /Link /Rect [ 392.47 502.26898 506.793 512.444 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://trac.red5.org/wiki/MailingLists) /S /URI >> /H /I >> endobj 35 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 486.86996 156.476 497.04495 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://trac.red5.org/wiki/MailingLists) /S /URI >> /H /I >> endobj 36 0 obj << /Length 37 0 R /Filter /FlateDecode >> stream xXo6Bؗ)![h> C] LJd)zwDE)'a ,""A2pD.qǘ{D K i^*EsV 6qb3y 2a2 "(a=.Zs E.{M!6\oo}"AV8VNާrVY~{]y)ծ}~wVeY_*Ӡ1\rbcwӀ C t|#vǠ@0G[4YqO&+c! I %5iҡ"f6&+c( 想ݤI:4\D2BRjq@$&AW(olм|M5gBrHEԇOз1aֺy-$`(Aj:t:~&X띁JoiSm!g9wdp$jS:p3fGrP0 !͙:tlٱ$@muPئXnԝ*3 PReX<$3mX;C EujqɄW=wFioϲP.:gVKl':gJwU\[$P\S=8Jf^ʴ#;H:?(DC u] =Tv>:&z5>n s|mߗ>@7TQ%ɁRU0 /UyYuJZ٫>/.Qo{efRA0=ah᫟OVJp1҇$;w*Q/ίzGaa:_qe68ϓBE3eĮ(6 -BQfNl=}"/Qf6p٥e}sj2Uk(1)/ח>vG)T cv(pibL}Œ w-˜vqE)BKX`RK5æ R\贜( n,4]ǼmR#)R`05]5%}]2o,:mAN!Vhq{*L:֜7ij/Uh^zDA9vBRnPFla !Oꢶ/Hf$dhv7M\%_Mܪ1õ.D.|4?%U+45.ApFl*ZEnM*tȧ 6L1d 'LC8.J~0E#_ ;EɝIuS u"I1qePcvyY&̽qUlsrnʖ7jvkb{6&q$3:`RSUhr21_Vvl焗7WiNTV> endobj 37 0 obj 1907 endobj 40 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 613.792 185.813 623.967 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 39 0 R /H /I >> endobj 43 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 587.264 252.429 597.43896 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 42 0 R /H /I >> endobj 45 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 560.73596 347.788 570.91095 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 44 0 R /H /I >> endobj 47 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 534.208 363.70502 544.383 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 46 0 R /H /I >> endobj 49 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 507.67996 261.603 517.855 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 48 0 R /H /I >> endobj 51 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 481.15198 225.567 491.32697 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 50 0 R /H /I >> endobj 53 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 428.09598 255.498 438.27097 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 52 0 R /H /I >> endobj 55 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 401.56796 472.066 411.74295 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 54 0 R /H /I >> endobj 57 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 375.03998 250.603 385.21497 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 56 0 R /H /I >> endobj 59 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 291.60498 302.556 301.77997 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 58 0 R /H /I >> endobj 61 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 265.077 339.824 275.25198 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 60 0 R /H /I >> endobj 63 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 238.54898 303.194 248.72398 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 62 0 R /H /I >> endobj 65 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 181.642 468.832 191.817 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 64 0 R /H /I >> endobj 67 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 124.734955 344.125 134.90996 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 66 0 R /H /I >> endobj 69 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 98.207 298.266 108.382 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 68 0 R /H /I >> endobj 71 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 71.678986 342.299 81.85399 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 70 0 R /H /I >> endobj 73 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 45.15097 324.56702 55.32597 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 72 0 R /H /I >> endobj 74 0 obj << /Length 75 0 R /Filter /FlateDecode >> stream xW[o8~_&Ү+}ڦiRդ)MƓa%QljMd||s?&9AK կ?G)sGc'"L8}pb/!%mװq~<+|Z}Uk _ =D7g$a  kQXdIGzl$l#: w4k 0 ' )r7Kνʆ.GŦn;2.=x>}Ũ|Iɦh[49Ycp4咁\)'H;{$9YcXFT߯WoC5QlKIp q_K燳gq]GbܭV;,]& }vE1!`a<knjd#O 2pBH0/0_;ڊKף:4BB1 -& k^<^`?^vdnT*3g t'+HYUשtr(A.k\ޫZ5ݬ~e ퟽2 5{fyNO3ծ9т9:<5_%`CwCPQ7n4ێЎy3R01BEll6VN&:FWh GJ}JHɨp6Lհ^5ME[n4$QQ(}i6u#%sS7[?E?RGo:DD1x1~Bus 0)"ux{C !Y{:,cI|ZJ)e6>ж0VڷgR,Obmmu`mg018MކB) *o623,Mt%ro'C^BByGa .6du9DP)RCA־.z*{FEÈ#mg?SЅj h Ӄ`˾A%hvC>XjƗ2GP 嗚b`M3/:$T<ʗGІw[u|Wӆ6:1C&u?UXB@9 6^籉qZ &x υ}]Np9h> |"0 ⾏6CGlLw(=n[[0p(Je3|ݓ*}SCZW4Kr&8.El1tm9L]dz{ ?d*%}:`}]h \`/Q-o;ou҄{v393YmV`y39> endobj 75 0 obj 1531 endobj 77 0 obj << /Type /Annot /Subtype /Link /Rect [ 324.633 340.66998 349.097 350.84497 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://labs.adobe.com/technologies/flashplayer10/releasenotes.html) /S /URI >> /H /I >> endobj 79 0 obj << /Type /Annot /Subtype /Link /Rect [ 355.213 340.66998 528.254 350.84497 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://labs.adobe.com/technologies/flashplayer10/releasenotes.html) /S /URI >> /H /I >> endobj 80 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 325.27097 254.31 335.44595 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://labs.adobe.com/technologies/flashplayer10/releasenotes.html) /S /URI >> /H /I >> endobj 81 0 obj << /Type /Annot /Subtype /Link /Rect [ 413.293 299.567 435.909 309.74197 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://download.macromedia.com/pub/labs/flashplayer10/flashplayer10_rtmfp_faq_071708.pdf) /S /URI >> /H /I >> endobj 82 0 obj << /Type /Annot /Subtype /Link /Rect [ 442.02502 299.567 469.54703 309.74197 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://download.macromedia.com/pub/labs/flashplayer10/flashplayer10_rtmfp_faq_071708.pdf) /S /URI >> /H /I >> endobj 83 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 284.16797 528.837 294.34296 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://download.macromedia.com/pub/labs/flashplayer10/flashplayer10_rtmfp_faq_071708.pdf) /S /URI >> /H /I >> endobj 84 0 obj << /Length 85 0 R /Filter /FlateDecode >> stream xX[o8~_˂/qbJ -V̌ۉC.-{rss]Ul܏K< ?/ >AB{׊ ”yG$d'?@8 0=QKo τ^|_Wu~;zqac20Z]@懈p訇g!upu![Dbxx׷A$ @ 4SJsOmחʋXsw}zw V@ LL84s5p][ISU.)Co#) d,Ϊ+3Yn9'Ŵ1uQ dsg t%Mɗ1uԗ G th܅!d>|Fԣ <ĸ$O *`ez;>vG1#`aw,֞班1w+.3gD.@)g Cb%8vgmtPieQo-!T0pqm&Q3wUvvs #q%Ncu8=N?OY|[Ly)tYUl EA#ZD=E})8kx֙ %Gm伻.v3;vP俰\TE=`hWڨ\FC (&;1 |dPB;SH_wQ1hYzU:+^;$ 6O-KUjk,tC)rBvɔJ[aSP!)`$񗙎>E"pX@ 1ٕTkL ;((}b @DrQ \#'54pSj>$yIb.kSIN>u bjSz܀ ¹Ʀ&Lz?1夢C0Cz%׺vssȧ̦v5%e9'*: 27seN@#FL`n:H@B䕨ocz/q18::(B?*fD*?r+$HPTm7vj +t|F&OisoL\dqmanUVǤMHΦҡ qu>$Y ӛǗj#!h s1' ڨoV?hm2RChGVo?n_?pHB,a{;0B7ÎкϡTb*& }y3Ib=X#-zs-/qi!)V>輴tr)@I;.7ev藼Sj)4<;Ri dS.1^7c0j:8Blifm&ի.J+eeqHWQ8fhA" װz\:`H>$nxi}*KBMNnCCZlPqzH(2}.zD] =s;,? &̾G%vzCc LG{4k>kiYH endstream endobj 78 0 obj [ 77 0 R 79 0 R 80 0 R 81 0 R 82 0 R 83 0 R ] endobj 76 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 84 0 R /Annots 78 0 R >> endobj 85 0 obj 1707 endobj 88 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 786.58295 306.89 796.758 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.videokent.com/videochat.php) /S /URI >> /H /I >> endobj 90 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 760.526 213.951 770.701 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.weekee.tv) /S /URI >> /H /I >> endobj 91 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 734.469 201.73 744.644 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://blipback.com) /S /URI >> /H /I >> endobj 92 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 677.61395 250.01999 687.789 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://artemis.effectiveui.com) /S /URI >> /H /I >> endobj 93 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 651.557 187.672 661.732 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://jooce.com) /S /URI >> /H /I >> endobj 94 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 594.70197 235.368 604.87695 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://facebook.com/video) /S /URI >> /H /I >> endobj 95 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 537.847 201.73 548.022 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.f-ab.net) /S /URI >> /H /I >> endobj 96 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 480.99197 525.13 491.16696 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.streamingvideosoftware.info) /S /URI >> /H /I >> endobj 97 0 obj << /Type /Annot /Subtype /Link /Rect [ 113.081 465.593 304.426 475.76797 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.streamingvideosoftware.info) /S /URI >> /H /I >> endobj 98 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 424.13696 211.52 434.31195 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://pixelquote.com) /S /URI >> /H /I >> endobj 99 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 382.68097 300.77402 392.85596 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://nonoba.com/chris/fridge-magnets) /S /URI >> /H /I >> endobj 100 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 356.62396 237.172 366.79895 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.quarterlife.com) /S /URI >> /H /I >> endobj 101 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 330.567 215.183 340.74197 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.avchat.net) /S /URI >> /H /I >> endobj 102 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 304.50998 353.34302 314.68497 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.avchat.net/fms-bandwidth-checker.php) /S /URI >> /H /I >> endobj 103 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 263.054 272.02 273.22897 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.justepourrire-nantes.fr) /S /URI >> /H /I >> endobj 104 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 236.99698 285.484 247.17198 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.nielsenaa.com/TV/tv.php) /S /URI >> /H /I >> endobj 105 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 195.54099 258.578 205.71599 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.videoflashchat.com) /S /URI >> /H /I >> endobj 106 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 154.08499 227.998 164.26 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.videogirls.biz) /S /URI >> /H /I >> endobj 107 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 112.629 243.90399 122.804 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.ligachannel.com) /S /URI >> /H /I >> endobj 108 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 71.173004 219.44 81.34801 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.sticko.com/) /S /URI >> /H /I >> endobj 109 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 45.115997 217.009 55.290997 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.zingaya.jp/) /S /URI >> /H /I >> endobj 110 0 obj << /Length 111 0 R /Filter /FlateDecode >> stream xYYs6~ׯ`aˮ0y(lR-\8yD QT軿\ϵ Ł8N';^}rC\=qFxG!Ɓst{q8sMb̏{ίW_@qWʑG"xŖm{#Ws~k)(u\y (BR`oΗ7 Ӳ+^:o};mǪ}<9]V!AzʪfXeyڡ:Mp"NٺrAvRԝSn5+iTQUb1+u;骆RUfdG箪ZV';PCrg2X!y UgrrginYE2ߋ9;uKOm*ՒY>TUR5mj3 Wfѡ*Q|?Ќ2=ſ%AOS0YW]վ;2$ԐPPO\/gI&BmV1Іbr=je*݁7cOGڶA@/J+Uɘ|i /֌ |TCg*m]BK>~ˍIfE[F4D_W~X[N;UppH4~$d&ׅ:ӨKE-IuJ^ 5N7'`Cӑ(viV#B|y1feP=F ЩSxIgJrÆuUEo|ar9 *M%Ejn 3ϏNʦ=O`vLԢ oǫW endstream endobj 89 0 obj [ 88 0 R 90 0 R 91 0 R 92 0 R 93 0 R 94 0 R 95 0 R 96 0 R 97 0 R 98 0 R 99 0 R 100 0 R 101 0 R 102 0 R 103 0 R 104 0 R 105 0 R 106 0 R 107 0 R 108 0 R 109 0 R ] endobj 87 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 110 0 R /Annots 89 0 R >> endobj 111 0 obj 2424 endobj 113 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 786.58295 309.321 796.758 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.gchats.com/red5chat/visichat/) /S /URI >> /H /I >> endobj 115 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 760.40497 251.252 770.57996 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.agileagenda.com/) /S /URI >> /H /I >> endobj 116 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 734.227 308.1 744.402 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.videoondemandsoftware.com) /S /URI >> /H /I >> endobj 117 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 692.64996 272.031 702.82495 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.videochatsoftware.org) /S /URI >> /H /I >> endobj 118 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 666.472 252.484 676.647 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.hubbabubba.com/) /S /URI >> /H /I >> endobj 119 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 640.294 236.567 650.469 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.deltastrike.org/) /S /URI >> /H /I >> endobj 120 0 obj << /Type /Annot /Subtype /Link /Rect [ 163.824 561.76 257.951 571.935 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.infrared5.com) /S /URI >> /H /I >> endobj 121 0 obj << /Type /Annot /Subtype /Link /Rect [ 264.06702 561.76 385.716 571.935 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.infrared5.com) /S /URI >> /H /I >> endobj 122 0 obj << /Type /Annot /Subtype /Link /Rect [ 178.487 535.582 309.29898 545.75696 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.red5server.com) /S /URI >> /H /I >> endobj 123 0 obj << /Type /Annot /Subtype /Link /Rect [ 178.487 483.22598 309.29898 493.40097 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.red5server.com) /S /URI >> /H /I >> endobj 124 0 obj << /Type /Annot /Subtype /Link /Rect [ 122.871 430.86996 261.031 441.04495 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://red5server.com/forum/) /S /URI >> /H /I >> endobj 125 0 obj << /Type /Annot /Subtype /Link /Rect [ 122.871 378.51398 257.38998 388.68896 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://jedai.googlecode.com) /S /URI >> /H /I >> endobj 126 0 obj << /Type /Annot /Subtype /Link /Rect [ 133.871 326.158 268.38998 336.33298 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://jedai.googlecode.com) /S /URI >> /H /I >> endobj 127 0 obj << /Type /Annot /Subtype /Link /Rect [ 133.871 299.97998 311.796 310.15497 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://paperworld3d.googlecode.com) /S /URI >> /H /I >> endobj 128 0 obj << /Type /Annot /Subtype /Link /Rect [ 121.65 247.624 292.832 257.79898 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://trac.red5.org/wiki/Red5Plugin) /S /URI >> /H /I >> endobj 129 0 obj << /Type /Annot /Subtype /Link /Rect [ 121.65 195.26797 261.647 205.44298 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.paperworld3d.org) /S /URI >> /H /I >> endobj 130 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 142.91196 203.578 153.08696 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.linkedin.com/e/gis/64004/24689F7691AB) /S /URI >> /H /I >> endobj 131 0 obj << /Type /Annot /Subtype /Link /Rect [ 209.694 142.91196 464.652 153.08696 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.linkedin.com/e/gis/64004/24689F7691AB) /S /URI >> /H /I >> endobj 132 0 obj << /Length 133 0 R /Filter /FlateDecode >> stream xX[o6~+͋(}Ҧ:tXC Zdɕ;E](J^ utxxsH$TB`vo R$'SWa0Q` iR ^q>z0 hE:EO{I(Bˎ{H}TCyZ5VwOAD)@x ^AgU2|f*ɳ2x~_P"J%ScHd>I]fsXœU>RxD$)2 q[1E3[\pпwO)o\ZJ$PMNR44O1M޸'ECk8O:>]Q^_nmk7Bj!VeجJde9qiWERUm. ~C(Q&Jx]O1.ҔHfq4b6o퍪l*nC5M2:&Ndgwxڧ6@xg]anR-af tZ+("1o÷žgm.K%ĩUEK{S ͗w96,iCRVz3JiKs>sgOE܋q̀C4 $!E!^s?=)4\^X#k0Hp&&9"(Კ=^CSqΑop0:,?Rr.I)6A6m|3p̳}aq+GZcVV|ʋѢϦZI{}{Yi E_]Kl]dMH`J=ncA<ߤz#Jt1Ci]o@lG| J(M H=oNJ}):9ltr1̉H?SN&rާk|әP uEVVukg'dnh(O=di*IY|5;^7yLBWc>Fo/1ԫa]Ħr|6ɓ ^"" nl!ɺoI6qpқC bKg$:\F0Kjby(kY%M;gP]W@~LuS"B޴)󠭤SW:yVi^vCҕۭogyZIՂEG\'eyw|#yi[ݿw {!߷Nl_l0Jsi?>F$69)3fM_Yn endstream endobj 114 0 obj [ 113 0 R 115 0 R 116 0 R 117 0 R 118 0 R 119 0 R 120 0 R 121 0 R 122 0 R 123 0 R 124 0 R 125 0 R 126 0 R 127 0 R 128 0 R 129 0 R 130 0 R 131 0 R ] endobj 112 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 132 0 R /Annots 114 0 R >> endobj 133 0 obj 1859 endobj 135 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 786.58295 265.277 796.758 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 134 0 R /H /I >> endobj 138 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 729.808 290.324 739.983 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 137 0 R /H /I >> endobj 140 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 703.346 389.379 713.521 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 139 0 R /H /I >> endobj 142 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 646.571 276.893 656.746 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 141 0 R /H /I >> endobj 144 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 620.109 274.451 630.284 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 143 0 R /H /I >> endobj 146 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 563.334 319.70502 573.509 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 145 0 R /H /I >> endobj 148 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 536.872 293.99802 547.047 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 147 0 R /H /I >> endobj 150 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 510.40997 293.99802 520.58496 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 149 0 R /H /I >> endobj 152 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 453.63498 338.625 463.80997 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 151 0 R /H /I >> endobj 154 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 343.93597 214.545 354.11096 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 153 0 R /H /I >> endobj 156 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 317.47397 187.661 327.64896 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 155 0 R /H /I >> endobj 158 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 207.775 389.984 217.95 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 157 0 R /H /I >> endobj 160 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 150.99997 238.39299 161.17497 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 159 0 R /H /I >> endobj 162 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 98.07596 355.147 108.25096 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 161 0 R /H /I >> endobj 164 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 71.61398 232.882 81.78899 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 163 0 R /H /I >> endobj 166 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 45.151947 187.045 55.326946 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 165 0 R /H /I >> endobj 167 0 obj << /Length 168 0 R /Filter /FlateDecode >> stream xXKS8ϯQSeC*)^!`fe&)JF~%_?P|B!$QIB B*]Ч )m9lHZ6"Y_:EG| 1 hOi£G卢b%  u ta}T _vϓLޫ~'=_պ^U^işKFX@[}XUp}/H+'@0ZgcJEKJ [H>D3,.M`Zet`R!Z%OF1et=]訅:~R%G Gx :8u%n@+"44_M2ar뒙= {Ppa< ֎ɍ> eʑ(%`@}A dR Z]^ާl6R0ԩ(`5ipUٻ %^Mw<6)+hF:TNcV%q2={uvfKKW2C &c5yV3# f.y86Q(+7TvҬ2HljSݟLDqySĎ MS-xLIY(FO[ \DEjfls:Y cWQ )d37_\6|O*KB5Q)6Aָ[W߯(+kߦE>h3@iczy iDz㌘ Tf%ؼg&lc>d3d JJA`)6)zznJu"kTL8 Moozg;uuCOa$cd#WwԷܲq`vM$jBp]8wj"Cw.O7bW?o endstream endobj 136 0 obj [ 135 0 R 138 0 R 140 0 R 142 0 R 144 0 R 146 0 R 148 0 R 150 0 R 152 0 R 154 0 R 156 0 R 158 0 R 160 0 R 162 0 R 164 0 R 166 0 R ] endobj 29 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 167 0 R /Annots 136 0 R >> endobj 168 0 obj 1359 endobj 170 0 obj << /Type /Annot /Subtype /Link /Rect [ 479.315 771.18396 506.837 781.35895 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://localhost:5080/) /S /URI >> /H /I >> endobj 172 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 755.785 173.009 765.95996 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://localhost:5080/) /S /URI >> /H /I >> endobj 173 0 obj << /Length 174 0 R /Filter /FlateDecode >> stream xVMo Wpl] leՕaWFuHc148SE̼y@0@N1䜋8F -I SL8B`D؁!ƅ9dЬv43b[p?'Mc dC&bF!=}Xp,k_[W @71dD/<\ܔ :X ի\{yUZ' ~tUHbܓk*0w*&M)UYNq58Iiܴ-"@<5[Ƙ8C9ÿUtf9r1h23^"]tPs Ogx! !e1B$a?%H!FMzi4 ;Ԉz;OרRypL~%Ҙ`$+Uo/[Ȋ;PHUQȴv7cq5k @F8I)g)%E 'A-hCeY[N?> endobj 174 0 obj 860 endobj 176 0 obj << /Type /Annot /Subtype /Link /Rect [ 221.321 667.247 363.16602 677.422 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://jetty.mortbay.org/jetty6/) /S /URI >> /H /I >> endobj 178 0 obj << /Type /Annot /Subtype /Link /Rect [ 441.431 512.171 468.953 522.346 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://logging.apache.org/log4j/docs/) /S /URI >> /H /I >> endobj 179 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 496.77197 248.21599 506.94696 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://logging.apache.org/log4j/docs/) /S /URI >> /H /I >> endobj 180 0 obj << /Type /Annot /Subtype /Link /Rect [ 422.43402 117.715 544.116 127.89 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://tomcat.apache.org/tomcat-5.5-doc/realm-howto.html) /S /URI >> /H /I >> endobj 181 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 102.31595 259.788 112.49095 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://tomcat.apache.org/tomcat-5.5-doc/realm-howto.html) /S /URI >> /H /I >> endobj 182 0 obj << /Type /Annot /Subtype /Link /Rect [ 487.268 75.92099 514.79 86.09599 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://tomcat.apache.org/tomcat-5.5-doc/catalina/docs/api/org/apache/catalina/realm/package-summary.html) /S /URI >> /H /I >> endobj 183 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 60.522003 529.442 70.69701 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://tomcat.apache.org/tomcat-5.5-doc/catalina/docs/api/org/apache/catalina/realm/package-summary.html) /S /URI >> /H /I >> endobj 184 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 45.122955 168.081 55.297955 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://tomcat.apache.org/tomcat-5.5-doc/catalina/docs/api/org/apache/catalina/realm/package-summary.html) /S /URI >> /H /I >> endobj 185 0 obj << /Length 186 0 R /Filter /FlateDecode >> stream xYKsWLdU@<!'ˮcUaD"C33fy*VYi_7d~R ls\kE$ApD$x1LEv̦$ٝ!0}i> a\ci1.cNIb.0B |OؤQF,  SNIb.7B |OؤFԁEwSk ܐsimsı@O9Mux&ЏdƘv6^WwUH5K:Sts NLL͋( -:AxNH:U1,!W$#$^+Z2ąo;d?r\ $1iMX:M¯ƓsQ$,\,'`1MdW9]"'HF1 iDpa6{_?Uzc \(_rа~,ko?~{v%QsuGMRsO LWN ڦWwv9Q"ןٴUl7cŐ1ivmЏcxD;S`[[Mh~o l?6avD.MBmq8 l6}$yaw(k}9߂ąM^8CQNwƌ8fW\ŤS֩O=~\;h޿蝏zg#/T As겚,eyFؔ%hawil5\GyqH41TRV}濁 K{(z޾9Q ģz0jffJ7ϔA#V!P@|\w.w|ܻgx "Jc[?۟b8GPpTIR%\2L\A%tt%2 |.qH:QܑC5ٔ=:лײ/*+ =}a|4 NWfL_f^'DT=791'`lή>L9Բl}qqxr%#d Nˆ,C曠=>AlI"!-`v3Ûܾ%B;".hŮ!'QQnUQv, =+Ta$gIWcX !c9Dr&!=IP׶bH%sԡڤUfngjsj#yHDP4l6].;as !5 }zNaGs|{wn#)s-YH`B6<9H ݽC:icykWF8c}mD¦q4v0.éKamuI_]L HCZ.q@qoxN- endstream endobj 177 0 obj [ 176 0 R 178 0 R 179 0 R 180 0 R 181 0 R 182 0 R 183 0 R 184 0 R ] endobj 175 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 185 0 R /Annots 177 0 R >> endobj 186 0 obj 2090 endobj 188 0 obj << /Length 189 0 R /Filter /FlateDecode >> stream xZ_s6קɞ9D$7Mi>P2dDI}[%T\b,GWAP\4ɢ~/Q8IqH(_@Lh4IiM+<}aWB{E>{?<>q;by`Ox}˩-9EPռ??-2RiZ$)۴£6mh k\->aX gdCq(l!Br!`Ә\L? MsWpZmզ1J}p|bqW@ ' {Z$pGH8qHČƲ(1hɃ%I0kM0dY:LyLN`p( hd-&g~ b,0N/a$cy_s6V\ͩѷFXIRKF,t|nxymOwfxu֝5H[s WBwaJo@fCAC?<MւG◺YAޜĔh|>MD;>:rN8o7~6̷ǧ[Ͽsqkzxm!D?.jÛW~:ͦJx=ߏ[MwK͆cyW|{Aɘ?na:T+~-۪olvMVMMV96:8zƠvtM0Q) e*y,wx&ؗ:΄~+]^vJ慃Eݴ~˹&_>R;HngzǦ2\&,ai qZr (:A1dW=NXYc*b ѫĘw0Nʈp ڏv6igixSbr&:W?|GS.7MM]75/X燾4+d Oi͗dZԏdGyʠA0ؒBQ,A$"bX 8jyסT.a \A; #w3^K:֖pI-"CΌD\^%i<ΏiV :t%+ a[[ɐ!2K0p𱑌t#Yptv޸U(5'c@Bt|J\@y\]>? x5_%9q0UAI N) !aK}u&(QbA9*\tAqb$`\P3MㅣgӾ0v(Y~cAkLHƂ֘!p~pJh% dDnH,N7B`X?I*d :<8%%AY=ҠiS, ‹soĩp⼈\?LmT,YdOZE$_XKÉE~lD|3Z\BFAmZ=Y1$_f[Ƕst.c{/iX\v]]o*)/)GUcu?ߜE_σ-ZoA&)%a(:ꄱB'u8'qQ8@Θ(fNy#3m ki u;gz@_zຫjf@uNJI8 g\5Oy}S1i{sVR4Ճ_|Pg A#6eӀJsyHel2ܴ_FcͦIՏW=PkYZϊVϼ+S>?osMO0J#OO~M|32c%Zy;aֽ8_KK*kE <ihZ@[w9Sn܄*Rn;Uv 7Qcao0$X xud}W;:`wtVAZCA Ot߇DM**S=U&(P5ߝ3PO6!78sK0,m ut74yL#PpH螋G/u3t蠻8@Pt |z+$jÐ!&B )nm$2_u_hf”a+BJۥ9E9ӹ |E9pbYKyxUB!W%IJUI'4T걬9c+w`SI 7i""r.kw!)gLn>> endobj 189 0 obj 2593 endobj 191 0 obj << /Type /Annot /Subtype /Link /Rect [ 158.324 703.107 309.97 713.282 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://ehcache.sourceforge.net/) /S /URI >> /H /I >> endobj 193 0 obj << /Type /Annot /Subtype /Link /Rect [ 172.976 412.93198 328.879 423.10696 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (https://whirlycache.dev.java.net/) /S /URI >> /H /I >> endobj 194 0 obj << /Length 195 0 R /Filter /FlateDecode >> stream x\Y6~_ՓS#*l+T>v옺&QfׇU6 P!pb)"tE+HYH<CF=\>MP+>hޖqh2`##A@{)!g1=8U}GiM+WNF0I4N5 3ՆeCNmDx18Q.nXN]U?;n%1• ޭU{y(ۻ5U e3*ևM]V'}:2Y:f&cqp9cmȧ2Pu}l<JJF6{(G[X'x:+2bt[>)ǙslrAY? fĦ,#VY|5&W\uO¾He!Lq׶ʻ>{jrRkJT$SŠ(.P)YwR4CT.b#Al-URG",o^ Uv*Qan+}SJoa?1@qlDlho =]2n[m.*Da˽ S|=*!.Bl=t*O})8:씣V.$%MBr֢sȻϱ\TD AlXxT ȵ`vcь-lQkdHxJ52|@5M dR̀/23jVoںf.ɱ"tŚG"JJE\q{8m@&&KO,5)liS7q!D\|h@ۊ?DZ]EF0  O|ZJꖇB!W/V!O)>5)!T!U05@DkTk}y`5ef,Px]lB'Y Q~٩H-ԣ9 ݼ"s[bMBЭQ[ DF*۲9MiofӦ3E6Zu wlI8=o.^>|'(^֤XoS|kTQPg}d*FNU6R.O(O2Jr~eRt",&|e`PDI89P=2I8Q燰yKů&2*X FejU?n_?U,K{/1fܗɅ6܅`w?,5)T!U05@pkTWesxxsFpdp̓ۂ@p;`7ٗX77tusa:TMis{z5 /ޙXu< wץrJP\p -N΂ Ogi9{3p,qT]?lPs;m4J~գ!ޖqw#4*f)N۹Ө+?hc9I1rJQnk9^! R T^sJTp] l [IQ6!Jmk2j_γ Ir rX5`F¿FUphtQ͜[h':?{z}ꚹ2MUY` ^yVKK F/"ySLJ0Z]XҩffmZ P+khg^xI`X8<Z}r(wyx My.tCՖ?۪8O߰h#Ѿ,yהޗv?/>yq ]}|yiGY!JWu""qՍB{ Ih)DaQN]mt5NKiF: /ؖ)_ @t.z49nK{rPהw+O]bS0`.P; &FL/])%,|'{oww̒{1˝'5y4g0+Zr'cB,\X6@[` [?_7W endstream endobj 192 0 obj [ 191 0 R 193 0 R ] endobj 190 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 194 0 R /Annots 192 0 R >> endobj 195 0 obj 3789 endobj 197 0 obj << /Type /Annot /Subtype /Link /Rect [ 221.321 475.94998 363.16602 486.12497 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://jetty.mortbay.org/jetty6/) /S /URI >> /H /I >> endobj 199 0 obj << /Type /Annot /Subtype /Link /Rect [ 246.379 371.30997 478.094 381.48495 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://tomcat.apache.org/tomcat-5.5-doc/jasper-howto.html#Configuration) /S /URI >> /H /I >> endobj 200 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 355.91098 223.741 366.08597 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://tomcat.apache.org/tomcat-5.5-doc/jasper-howto.html#Configuration) /S /URI >> /H /I >> endobj 201 0 obj << /Length 202 0 R /Filter /FlateDecode >> stream xZݏ_!lz4IzI!Mz[C.(d|\YJO#r7($- FB%z/I 4C+V \pT03&v-zoܭ)8,p/ #=/,&ȁYiK157:fbyG2B8֡EF'g9l_mmMﶻ65{xl@ LIK}bdLo߬-b ! 9L!)*d ,GJ嬂!A2ES[|1ߒc:__=ʩ@R)եɈJcpbbtoP&sZΎIF4EN&0I3#Ku굊&e˱tdnVcW2l AX-;ɣ K`BdڃDJC_%"K|#Ucm }sn׵U@!V0U\8C1vۯu|~֎(x_ѺS&Q.RT> 3ܷ4u׽L&ddEe)>1TX^ ,klU+TS]]ꤚiDm9AOMhJۂ,8bLj94$` J>B Xg bNϽlp4&+[l%4^꬝Li05ޜ=0Ehl:Pzd㞌Ll7| Y@2CNq^(SZAN[m'e#nÐTcR*/sZ\=7m?vWƛ8RHIPOi9'(N:w| jhѡРLJǦzS;xʛ׸34g{v{jҎe9j.GLQ2 R\W&AswiӘ n]$RbĔHRUbP vN @{pzC8ATn ~7{DE1&}_w'|S=|1vzLW&]cd̊ʼ{w;v:cxRD>5.@tlОjXzSw]ɞ ȟ4Zmwjgl]num Bi-9 ⾮E[k_/VG}7oUbʡl>+777Q94NF٨z9t̛q֘~|̡3%򑚨yWC"a<3ᬅ`sw"e Ncze83h:HQѶ7mǧq)SM"gp3Y[1?lV|ݿ2ߨwDH*4~ ASJq̩yk ˨yۜ2oXOΤnpauOuI#~جUP ۘ bQyL_/AO~"ʧBQMхBGUFztά $٠I/v(N#Ʊ짾%9'; =VpcRO=-Z,zd:[R8Щ7VRtt>uS;~j㬞였k/n5S9Ox9cʉXR>;r{H7sEFJFJFJUඳ(sBaoxmSAäϡf 0I[#( ;\lt 1.S"FIKs8qaWD3 *3%'Hrwf/SjԺe-?B_6aRx endstream endobj 198 0 obj [ 197 0 R 199 0 R 200 0 R ] endobj 196 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 201 0 R /Annots 198 0 R >> endobj 202 0 obj 2317 endobj 204 0 obj << /Length 205 0 R /Filter /FlateDecode >> stream xYKs6W>%x@LډId%wAR${%vv )0;'GqRZJ,i>B)+GD/%Ƽ \OKSZ\Ŭ_Xemi߳ >}wFxYB|ȸDDPհڥCEW7] @$~\u߫ڽ.7goo+DT] cvF} MŇ0 aH.NQ%h9&X%G2E3,>M7o m/na1"RkR]49'<u kQ+!qR+!鈅cX"J+Z2ąĸg!Q.CNcF4*٘Q೾B/)|=fAk:#JLV4K-Y[ HL1VA(njŕnzc}ct e=m./'2@_O*>WG0CxCIpD&}O`wjV`L#d^;Ftg4A+ ym:c}_S~TG+bnVYRЪoZHePx&ck<=J=Ղ W@ZNci eҶQ٬LeowNM|FwgF of)̢A3رəs&µ@sGxЕ&G6 ttB ʜՃ#Sxz HVF\ҭAID' o9>pҌ'M|3&~>ɟϐ3`սS5@Tœ)/6krS$2fMq>)g3ϕ}p>WpmiʞN͚M З79L9(Ѥj9;)GC99qǘ_uH!.JQ,Vi< nҏ'D C"@fm%Ʌo~3=S[i-⤤?1є'n"OP->f+rD+2*,cfFJ endstream endobj 203 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 204 0 R >> endobj 205 0 obj 1890 endobj 207 0 obj << /Type /Annot /Subtype /Link /Rect [ 393.108 554.04596 534.348 564.22095 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/IScopeHandler.html) /S /URI >> /H /I >> endobj 209 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 538.647 308.716 548.82196 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/IScopeHandler.html) /S /URI >> /H /I >> endobj 210 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 451.68198 492.152 461.85696 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html) /S /URI >> /H /I >> endobj 211 0 obj << /Type /Annot /Subtype /Link /Rect [ 324.633 368.56796 527.627 378.74295 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html) /S /URI >> /H /I >> endobj 212 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 353.16898 289.158 363.34396 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html) /S /URI >> /H /I >> endobj 213 0 obj << /Type /Annot /Subtype /Link /Rect [ 323.423 128.24295 526.417 138.41795 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html) /S /URI >> /H /I >> endobj 214 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 112.84396 289.158 123.01897 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html) /S /URI >> /H /I >> endobj 215 0 obj << /Length 216 0 R /Filter /FlateDecode >> stream xZn6}xMR.ysx`6qd5ۭݖԑoQ)RL6XuXux3 0|KOJ$c̃!}# 8Aa"c&Ŕe`xp |Hgxz!eSmpo]f;7ҫ|@!DkܠGB[jQz<`R`9K ]:"x,x4 !!l$)4҇C ')d\qaӧt2z%$NpI6hegHb̿4Ei tZ3WxH?l$ $x؏Ҕ)h1+~~S ,,͒Mx;s5eX0PljqY-b,\0A!!L<U:j|M.j-W0Z845nY{P}EI4F{%^1iND][R%/\"NRY^)(Qx8]KQuUyS< |;RU۞D"t >dySbWd M]ȳyi(5R+[jW? McV'?4>ߩAgEƔ)AOE'L: ̈-눤vhNӡNm#ڃ3?N. `zCyÎarŶnJ L< R{!8}tݟ+8YĈD.?5BsӍ'f]Sw !l"JO ;;Pf9%KΨ| L?E4`A,tyY Nx\2N!F!K+ JO:eo<=V Y^5/B9Mdh+$XT/ݮ& DE%5U; Aa V+&T"pZ8z8Hh'Xn!]{ S1f`'gjý 3Oq*.uHokh=""V4ml19IQ&iZ]2>frY[slu=4hF3?׳&*~_EhNLSle,cB*U-)bD9B)Er|mvOC52V>/M![FcW56kϒec,VG9s2s=kQ:|q{^_@U\\f̂tc5]~م8 T8\?F7^$"dr"3]fDa~eaq9Srnb}3Վrl%4TW4%ŻwBY=،\g◘ssPL=^H}O#pSc$/qWͧc[s"Nc٢!Rӯ>d+G_oڮY*^~> endobj 216 0 obj 2367 endobj 218 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 786.58295 169.958 796.758 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 217 0 R /H /I >> endobj 220 0 obj << /Type /Annot /Subtype /Link /Rect [ 540.669 786.58295 546.785 796.758 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 217 0 R /H /I >> endobj 222 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 771.18396 265.521 781.35895 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 221 0 R /H /I >> endobj 223 0 obj << /Type /Annot /Subtype /Link /Rect [ 539.815 771.18396 545.93097 781.35895 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 221 0 R /H /I >> endobj 225 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 755.785 184.52899 765.95996 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 224 0 R /H /I >> endobj 226 0 obj << /Type /Annot /Subtype /Link /Rect [ 540.479 755.785 546.595 765.95996 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 224 0 R /H /I >> endobj 228 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 740.386 276.075 750.561 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 227 0 R /H /I >> endobj 229 0 obj << /Type /Annot /Subtype /Link /Rect [ 539.81396 740.386 545.93 750.561 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 227 0 R /H /I >> endobj 231 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 724.987 219.134 735.162 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 230 0 R /H /I >> endobj 232 0 obj << /Type /Annot /Subtype /Link /Rect [ 540.58997 724.987 546.706 735.162 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 230 0 R /H /I >> endobj 234 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 709.58795 241.894 719.763 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 233 0 R /H /I >> endobj 235 0 obj << /Type /Annot /Subtype /Link /Rect [ 540.558 709.58795 546.674 719.763 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 233 0 R /H /I >> endobj 237 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 694.18896 276.58398 704.36395 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 236 0 R /H /I >> endobj 238 0 obj << /Type /Annot /Subtype /Link /Rect [ 540.242 694.18896 546.358 704.36395 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 236 0 R /H /I >> endobj 240 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 678.79 268.065 688.96497 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 239 0 R /H /I >> endobj 241 0 obj << /Type /Annot /Subtype /Link /Rect [ 540.32 678.79 546.436 688.96497 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 239 0 R /H /I >> endobj 243 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 663.391 252.844 673.566 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 242 0 R /H /I >> endobj 244 0 obj << /Type /Annot /Subtype /Link /Rect [ 540.458 663.391 546.574 673.566 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 242 0 R /H /I >> endobj 246 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 647.992 240.065 658.167 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 245 0 R /H /I >> endobj 247 0 obj << /Type /Annot /Subtype /Link /Rect [ 540.574 647.992 546.69 658.167 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 245 0 R /H /I >> endobj 249 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 632.59296 249.811 642.76794 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 248 0 R /H /I >> endobj 250 0 obj << /Type /Annot /Subtype /Link /Rect [ 540.486 632.59296 546.602 642.76794 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 248 0 R /H /I >> endobj 252 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 617.194 245.54 627.36896 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 251 0 R /H /I >> endobj 253 0 obj << /Type /Annot /Subtype /Link /Rect [ 540.524 617.194 546.64 627.36896 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 251 0 R /H /I >> endobj 255 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 601.795 279.40298 611.97 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 254 0 R /H /I >> endobj 256 0 obj << /Type /Annot /Subtype /Link /Rect [ 540.122 601.795 546.238 611.97 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 254 0 R /H /I >> endobj 258 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 586.396 229.728 596.571 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 257 0 R /H /I >> endobj 259 0 obj << /Type /Annot /Subtype /Link /Rect [ 540.66797 586.396 546.784 596.571 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 257 0 R /H /I >> endobj 261 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 570.997 303.89 581.172 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 260 0 R /H /I >> endobj 262 0 obj << /Type /Annot /Subtype /Link /Rect [ 539.804 570.997 545.92 581.172 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 260 0 R /H /I >> endobj 264 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 555.59796 231.535 565.77295 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 263 0 R /H /I >> endobj 265 0 obj << /Type /Annot /Subtype /Link /Rect [ 540.652 555.59796 546.768 565.77295 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 263 0 R /H /I >> endobj 267 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 540.199 287.546 550.37396 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 266 0 R /H /I >> endobj 268 0 obj << /Type /Annot /Subtype /Link /Rect [ 540.144 540.199 546.26 550.37396 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 266 0 R /H /I >> endobj 270 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 524.8 211.817 534.975 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 269 0 R /H /I >> endobj 271 0 obj << /Type /Annot /Subtype /Link /Rect [ 540.652 524.8 546.768 534.975 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 269 0 R /H /I >> endobj 273 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 509.40097 241.894 519.576 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 272 0 R /H /I >> endobj 274 0 obj << /Type /Annot /Subtype /Link /Rect [ 540.558 509.40097 546.674 519.576 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 272 0 R /H /I >> endobj 276 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 494.00198 276.58398 504.17697 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 275 0 R /H /I >> endobj 277 0 obj << /Type /Annot /Subtype /Link /Rect [ 540.242 494.00198 546.358 504.17697 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 275 0 R /H /I >> endobj 279 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 478.60297 268.065 488.77795 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 278 0 R /H /I >> endobj 280 0 obj << /Type /Annot /Subtype /Link /Rect [ 540.32 478.60297 546.436 488.77795 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 278 0 R /H /I >> endobj 282 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 463.20398 252.844 473.37897 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 281 0 R /H /I >> endobj 283 0 obj << /Type /Annot /Subtype /Link /Rect [ 540.458 463.20398 546.574 473.37897 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 281 0 R /H /I >> endobj 285 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 447.80496 240.065 457.97995 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 284 0 R /H /I >> endobj 286 0 obj << /Type /Annot /Subtype /Link /Rect [ 540.574 447.80496 546.69 457.97995 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 284 0 R /H /I >> endobj 288 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 432.40598 249.811 442.58096 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 287 0 R /H /I >> endobj 289 0 obj << /Type /Annot /Subtype /Link /Rect [ 540.486 432.40598 546.602 442.58096 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 287 0 R /H /I >> endobj 291 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 417.007 245.54 427.18198 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 290 0 R /H /I >> endobj 292 0 obj << /Type /Annot /Subtype /Link /Rect [ 540.524 417.007 546.64 427.18198 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 290 0 R /H /I >> endobj 294 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 401.60797 279.40298 411.78296 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 293 0 R /H /I >> endobj 295 0 obj << /Type /Annot /Subtype /Link /Rect [ 540.122 401.60797 546.238 411.78296 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 293 0 R /H /I >> endobj 297 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 386.20898 229.728 396.38397 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 296 0 R /H /I >> endobj 298 0 obj << /Type /Annot /Subtype /Link /Rect [ 540.66797 386.20898 546.784 396.38397 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 296 0 R /H /I >> endobj 299 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 370.80997 303.89 380.98495 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 157 0 R /H /I >> endobj 300 0 obj << /Type /Annot /Subtype /Link /Rect [ 539.804 370.80997 545.92 380.98495 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 157 0 R /H /I >> endobj 302 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 355.41098 231.535 365.58597 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 301 0 R /H /I >> endobj 303 0 obj << /Type /Annot /Subtype /Link /Rect [ 540.652 355.41098 546.768 365.58597 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 301 0 R /H /I >> endobj 305 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 340.01196 287.546 350.18695 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 304 0 R /H /I >> endobj 306 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.0 340.01196 546.232 350.18695 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 304 0 R /H /I >> endobj 308 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 324.61298 229.089 334.78796 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 307 0 R /H /I >> endobj 309 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.15497 324.61298 546.38696 334.78796 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 307 0 R /H /I >> endobj 310 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 309.214 246.22299 319.38898 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 307 0 R /H /I >> endobj 311 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.154 309.214 546.386 319.38898 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 307 0 R /H /I >> endobj 313 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 293.81497 243.09799 303.98996 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 312 0 R /H /I >> endobj 314 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.402 293.81497 546.634 303.98996 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 312 0 R /H /I >> endobj 316 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 278.416 244.325 288.59097 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 315 0 R /H /I >> endobj 317 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.39197 278.416 546.62396 288.59097 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 315 0 R /H /I >> endobj 319 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 263.017 277.8 273.192 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 318 0 R /H /I >> endobj 320 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.088 263.017 546.32 273.192 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 318 0 R /H /I >> endobj 322 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 247.61795 316.335 257.79294 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 321 0 R /H /I >> endobj 323 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.66797 247.61795 545.89996 257.79294 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 321 0 R /H /I >> endobj 325 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 232.21896 333.887 242.39397 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 324 0 R /H /I >> endobj 326 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.511 232.21896 545.743 242.39397 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 324 0 R /H /I >> endobj 328 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 216.81998 262.59 226.99498 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 327 0 R /H /I >> endobj 329 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.226 216.81998 546.458 226.99498 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 327 0 R /H /I >> endobj 331 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 201.42099 276.58398 211.596 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 330 0 R /H /I >> endobj 332 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.098 201.42099 546.33 211.596 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 330 0 R /H /I >> endobj 334 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 186.022 244.927 196.197 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 333 0 R /H /I >> endobj 335 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.386 186.022 546.618 196.197 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 333 0 R /H /I >> endobj 337 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 170.62296 290.557 180.79796 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 336 0 R /H /I >> endobj 338 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.972 170.62296 546.204 180.79796 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 336 0 R /H /I >> endobj 340 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 155.22397 275.96 165.39897 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 339 0 R /H /I >> endobj 341 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.104 155.22397 546.336 165.39897 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 339 0 R /H /I >> endobj 343 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 139.82498 279.607 149.99998 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 342 0 R /H /I >> endobj 344 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.072 139.82498 546.304 149.99998 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 342 0 R /H /I >> endobj 346 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 124.425995 296.942 134.601 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 345 0 R /H /I >> endobj 347 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.844 124.425995 546.076 134.601 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 345 0 R /H /I >> endobj 349 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 109.02695 319.977 119.20195 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 348 0 R /H /I >> endobj 350 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.637 109.02695 545.869 119.20195 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 348 0 R /H /I >> endobj 352 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 93.62796 289.683 103.80296 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 351 0 R /H /I >> endobj 353 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.72 93.62796 545.95197 103.80296 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 351 0 R /H /I >> endobj 355 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 78.22897 268.656 88.40398 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 354 0 R /H /I >> endobj 356 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.17 78.22897 546.402 88.40398 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 354 0 R /H /I >> endobj 358 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 62.829987 215.143 73.00499 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 357 0 R /H /I >> endobj 359 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.268 62.829987 546.5 73.00499 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 357 0 R /H /I >> endobj 361 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 47.431 272.434 57.606 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 360 0 R /H /I >> endobj 362 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.93097 47.431 546.16296 57.606 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 360 0 R /H /I >> endobj 363 0 obj << /Length 364 0 R /Filter /FlateDecode >> stream xK$u;節Я9Ct%kY銤$ 5b +  &"#v\}u?vjtGrWWGUrW.b>Β3>}WQ~WؿՏ:_eۯN{?Ϻ_(]Oӏk޿ʛOŦXft7?O?ůybo>k/߃‘"[gaGB ֎k&cۺ}`?jTHG Vc?_ao7;qƲvg%֎;X*L+yŲ}sٯGRViKZ R%feNrmRt;_b![e;=ua_< O{<Ѫc.' ? pdTf(ҙyޛW"}k_<3y>W|:&j);>5pzeG-Yʂ\ 󼝜%[ EjTj'06{le@Z%_dL1npQCUȇV[j"T2Z2Fv?!dO||xF9Th$,E7',j42KjN'=',=q&THRv6Yȓ(Z\ \DkCA6(ڈ(tfDkSVfDs6 en' b.eBU:#sRbef+{5VٞR[Yd{V"Ċp]/SBٹuuXrZśW~sf--J{syH\_tw<}߼}/ڋC:ԗ7fs5!Jք+{ .6}{Kܯ9s͠ۄsk<1pvƍkX嗜9c v} d= b63w,! >f Iٓ'},,*-'\qY`Z.f_=[J4t=K8{P%7kIo`3/-scfZ2e3R-5 pB@5k΂w]RKhV{fTGZkQ\Rj>`sT.XMs%r惣P }p jZ<{5gZ̼NeE9oūNoj4 XK_5<<ל51k3ߔ&jxz "5ZP!l5a wÖV,)Qls[͞8em}b^kG&nkm|r;)V+ޜBOX9<@<6%OݚXd1T>XB:eTH;߮AR>F`gew?_O߾^-Mq} OeT8jʨq֝`s!rdG%" =Œ:G͋ l7}SFeROFpܙQ8(uy?|z??<O9oȰ^ʫKCSa?g߱sǔ E-dcَ҅igsَM Gͳ/5 EKW68kcpԞjchQn6ɪv ҫُc;&d8)M rS#dcZ؎bnL)0Skp؎ zsl 'êp4 G͵ʃ ,p4qDzɬ)a]S$܅/'hH9<埒FvA=$M(B#7B9!KǷOˀ\^4y|Wpj<] f/G?k>m ,١|7(5G JN==Qt:d<-(/hvUdՈGhv(U$ɪ ιA X΀0T&9j!YQ4!JVhu5#A}JwuA o{|VI+:<w7(x+EnhtHQtW74:8 EWwU*bU .\CCPq@Sjt㜣t.ԣ! h(NŪ!IV hsʳ:9$8hs86<scX5A:cr+gWf498ɪ9XTq4Ѽ '|M dՂ>S9K'0ZbJJI9$m/mhspfOB6!+vEKi~`W8{5Zb\s»BGg }M1@!(fEOL4B8TAꜢ}QS\PpJf ʻ޼,՞ ;Y- H8[+ƙo5U‹Ⅱ+ ɮ%ft;ɮ\8sصX⇡+&w!a=nP'860w^<2O%_d8NqM:.őD/_?[#88u/&E ݵ^W, ehR4${ rp̜JEC MQ~waQ( 0Ĵ v!LY֦,I30<4 H.U>G=oR|jΔE-k&F6MYTfbtdAW|p(p.H;ZEEI;By2H&B̧tC!& XxmvL)o Ykۖfamp[.ṙ3PsAzEEBYfaxo$fao%Hαe6_Pu<֕P6Փ '.{zڙ\XAY땯9:ZPc eptU20ZN_$gQ20\ !΀y3Ԥ egEX 0vP:d`38t&9'tǼI^r0pR֖ ʢ|_5 (h!J4iΨW}XE:ۡc \P çf4q&Y|>F<>`3E}vxg4$^฾>0]OqӻC 5p ,Tp9k}ްX6$E>ckH]lAY,dKm,)R^~85W`TA\Q,c:bWxpy*ΚF)D`F{bHpkz5PM@b[Lܰ-i&(,9!/("XV~e Y~X<,Yozl ?#pda ^PsF}D`&.iרlygftbk&XW:B2$%r^3q*9_P"%CkJ8[]J6%[31{6T7*o ig6FB=lOycXiΈS>ܖ,˚}[ 29{ r##‡Pj8Н-P֟ϖ !^`Ʈd}aP6]lڵ]ltVٸk5-VCQΆ]'ضk5`j8vuj(Vٴk5VCVȌoxGqyd6h?/yzyo?zCrqGwy_z˺muqr6>I.'X9Y-%H|lX}W{Gh6 j9 ٠R I10^3l]=~Dh9gYԽfD04N?mՏ*-gjغ8׌h9WG.W0#ZΆ'eq3lX]W۟Ÿiu l]rh9WYḧhN^0#Zbuvbw r6`0"ZB`F.r =̈hu fDKŸX$̈P.b3,V~Ftr3e,RuFEĈh9,k̈8GDтn}h9"]`F~P/+̈葨m0#ZB`F&]`DM>lJ7ĩY ؆ALɃ:}Gfa(CV4ITSb|>pOV1dEz=yRor۷o1 ^ȧ \KU`<Ŋt7lZzЧckV-IWEٲD]9 ~ÆO`tRΆs-X} c-oYqLk5ڙ}u.X?Ѡ^?ǀ(ϵO`M`\'m,ǂIΗ"~qa/w{c;(:# . ]bk!\+6}s3{}c!Y9 U¯,H$ܝ$^^?}72kՏF gՁF9kQ.%gNQ1Lq6gNQ|!ٰ@ͻCm(0z,8vuuSl) Ζ!Nvgl) ζ!X=S@;DYw i8[w Ɲ) Ɲl) ") Άl>K,LQ3ٴS@;DY3ٸS@-;DY(gNqe8l) ζE+ٴS@;DYFF=S@-;X+ٰS@;ٶS@0Lq6gJQ3ٴS@z8w e(ϝl) l) Bw8v u(z8w e( ]ܙl) Ζ,tqg }$`{;"^K./ 3_uL?vKA_; k?|,֘Wߩ-7xe- oܰ(C l] ETgظ,u: m3p֎ i3l] ~3lZ [:g[ :t.u KA`Rg؆<8fp@֕l9иo[Vv  +&e8Ε~ذoWM`JQ9~4oZWέƕ~زoJ lX7+&8hO~شoVѯ~غoMn6~l>WM`- SoVů~غon6~ls+&q7 +&yg_7M+&u8L h\7-+p~ؼoV1~жoM~6(p6~ظo[V\7 +&yGkWJ{@L} cC>ŝM9w>R{C+SѪ,bm7oߦWۧoV_]S՛NU΢}~ l^jۦ*G1 5V6-USmh7 kw.Iw!`&XǮw}zl4ٱvv9S c׻&䨺jǚLǮwع&|Qc׻;wv]! c׻C,jCL3p bX,:IJf`tb>?v ,NiFz~΢=z,ǮwE{X \V4~zXI7Ic׻0lc׻0}~zt]`wχ$(KolaֻsLz{fbW/}>:Y ]qz|*ֻ((:Ăfa4χS:4 >f}3J[Spb[C|Ț;~9*r%CG ^ŀ~'w㻟yS%{O?cWs]-g֢n3Xew;gRa،q!e8* Me8[Ql Tdc0=hH6$aAX3}ol@оXz"V61ҾHI1RIWS2 aGrHX,P24Yz_WF1 %*S@ͼO23xO7g}-hHp6'5 j@P,lqSzNYwvcHw;󒉡L Ds{NY )bJL1I`b>8jb#9YsɜvdC?f`'jӎl)QΚgq8)X8AX=㑜lv^CjѾ s=삥э g!t<3ڱ70Z5Wk593K4f̙tC @`$ȧd`6k\`#ŕ~笇d !8V l6_~$g8ۖjg1= ,x "o(FǶqAmMPY1 = l1Oi$6.P^֢5Bm\`!|j.m̗Ϛ $f ]f/2+yyg=ȏ`e}.IdDqǟONJmB#=_PaB,}6b۷!g8F g17X>XF gE"t Rnt r6"?:)exDrY1Yc=:) Yk4cw!pd`E/v=1HYE/ϡ.v 1HپI&})>~GE[î2:9]ߣcz:ٱj9:9QYŨw0:9QYSZ_4 Uߧfat>+i-$j|Lw}w+Y蓮-eN;;>k&FKXW$vV4/eglXz's#Z[wsbֻkqֻHo$e-9,ZƦ# kݑH`Z|#MkֵɭeHF$,k-gO69ւ$kK*%}I$mssG-n9"lCԺ:>//K׿fķ>GX|>S>?ۧ'Y?7|y뿄?3Lz+k'\$I#eIR8Ơ9vY;&laeRlag{_ .0)\o_p1$b"J .fو8I( vQذ$b"/I .fDY,Qg-jf`,ae\0vTz[xjH<^ ς:#Fhq}Ω:3F,#q6uHE<5c$#qљ1gÊ8wٶc$ #q6uH#:ځ׊8[GDAqH-;F,⩪}DgH;Fl1e13c$Φ#qxϙ1eOaH;FlqΩԈ8֊YbBgش l]g9 [ٸv lY h);td>3u8>Zms)-G13e8zZkG-g13e8ֶZke-g!aFgVQ3:Saм l[[m9SΔl]Kn9ۇt!)[Y;+lE1xL*Ζ}HGFF{F}ٯqySko[W9ZyH u H~qtP\^o?}lɻ+^2јx<E% # ZX3'(P&E}7,Dc~mtP2'8"QXdQ,$d`dQSbOp9>Y jeiP 앋s| wmC'KOs9>AY{B9>Y ig픘5EF"  _-   ζ[YkE4s|h*c|т$s|qbE4s|Ȣs|/Ȣ1>f|7dQl2O>*F% zw9>Ytg혘 9Qr;TgQgߵIo-zsfa{H9>fNwdQάjȢX|8Us!bfW/CH3q85tL\0%C Nj,/4>o(mg ;AH\Dp(s xwJm_^=t,ԄkFl*]Be0ÇXJ ?x p.#zPk~>Bgj&n,sA8x &&#PL Qdbt,ġY8rCW`!3$i! _‘ ڇ5 Ï *} q* ,Hb>1H|"|(|b, ?n(r~PX'pㆂ/g {S`"dńbzǹ}BQ3qGڙ<|׼a<1imOYN|wm( ,dxDa>1H'" &Ola(rc@QXĞ؊[hXHCW`1 y(r6b(vOx"Yq ?%]L۷o> ^ȧk\EӥO>ci߰v #ES15+Чk ,B؝?8اj߇'k6}ڙ}5#E-=Cٌȧ+ hCH`-|f߂'k-|)a҆g+B|$}vW>] O,,GЧIF%t#E䓤]i( E>Cc tc`#%FبgQg-/`_LkR9r-g=,BFAZp#B8"юlܑ*?ȵ9r-hNP.5#=h,ƬF6OD2o'8dǬF1O-{Fy{aV堙ZlB(qha)H2-ГN5Úd5êd`dZbMb & ODAۑ)ɾ(i-B59P KfEkȴ9Ko a>H-jZafX, ٰfaȆ'9oˆiZaU:c,\" Ko ail?5 Ceڡ+#YUo.8tNW H s/~᧷9¯/y<Tte^Yr-~΢di lZ[1Ao7byH loXTΖ%{ai l~t(9k6+uÜKh.Z1K0<9撡/qi lYO"΢dh lXvY ~MK_`h zKvƥ/eiSَ/ai lYL`s6L~K_`,gii l]ظ,~΢d9v/misC_`ض9lZ[v?g^gٽdf)hXvY 6gغ)Kfqj hY¹l\[v?g_23؜ L03؜m+ fɼ"9pHy,Kf 6g-zlʢdf9̛O׻KlV~!Jf5eV2לMkZ+kʢd9 }\ܹ./rwI9pyoݟ? 8,N׼GA*WvMY] l Y "ngswzyo۷Oo|~:IT{n~ӫ @'/&ubixP6= Yl^.%gNQ1Lq6gNQ6{a'8,gQap6gE+ٸS@-{) Ά= ټS@m{{ i8[w 梭gNqeV3&ig[7+&e8ϕ~ذoWM`[OqО3&ig_7M+&u8J l\7-+|Z`yg_7M+&u8[J l\7-+VM`J l7 "3oVM`J l[7:oVM`Jqֻ~иo[V\7 +&ygcX73&m8J l:D9~lv+&qg˹oVM`J l7֮q|@"}*9E';{j粒+SѨ,Rm7oߦۧV_]QMMI]q~(r4/A]KIH 9]:t)[[ܠv-HKcdjj!_iQ͝JPm,f%fHT$(Z/\*7gصCΟ۵w +V{qj(5۹gOQUɪh,F4EɪIVGՏ,+KVEo|.}fZ'|m_dһ$曣=_ݙ(Z|ڗas _UjEW#OQ{)z)Vo!hXEWTKgPXXwó$zCRkTwQ4/ 9Kv K+߫W,-xa= ,]A2+éֈJmYz/wxZzWdVsnbXzr侏0<"G^mP!|'ބm㻟yS%{E?cV]-뾻gւوn1Xc78gX|Avq֎]g_+k$Zxza8q-l ǂH12gَ߰}aNE=E1}"fcK_te@1 e`Yh_^/crI`Kҧ+y-VedV(kB A-ZoX?9kř/sdW8[5' (68) g K=;1Zy{ I&أ=  _s(=$B1^zC1j9dN;XJ lC Q3iG6g'góhSzP\ '\lȹP6CKZ;h_vFޅВBKIZS+JBKZ BN3pKWyc E:!xt OhIxhV@<R^/dX/|l[*o/5(=]{bZs4AK:h/k.ВN+tJ}w^G}&#_e}./XYt⊞3,JFwy>}߿&T(+_5s?_蕵s09osL|)V0:89k` !s0E}A'{8X@Osw1<;XÞ<;D`1!5*5/T@,ܒdbsu9X$g=\zr gK_Ad!ku%F:D`Z"u,ku:ve:D`Z"m,ϙ;Φ:D`ZY͙;Φ:D@Zku:\C6!mkueMkuֹ:!-kug[C6.0-kug 6'8ku:!kug[C6![Z;WlXC6!ΖVŐ*Ċ؍;.z(q v(<1ul+txJ}y}O>o)-4׽8$_Yb7*P~{w,Zq߰X~0 d'#gP;6}(Cw&|f]M"vљbl aeXb(?I60׊` Df'S}"_3p7-&Lˀֹ4w>Cb$_3Ku(7Yޡ:-ohCRyo:ͻom6q6>`6XlKlmSE+AY̶)b H&FcjlmS}&_11ZVgHdbdmVg|ġ)F8wgjh:wgnl^Smq)Φ8ٺ([nl܍S-qխ)8ٲ(8ٰ8wgnb,6qi4Nq):8wgn?wgnlލSmq!)86(nlڍSq)8ٲ(8ٰ8wgnqi7Nqqh;_3"2ӿ՟5;S_fx'-e.>}㧿<7yNgk|ye/O) M棤a.Pٸ -@@Y<&gîp6mjq eړ{llY{x[vxxg.p6g.PY lU 9ث@ٴ k8g[6[nqڟ_6nqmk8g_6[nqzv l\ [OH`-.v l؅*[\`-nqMk5(VkXP؇ e (b'l>l;l,vZCBMA>Κ?(qFȅ|vS:1q g g e:a=)0l3O>Ko[68VBAro Q gI:!Ѧ e)ݦ g!ՠj8 ei|,Qzk)~X C> fo|NyZcg;؇!4̆x_F3qw??g60PzJm$7+Nn.`[_x52թ'^o9]|GRMhp糺w^-,Lg l1-q֛{T` WKe=ߑzT`͛uA> Qfc<|/ lB}@ʣk`~)CS` :,CS`:ܥtǐf[̙3}wr鎡)^+غq!) O-qW,ܳCS`2H l>X,VNCS`2ؒ{chyr |{cy yCΓD;#"P,CS`2ؚcZn$!-=ΑCS`"1=9GҞ[0*=1=6`XK$N`Q'ghyݓCS`ۡݕQvC[} SC蓳4gI)/|$=1>9P؄5gy!)|y/=W"14?ZZ몟Ec~ ltXH f}C#ZSCS`-⟜Eʣ (fU)Pnk#],fUNw 8F$cXemSQ31UvhaF$xV*/fUU>>Dt<&?W.I&*T1,V>f_$9p}V%{4DpQ ZUZ ` { `V.?_4WpϪĠp&9p=QݙrF}XۛRwn"qWn:.>\^??>}YzE2cK_E,hg^Y@Ի8bhXt^nGy {5E%i lE5C(& 6E1 ,If`@ȯhE-i ,jI]6cX448rҘXfbe/وu1~^MrC&!&I!&('95TUQMm$Yդ1%}s@G@bsU,I}J`gA1^MWW\Y,*k_\bqUX,~)V}bkUX߂d`Dn_ l¾J,WEG8g-V.U=,V%ɼl*'X*QbkU71%Z4Fly-9bmO}gfUAr 1%ZsY+$$kf=_ŃDe󪱕㫐¯ 3?O z|//~_~?a9Ib<7jܼkte!,|>W]ð:'/g#JeY;o>Ģ2N^΢pE8y9kab'/cCÉ&MΧ<;012hrʵzt8L}}XY8z9qR6)u&4[r8^΢Pcr̚8z9kK}߰h8l :fäXآfP$k%T;Hr EoEH.P!܇B4S7kQȔrBDfQK~X C~=G-FU0ݙMnl؄*Yϛpbı|bPMa,؂fTŽ]`-N˧6N&р%Jʼncg}Z8O l#_}9ƻ#M%><*+A`;="~{}?|Oc,]gnž.#WM]A{`y{~W7byl#o{䍱pgyl#oyl#o-{䍲XZ9ټG8e#oM{䍳uQ \gyl#o9xHw%5F|7Ά=ټG8e#oM{䍳uQ[gyl#omyl#o{䍳m1Ր9ѴG8eߟ#oM{䍳uQ9ٸG8[e#o {䍳yq7")Ӓfa$eNwCXY$efg+`Gfbe &nLXrBM212c{cgZϯ_V8~z6?|g^1LA)"X C48j0W|047<Ep(j9hpѾsƇٞchw7_g4ٷ? VMHsg=(IT`CAT\Ee(ٞAiA8ZhG8)Bt?z(S2a͊aNPԞsHsmNѩ$E5h;ʜaGc<ESS&6xj6fx(sPanP4bdWaaNP cxAxON94'w(<w(jXat%9Cx9Cr9PuP4mPag:Vyqi"sXsV.+VE#Rh<| ,[4Qh -m[:CHJ Ki+RbW(EYK d(EhZ -~IR2E@͓eTZS=w""73svSG<\_Wت+?71/κGķ{ҖzY\~Y,,;onA vA>#[B`n5 v5ޤ-[B`|9-g!C:}Y,O= v= bb,vYpvY-fهn1 b}Y!f![̂1 b,(b,vYp!f![B`gm1 b,8-f![̂1 b,8!f![̂1 b,vYp!f![B`:a"< lukX',Hc0gcfad:amG9$X',"(Ej(NX`% n,̹h&FgĹ/kK&.vT&oCT=_C[7}5``\=i_4ٷW 2n%}Z_Ưc`msWhc͵^ٌSnXAb| ݠc'76p橗nбF`+N|S"G畋ŰyFsl,ZlXh{/5r"46l¡'76PelاZؑ${εlZ8d g-l< kE`n؆#)`n؄KszQ`rز\85"aιh^.֤ g.֬5Y紋5"uͻp!cE`x2G^8jyذ^6ms/5Y5"e p֞cE@ز_85#aMl^#0 g_C05YcF`ز&a85 #al^04 g_0kQ5k'gܽ1blZw> 5//8ĎKw/㧷1|}ݫ?hJ)VϘɂ9,vw>kD]y#sYʓ~iA/\(MyYlVFؔ7\ŦY,f)oԹ(W:g*oԹ8|ؑ7\~Ҍw*e<}Q,Gm[S6yA2nKd\RӬrQK`7eo ҝQ,d`mV8$8%yQ3p_׫\ŎSz*g1Ɵ'y;F}GLw䝚#oV(we-yYlU.bI.З*g-$wYp*g1ߴV1?\mO[k魙g(Y,tgvP*e?ҬrqM21yV(.%#.ق׊Y,伡?\C_m5ՆN:c_m^,se1_$-ՆQ:c_m4ՆB 15ՆA:cmj'z ^29p3#bxU8|y{zeחp>>W;|pKvGA|訡J,!7%ʢ-w Q,$κgьBKzѢ ֵ88^8Rg]C`.yhF ]C`{7m[bW,.!Fg1-mrP<,goSXȞ}ٝgd>B`!#8^45hgvy]>B`|1f_L<Ϟ."\ijlDxQ20ٰ{8[vOeݹ{8FOl=]~tq6.EvOgl=]l=]ͣmtQ"ٴ{8[wOe=]MutQΣqtq>|WA^q䞕Bl.׿q//X1nmŊ1{y;_jNao{uhm]5oq6r5yQC466Κ<(k_08jNlclAR3ml HJu566΢C|QC,6LJo#KFomlEhc,GerdU21jnq֞f=^21jaq֞ K&766΢E|q-f<8k~lcͳ ]⣍Wޘ=lcl6yq6`d?h9qge 𳍍766I1(س?5Wr،=6y(; ,:ăf`laΔEo o'KFoΜf,w}QtCᙳX4$,Q CY`j&XW4c&n=s{ҳELC뙳P/b:ԞE8Cw6!,Xٗ%M%^=y0_ޠw헗q$c)QƦ/ VW쟻f:G۷?|_]ݿȢz/7_/ե~ՕݻEaU.ݿZ59gE?=8Pl{(|q _)_`ot?=8lL%~48kyޚH|q!YH|S/Fzهe#R8C䋳/ʦ-чg"_/>D8ly|q!)eC䋳/>D("_}|q!x>D8C䋲|q!هg"_/>D8lx|q!هeC䋳S䋃/ʦg"_}|q!EC䋳[䋢!هg+S} \u1;k?1v 9~/y\97bfV?O??>>}㧿 V;zXLY,-„5U-„UWmUJR,1)AYA 34Qjȍ򈀘4"z'0"`.D`=7Wwy 4S(Chwɢ* dlq#% օcbq/ \Ag]eV[f!8z>Z2*G{%TjT6A˂{8@h70R?]Z>} VC/ lM҅߃6ByكQprs*z1z0.S8`[W_Ulq@v+`ݺ(!`=Bw 2{;\i({+\YFL_b`;x z*U!};h|sI2T0-= Zݒ(: KIA@oqF%%``_& SpP0-OpK= K:A@b.t 5A@4heY&eUR\m%8VާxV-ޤVC-lD{Z7MUw5!|ޒV>8>G x߾h-l~3\48i? CzN/秷VǧO//|z>G.jK pn tt5Y6 `ArW_1ǜ1}BŕbrYpnXظ|ZH>\q\:..Y踪XK~&\a;:='Q}\Y=+I]踊y,t\j!vWB>..@qmR`߭+Z 2.<.qR|C8 R]Uqpˇ p1`G 0l\8&\?n㲋X ۸/U\I 0n>PqOSna*^Sm\`qmZaœ.k ;d\p2$%qqD` g!rvbB_"C_"(\_Bqi:] q[ׄ) }Ukp4*0~& endstream endobj 219 0 obj [ 218 0 R 220 0 R 222 0 R 223 0 R 225 0 R 226 0 R 228 0 R 229 0 R 231 0 R 232 0 R 234 0 R 235 0 R 237 0 R 238 0 R 240 0 R 241 0 R 243 0 R 244 0 R 246 0 R 247 0 R 249 0 R 250 0 R 252 0 R 253 0 R 255 0 R 256 0 R 258 0 R 259 0 R 261 0 R 262 0 R 264 0 R 265 0 R 267 0 R 268 0 R 270 0 R 271 0 R 273 0 R 274 0 R 276 0 R 277 0 R 279 0 R 280 0 R 282 0 R 283 0 R 285 0 R 286 0 R 288 0 R 289 0 R 291 0 R 292 0 R 294 0 R 295 0 R 297 0 R 298 0 R 299 0 R 300 0 R 302 0 R 303 0 R 305 0 R 306 0 R 308 0 R 309 0 R 310 0 R 311 0 R 313 0 R 314 0 R 316 0 R 317 0 R 319 0 R 320 0 R 322 0 R 323 0 R 325 0 R 326 0 R 328 0 R 329 0 R 331 0 R 332 0 R 334 0 R 335 0 R 337 0 R 338 0 R 340 0 R 341 0 R 343 0 R 344 0 R 346 0 R 347 0 R 349 0 R 350 0 R 352 0 R 353 0 R 355 0 R 356 0 R 358 0 R 359 0 R 361 0 R 362 0 R ] endobj 13 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 363 0 R /Annots 219 0 R >> endobj 364 0 obj 29653 endobj 366 0 obj << /Type /Annot /Subtype /Link /Rect [ 293.448 251.08499 530.058 261.25998 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html) /S /URI >> /H /I >> endobj 368 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 235.686 255.54199 245.86101 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html) /S /URI >> /H /I >> endobj 369 0 obj << /Type /Annot /Subtype /Link /Rect [ 322.026 128.62296 525.02 138.79796 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/Red5.html) /S /URI >> /H /I >> endobj 370 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 113.22397 200.498 123.39897 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/Red5.html) /S /URI >> /H /I >> endobj 371 0 obj << /Length 372 0 R /Filter /FlateDecode >> stream xY[o6~ҜHI dhbq6Emʖ* w(EiL|3BDLOʲL)Qq!$aG!O,A8M0f(a":EKY&DTG9^j,Ncя~#n,%I YgfR,d¥C!N>i?)JVNvKujΟROϛ e ^ʲ/!0R8Ň8OĈ ()KA% 1 k2ŕq6+-!_f(#lҺKW1̉⮞2é%paѤs!"a YOa$dƈ9qG`)fY ް^{]1Wm\6hVR 'H@<1X OUm cs U \Tj q5?eRv[l>J ){_A6R_"dy]' sU_c9?\VwcSi̺J-Zi(쵖\;HJCNn]+]Ӝ5#]y*+]Qw歲ֶ<Գa6G^1eЉoIK0K:iXs %cb~79em<|$ګS=?+B֥A,p~JWiͷ:XC be32Xw9뮽U{C L1]ֺkv^,6=駽)HBCWuQU<քHaL,ќ7o0X! ir86;҅Y[k.Ƙ4ͻ>8ד> Ӿ|$G.P3ٻp)%:(ߺ~㄰oGzc?BPIY|Ks]k5x r2&pQLZIcbtqL qL5W%7IfjfcT'u "I8KRt森G'iy.]u>(K zhTXsmTWosaA@w9M?ź*oJ]>?n~yTW`$#GIWnT*IrTShB:Mdn{ [cpQ,p+3E1b]Q`kr|0 UMfeL77D횗+S` iT`oOE`0 Фrrwf57n CT}["4ו^N3KSS&b{{'vM4sY(K]Nݥ/KI1 B{ ǹx>P'.ՖDZ^~vM8Y^V]1C1\V:uyqTwvy] \6zqdhٕhN[ ^m0̍>TZ> endobj 372 0 obj 2105 endobj 374 0 obj << /Type /Annot /Subtype /Link /Rect [ 160.777 656.261 497.652 666.436 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/IConnection.html) /S /URI >> /H /I >> endobj 376 0 obj << /Length 377 0 R /Filter /FlateDecode >> stream xYߓ۶~_A8'4iL<$H| t; a5,EjNJI1HS"S0&""_ kf/j} G+}w0by(\}4ሰl˲lB뻈:9ۻ;mu A1戋D :cvSk/~*6e{t;K2hؗe_B`g_828ü3BKt >}06mW|1S0 Y@Jc8i"|J|Jў%aSZAw=p '.T`JrMy_H'5/x̫yx8O"Jɋ nDs xN^Fg;3B2žp2̀c$T?rN&?vNf?z-[גҘ*%'xt0)DcBwf8LjH!nF$E#8jvM-AT[fSK-M)"E!R}SRN+-_+;[yZ 0~v4hIYԢӌ%7eYҡ6Fy'];#7@Fe&aNy##/FZ1|o:;?K^Vؗ(|hƉO\U|f$$N<83򗻟jʗEw79!7ra!TmUlǠOM[۝ sNat 7!()CLPG{(d7%(Vkƾu(XNN-PҶ(e3?avƗMƾ}&V9KlA/@ˠ:A'gD[]\IƯ~瘩@Ƕ`Z/څS ELk%1WdBsJᱹ6Џbẑ#>0ZG^r}LttY |K[$`{?̛b̞csr+0u8 haZǏ\Bɯ r?S<\Zn,LW )_ͱEN۟OYP|.!Ì?jA2sUs8Dd̨Fzt*uKS}v+pTxT = 4. f;ӋdY]n_A;KcR.G̶gb ZƘu9El^e],tuvSRI@BW9EVŢz/ן!СYfR+N~e(%':MS[fbC~X(E fy&޻1-dKT[,BAݻ0ĝo d"ӜF(WM}y57ŧ&Tbe]QW{=<ClS8p,2MAOv 51O9v?¶rspd㚡K Zjگ~د}J|X endstream endobj 375 0 obj [ 374 0 R ] endobj 373 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 376 0 R /Annots 375 0 R >> endobj 377 0 obj 2435 endobj 379 0 obj << /Type /Annot /Subtype /Link /Rect [ 423.644 568.974 539.815 579.149 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/service/IServiceHandlerProvider.html) /S /URI >> /H /I >> endobj 381 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 553.575 418.122 563.75 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/service/IServiceHandlerProvider.html) /S /URI >> /H /I >> endobj 382 0 obj << /Type /Annot /Subtype /Link /Rect [ 209.07799 538.17596 486.047 548.35095 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html) /S /URI >> /H /I >> endobj 383 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 522.777 215.183 532.95197 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html) /S /URI >> /H /I >> endobj 384 0 obj << /Type /Annot /Subtype /Link /Rect [ 399.829 75.93198 516.0 86.10698 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/service/IServiceCapableConnection.html) /S /URI >> /H /I >> endobj 385 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 60.53299 435.26 70.70799 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/service/IServiceCapableConnection.html) /S /URI >> /H /I >> endobj 386 0 obj << /Length 387 0 R /Filter /FlateDecode >> stream xY[۸~ Im@4-n{Ac %Ml҈¹$ FPQ"1O/ 2|$ '4! VtnC?כ19ş>8+$إ]b`LgE;B) 3@(9˥29İO3-1c_# mDDcpbb GL '<hxy KDaFB1c%) HJY&?h7,7d's;oeղB!,EǥvV!q`$k\x%u |3:I y1Ę9<G(SUUQ\~>=YMcͬIY6kB zW]_c[>BL'dέ UU:\c"] v2X~ql/4SziC~3KNdߐް%.:qwu:+H~k$oP4UU6ϑMhp"= J+Sdzƒe9ȶ8(nR/ǩjon>b>|-mFY&Q[s֊0]gŻ: >Ӯ:%i[6}+!qU~\ZYQ;d!X P^V0'FkS? هD@ä;|T[ 8uoW^mtKpbv 'fA ;2]2hs31 c5upp{h`7VEnF_GOZ>"/Y"\нdorrߵF7,uSi tmתij }O1DXѡ,eq~tklu7xJQʠQ/Ӄ臲i n g2rL \p5mZE0A#з#ڈ֝qM3F9xC"b&ZΝuͲn(|\NV5"cp TgNR Kb-([!_Ps?[dEtsxI4 "5}IAp08'Cux@҈Cqg58vȁoN#ʱu ?2Fֽ]x1m~`Τ]noD286>92hJ='>h9h\_}(`MA 9D5p+Nb|(:MkBx)cBLj4AV77a3k)> 0qs`a~4;i;us4D0ʀ] S͂=MuP6Vq?~0+ endstream endobj 380 0 obj [ 379 0 R 381 0 R 382 0 R 383 0 R 384 0 R 385 0 R ] endobj 378 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 386 0 R /Annots 380 0 R >> endobj 387 0 obj 2505 endobj 389 0 obj << /Type /Annot /Subtype /Link /Rect [ 224.346 662.63995 516.583 672.815 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/service/IPendingServiceCallback.html) /S /URI >> /H /I >> endobj 391 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 647.24097 245.125 657.41595 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/service/IPendingServiceCallback.html) /S /URI >> /H /I >> endobj 392 0 obj << /Type /Annot /Subtype /Link /Rect [ 254.31 256.51395 523.326 266.68893 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/so/ISharedObjectService.html) /S /URI >> /H /I >> endobj 393 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 241.11496 229.846 251.28996 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/so/ISharedObjectService.html) /S /URI >> /H /I >> endobj 394 0 obj << /Length 395 0 R /Filter /FlateDecode >> stream xZQo6~_˓ 4)"=z"\j}Bj=W{:P(R"ZKBqf!gcdI)'?+~$ '4! A'!,2YB8ʘJ&JvwO^jB/>kG{H~]W8qX'2V ^} DxV4uRC}yCBfu$$7P)A&||J>^_& ]ɧ?oIbPdٗ7PX;?|nAI(A(SD !i1M xuI"1Z'էICpBj|2E!j;Ldz$pyK@I0҇')E IS4Qz7V8ɼ_rQDLXbu'[ > >eK`De{u|({*;{Ѱ1'J'2ڶ8qS8a˸ n/OMH$88vT@Q}-6F󸫪ǾQW_zg4:=:BL%}KG[<*ڲP$j6@e)DI./K9R@rƎڔ C L;_6[=82ף/spF\EMhm2mH#jSdc1okcWԇ;K RT*u^v{V<߳ R,Pk@+dINt ,w 1[vs1*2M}svz M_zNR6H≑Iۋ7 izS-9{o<>O+ endstream endobj 390 0 obj [ 389 0 R 391 0 R 392 0 R 393 0 R ] endobj 388 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 394 0 R /Annots 390 0 R >> endobj 395 0 obj 2510 endobj 397 0 obj << /Type /Annot /Subtype /Link /Rect [ 371.73502 589.089 530.70703 599.264 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/so/ISharedObject.html) /S /URI >> /H /I >> endobj 399 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 573.69 303.216 583.865 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/so/ISharedObject.html) /S /URI >> /H /I >> endobj 400 0 obj << /Type /Annot /Subtype /Link /Rect [ 394.307 505.77597 535.547 515.951 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/so/ISharedObjectListener.html) /S /URI >> /H /I >> endobj 401 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 490.37698 360.075 500.55197 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/so/ISharedObjectListener.html) /S /URI >> /H /I >> endobj 402 0 obj << /Length 403 0 R /Filter /FlateDecode >> stream xZݏ_!!.4Ii R4=\EyZZr%"{H5vW|r 0$"(I9fI4 HGQ01PشD|F7aĞўl|ec0q6`qD8F۴ijq!͢k    @sE$|cTMQw|-MKp͟A,J |Xئ%Y|Of߬|fCa z:E". G( ).Mp9XǴwt+ J"u\m4ǷL8'h$BZ :Ix$EYd:h#!4DCC3Jp+Q,Ko;,;K~Kfj4&D1Ŧhz/2pbi ! C {R(L[ gz/JZU4' LcZ?y1;7x2i:I[Tϒ'ȯE qi(rArfeʃ+ ap Cc9@&CbpxqST_ 3$r]xCL4ž˦gGDctdЂ""+_\:+*Oy\QLAnU1BȂ;+4j70\D ֋,-ïx$cCfv֯*I" amJ=U"Z`_`ZYtQ&=8XvMtv>)7nK ), "(ix'|+AwSOo %\ԔױcbhR9D+Po;C=U;)+R30C)Iƫj!k[㾢պ9\+W5@kTUX^ʗǣ DOYߥ*?Y&gUg$P"Pdžz_O1=t sWt=[#qBeuynu_f9ڗ-cc8qe ~SlrkaB8\ mUo2D:Ao"ά$(CADyQQEI|6Rΐ CW&:Mq(-XO[o&?*֞RwOWjȌc B&q2iJ?j1t<0^- ۦ19B3CخqB!;:({[ǐ.n\7ȡJɠ[],~R³rGtSxaoDJr{fĸ!&anc%N(Nad#5tvYcKUdwV5YQjGTgIHe̖C9Nn\d Fu6K0e2`:T&\m튗#Tak:WHBu91-g]W|{w' E{(:hkTJsnЎU *ay1eMb9Vb˷BP:i8,/KP/Q@oQj8oWqm7;F $p^w~\w0OE%S6XH!Cw9' gG]D>=դuU`r9l~7C!eT!^g[@'%8K$32e~oJ;Cʬ=Ɨf[a(&09oͲB6[WC`ʟ!חb*cYgl\:@k- !Zns]!eSH9jal#t HpBO O,k)}j) Nƪ2'`tfis [G>| K40>LV\Mfީ5 C!erbDiA|br>/bԶ"> endobj 403 0 obj 2554 endobj 405 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 393.016 541.652 403.19098 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/so/ISharedObjectHandlerProvider.html) /S /URI >> /H /I >> endobj 407 0 obj << /Length 408 0 R /Filter /FlateDecode >> stream xZmBO{@Q4@Z4I \ݢAe[mCޡDR$E^p bșCQH*sʲB`-v7!Kq0eL Eq\f̗Rf=5>?umop/e^o%Q'rh_VF,dB_Y1!xs#Wz`(H\J :.Ciﲻ tjO7x?Dɰ/+#kF5!-s>͏`I> T ?\*rcXHԔP&qx،)M8zhJ"d)٨՗Ȓbс3{qѨ "aIM^b$U2sQ3BV ](aT15BW]J.Ff^p *xhouIyh dgSÔΘ[|V/`m}4͏N~cu9hTkyͪW>}XQ7*E-zRgAf*aCagN۾ZnG5oE{nvF8,\!Sŏ@"0e>T NTc ˽KN7z+ʒ,XsZ)L)7*x\L?- ̀;o卞ɯs`1YWr7UZϛx+j.UATzu74ξX)@T`'<]*Kx\ 󉉗xQ >F ˾%"Ǹ*n_κ%z?9Q@`)?z׾׹$dfn7]} ^-UÀ4 8ct`M>~ǡk9'XՋy14-*=7*0/aTJ=r4sBtgg_JD"JwjdK?^E^v_WT_(PZ (_CRxS `{z;0o\W~{>p)-w ]N~Sr}HCW^ѳ[04ξRኊL )uP2iר?j471NjfKegrADbdrvY&zڻ2әa߂Cu_yv@ʎЍejoAOhe1ldl"]zm]zF 'Htjz—zf[SK6 ݌vͦDS 2~?Z} endstream endobj 406 0 obj [ 405 0 R ] endobj 404 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 407 0 R /Annots 406 0 R >> endobj 408 0 obj 2506 endobj 410 0 obj << /Type /Annot /Subtype /Link /Rect [ 204.788 558.456 518.431 568.631 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/persistence/IPersistable.html) /S /URI >> /H /I >> endobj 412 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 543.057 180.324 553.232 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/persistence/IPersistable.html) /S /URI >> /H /I >> endobj 413 0 obj << /Length 414 0 R /Filter /FlateDecode >> stream xZY6~ׯ`eU\UN6vg;ڇL8fĬ$jIjƳ[iK.20?9#(se8g{I L0DxxRcGȦG${M!<#! 3q9rv|>R~>cgCrDii6*ig/>Zзg[A;24s 1tR+ctTð,D,.w5􍻺$<z6{tOpp&o=PcZ z{vxGIа#.M$x8841O @SRZFUcfyTK.ۙh!LJsIpx^- /Eq>>ib\:l ,}<;وy*\>E[?=^^ʸFmͿcKIh .t!qKSvJ`)Vlu9E1eDX|]uNm)Ԣ^}Fte5ĉGxƺޘ-ժh,raƥ!kѴE 2ݏ7÷|z< QXܩ9kITVUϗk#Av˜6/v弪/m72DN zv^?M0 Vni y`Eʥmq~ѫM[ClT/*g[= rbJCYb"s)wM#֏Pո'Hm1[|z>Fˇ{q.hň9haiKs4#nGVhOhգZ8ClNʙ>߅0-ۮV ;l0pǒsLө8:ߴHi^{;-gfWխXcѻQ<Ї럾,No " wyQ?-/S/ e brds [C\aA!EF!Ef.pSz`DYwm?Ҝ \\F) I7;W5=m擃elP O %MԤʘm ݾuR{i#i y<+Fl|,ZqP8{t͑VȨ;e$ 瀁ХCFU829 13Hxw2\S;۫>{PQ|6]tr3щ'I>|N8Dތ8U3#R9|C.[Nc1IRWat|` 8'pk $4nm%Qgud*}-O9v; bh'59 ?<{Auveh^-EFjGbmT,ۚrz%[:ILޘr1{᳾,3Z>`Lvp_+P{xlO ɡΘIfb'd:t{eZI>q,xy |xC n҃A{ӰdKYr$O@<8CQL -;m-bv[&mO:JAKj94~YT 3fɛ ?%.@03Pˇ/1fqj#NDC=ո"0 *C4=F)uy+Iԣ%1 ?PU6xu2g31 l(^}2u^(}]w#9=Os7>}v381A?V- lC%c?'䍗ѕ<+ﺣ|mc<9O/XZIfd2>ou3(>g0"{J8/%x\sRoAIJ/[ endstream endobj 411 0 obj [ 410 0 R 412 0 R ] endobj 409 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 413 0 R /Annots 411 0 R >> endobj 414 0 obj 2632 endobj 416 0 obj << /Type /Annot /Subtype /Link /Rect [ 278.807 677.456 515.417 687.631 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/IScope.html) /S /URI >> /H /I >> endobj 418 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 662.057 174.83499 672.232 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/IScope.html) /S /URI >> /H /I >> endobj 419 0 obj << /Type /Annot /Subtype /Link /Rect [ 355.213 662.057 514.185 672.232 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/IAttributeStore.html) /S /URI >> /H /I >> endobj 420 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 646.65796 288.542 656.83295 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/IAttributeStore.html) /S /URI >> /H /I >> endobj 421 0 obj << /Type /Annot /Subtype /Link /Rect [ 376.575 411.45596 492.746 421.63095 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/scheduling/ISchedulingService.html) /S /URI >> /H /I >> endobj 422 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 396.05698 410.81802 406.23196 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/scheduling/ISchedulingService.html) /S /URI >> /H /I >> endobj 423 0 obj << /Type /Annot /Subtype /Link /Rect [ 209.07799 380.658 486.047 390.83298 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html) /S /URI >> /H /I >> endobj 424 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 365.25897 215.183 375.43396 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html) /S /URI >> /H /I >> endobj 425 0 obj << /Type /Annot /Subtype /Link /Rect [ 292.238 349.86 528.848 360.03497 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/scheduling/IScheduledJob.html) /S /URI >> /H /I >> endobj 426 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 334.46097 268.995 344.63596 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/scheduling/IScheduledJob.html) /S /URI >> /H /I >> endobj 427 0 obj << /Length 428 0 R /Filter /FlateDecode >> stream xZm6B_ZHI آixPMȖ+ɻ]7D")ۛ&i$<37J }I௔)Ô+>$#Q@("I?1I1 C1.R΃"1FoxiG\pկu  &ȎgboiGq!;g/b۫n= qN9'<UE0 1_oWo( S&1-u}:o[\~v]0%bA( h/)MFQ $S4Ħ=<\N7dv>`EaRpM:ctOL8(Z 'uww#KO6nҹL^v&k c2+|N "wpXaIG3;{f}{w*.cRH+8\E 3oުzUa._^o뤭;8$U?2:JC,\WJHW,\(a[ ' *lM9Ha)xW(D.N#2Ca SK"WĠj"ZRKF&To JM@1ӐzWg R#=YR(Z iGǂk#b| .w vRD_U%^FBNc%)π,$WSB_Hнh-{*+ In˛Ҩm!-ۦ9|5 UhUg|^VMݖ׹O!1٦< 6^AKBUy:FTl}4U$Zކ->=F4mӴzQy  u-H)6 ZyGVJ2:4YfS+cDITu n߿qq:u^||9{y>څ+u $W}B]/[M~Z='eɎEcc_ \ɣ<ŧЃɴzఛH(,/z, e[cX Ho*Nfps Yv׏re ʒhk/z5[gHҵs(MCِoG ] .Hp0ekA۵wUɢӫa^\vimni>82UwZ%;V\*c졋EHW8HTĵCS(C"uh/Dhbej(,nq`S7YA-ȪB9P!S8WFLKo]W5߼]80W[>mމf[Y4/⣔AM>!_$C1$隹 UCO1Qg&ZI]j)ph#G؝j n2mBO՜zm &GvsFiʕη_!BBei0CS>tOo[B Qq[eq:CÅ[U2T|<"rfbKa :%S[v-T6/ laH6_ =Uc$2'_DvӏXؾU{cG%9O|;xS=) Sگ2N/9zHvp62fi#ͯȩj坰0}gTJC %F1z8k pC:jq\5Tσ8^{Z|LD{-%}*>OX> )@SاLq|UްI8D8*  58|JEo"gCOx`,z9Viȝ=kJnԓO){}ҹhCge ;7`Ga1La-D4] [Wl5rӅL%[6b>*Z:uۄT`q8 weYlzOPߣ -@x9&gӮ;81\`ZT+N TZ vT$O|Y鄄J4rrmg &`_U橫b<+u`N ֕pUBfz·քp'E~t:zm67Y{\nptJE,|Kpa_zu~2&ml0nm-1K^?ϫMq6K"q(>> endobj 428 0 obj 2705 endobj 430 0 obj << /Length 431 0 R /Filter /FlateDecode >> stream xZߏ۸~_!ӦrI4-.Anq ڵ{Jn{H"6҈# SPcl$ f lDsy1MC9!qeI\3%Sl:pqc`Ē略dnR)]}到bʊLi !t-ˇx@B1sFNxH~l~$W xo7ϫ (M ɰ++d `gWbBi!8|K btA(T r")s1߲Rj2`ei …b2ՕKCpBfƅ}V@ k9$;,R:x<%`$hh%i( '* Xh.?j7,7'q8w.fz4vޢeJ,>` ~ɗxe=)`& CV[6v*osjP+8ZE 3SUTFJ>N) 祈GЅ F+Magºt}solx3 TP[=;0`Y|p^ê )KNB׋jaP( v8&"HK NʹX@n-bDz:#gLG~\mA" sRP a>j$Q\EOl* R[jp 9^"r^cP42RNj}?>[_ cPߍ5i=Vs__MJEa;tO12NM_)V.LuA?>ugYDa)O%+u^ VjWV5mC :GN& ܼΧS,oE.iS[?AaehݡOp\ѷþڵ3x7!6̏ ptgΧJ/c TB'Cr<,rjYrYm:/#y .|ˣ<@Fcx^)' [u$ڃ0pRS cx2_c 8Cs Wi' O4OXz'7en]M] &%9QQ<}?\#̇"fpb[|Jp$h131e-Iޚ2 ,Lߦ}Ddb_cգzG[% $P2|>_|ޔuc6-UF^0ile&,F`h̕,N^^=_ǣ13毌l޻s[_q)DG+ct(aLwszx~A ù5Ii1O5VQHYlGx}x4]>o<:JsYWy$!7(0G86rt.KӺ\g˙$[D T{ ~=bS+hA+i)rwԶaV#pD1jy+8lxq{܆= e -8Ģ4Q N}$z ݉%٥BCG]ߟͦwM׿e7"1p 9_>t16ǝN7jŖZ.o?]cx;A{ 7\1y=fm3];Qpc|A745[YmdF endstream endobj 429 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 430 0 R >> endobj 431 0 obj 2425 endobj 433 0 obj << /Type /Annot /Subtype /Link /Rect [ 227.39299 703.33496 528.199 713.50995 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/net/remoting/RemotingClient.html) /S /URI >> /H /I >> endobj 435 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 687.936 198.045 698.11096 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/net/remoting/RemotingClient.html) /S /URI >> /H /I >> endobj 436 0 obj << /Type /Annot /Subtype /Link /Rect [ 338.669 377.145 541.663 387.31998 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/net/remoting/IRemotingCallback.html) /S /URI >> /H /I >> endobj 437 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 361.74597 312.973 371.92096 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/net/remoting/IRemotingCallback.html) /S /URI >> /H /I >> endobj 438 0 obj << /Length 439 0 R /Filter /FlateDecode >> stream xZݏ۸_ 'SS]$W&٢yu.Ō1X-;Γ eBĜR9#.|[zCShOD$b]el :뎎:K5;T>sA8_"dx{0Nq!!eDP0@mAfX@b agIR[- j lc89HtDpA1Ģ,u$Y_=@81գ-pn|2&cDe8)01@(=8  W煀|m6>&s4ט ͍bu/7s1cep|)w$. jXݣz,6U @!DncW`a232j?KQʸ2W˺y>-weσ/-OUn"1zڕZ|QeWޭN/iӡzM7ϥk4IRC'=}SwuQo>sa>ԛM}^WՍCso>hWЖ>0O|>,;}wpB A:cL'A! Qâoz:fa"pe :_@jd$Ө/o@B$~A#2CX1tsܡ $!;Gِdi!18 MܩC KHfy l2lC،!lnLS(b[Erw]3^C؟܄ɀx '*ؾϻǪ(eqD; $`F!֧%ƐbSSy t"dWO%x,9z'~P'oYt?^%r"}g~V?H4־ R~9>qx쥔9fSCz,~=gL24=l̫Gd lz.y)c:Yz`B>"Q8N%B AXo˥bOW,Z6c8VSLա ABL>?|ˇj[I>PdJޙX^En{_ѣj yo/ppP9V*5j`XYQau5K m62WQ K[lŠ)w1f}[7yQ/N[!ӡltVsƲ~zj}ɥD.%n`ѝbm~%L%@G57.W9U@Ptoգ!:}W oz'Rt!90s3j k1/n fUm7 B zh'+oAfbpK{/ <j0,mj maU>S;۝%# PBNP_ObiPM\ve۲(%r'r$CT=5_*7p!B1v`WZ~xё11 7 M$<~gC5]Qq~\WFU: ?!gN-&tR<+W:3_/Lo.q.mpHrs4EuK=>4R N3ĹC]L}^`<3 Lpw*B*[%*'9M>+V;\6U9|Tgqn@sm_Rp/'eJsRߤ W1R{9]=/?iۋ@-BCAx+![T; D5&}Wf>Ι[ͳ2(Jkce3/". endstream endobj 434 0 obj [ 433 0 R 435 0 R 436 0 R 437 0 R ] endobj 432 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 438 0 R /Annots 434 0 R >> endobj 439 0 obj 2691 endobj 441 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 738.607 248.172 748.782 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.mozilla.org/rhino/) /S /URI >> /H /I >> endobj 443 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 711.532 450.539 721.707 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://static.springframework.org/spring/docs/2.0.2/reference/dynamic-language.html#dynamic) /S /URI >> /H /I >> endobj 444 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 696.133 226.183 706.308 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://static.springframework.org/spring/docs/2.0.2/reference/dynamic-language.html#dynamic) /S /URI >> /H /I >> endobj 445 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 605.683 243.321 615.858 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://groovy.codehaus.org/) /S /URI >> /H /I >> endobj 446 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 461.08298 233.52 471.25797 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.beanshell.org/) /S /URI >> /H /I >> endobj 447 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 343.55798 234.147 353.73297 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://jruby.codehaus.org/) /S /URI >> /H /I >> endobj 448 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 226.03299 303.20502 236.208 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.jython.org/Project/index.html) /S /URI >> /H /I >> endobj 449 0 obj << /Length 450 0 R /Filter /FlateDecode >> stream xW[o8~ϯ@ڇmb|{GZiJ0U$ ]YC=! |K 5 R8"WH LY@8"13xpa11Dk!%a19CXO0 0=.gm#{pA1v*A^`?QȕOKD4S:$J|ꜽI)T %qaR#k2e~dӥbT"IbOiʔ#Y]̘jzb;GbH)9)G|qi T .1R+%18?n ~wRKG㦚`U0Xh5IP.V|cCXxT oX0"bٰ>63[fSCrDO1)~xps]n\f}ՠ%N3a:nrn16+@`ʞ\ѓ{QߌpC, kk._mf..Dd-1PR,+F':KY"͏)<_^i@@YR0"~ (.lt'`ïAЦR.%BV0)kF=5Q:ڂngPnUޯ^Q endstream endobj 442 0 obj [ 441 0 R 443 0 R 444 0 R 445 0 R 446 0 R 447 0 R 448 0 R ] endobj 440 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 449 0 R /Annots 442 0 R >> endobj 450 0 obj 1130 endobj 452 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 752.483 248.172 762.65796 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.mozilla.org/rhino/) /S /URI >> /H /I >> endobj 454 0 obj << /Length 455 0 R /Filter /FlateDecode >> stream xUKo0 WP/Kq@;0 mn.)5~hKuRŏ!ӟUYk1ex9C!+ƍ *349YY` Zںdo~d kD4fL!8["(a\ D{c69y1}'Y5fk5$82shIr xjQ 7ՔʠeBXH*1w )2܎'rɴ #H`9cR)S)WLm-C5vx\&wbƜk֞Yn){c.I1:0܌4CkOT9I]˩qA.I1. 3,2sdJpn$vO E*4zNaؓe0kiЇu> endobj 455 0 obj 668 endobj 457 0 obj << /Type /Annot /Subtype /Link /Rect [ 124.092 697.458 328.307 707.633 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://archive.apache.org/dist/ant/binaries/) /S /URI >> /H /I >> endobj 459 0 obj << /Type /Annot /Subtype /Link /Rect [ 186.45099 487.37598 403.503 497.55096 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://java.sun.com/j2se/1.5.0/download.html) /S /URI >> /H /I >> endobj 460 0 obj << /Type /Annot /Subtype /Link /Rect [ 186.45099 462.88898 403.503 473.06396 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://java.sun.com/j2se/1.6.0/download.html) /S /URI >> /H /I >> endobj 461 0 obj <> stream x!l0EM  C+M4#0㤔M\ O#y!qd)b]4~% Ԃu~~Rqk ]l+*Ŷ8vya>T3;d^܂[͍&G'GEf@ &LKΉ^E/y.ZrCN>)W~BM)T#JH߀ZQ,ŠPM[n j6'LXU7T=ڳhY Ճ$V*+'WP32:R2K q?IɘQ)׶3 endstream endobj 462 0 obj 341 endobj 463 0 obj << /Length 464 0 R /Filter /FlateDecode >> stream xZsӸ~_`fQ$ْ,fxh[2v1asn=%[4]`hG|::)d$,*R Y6Y d Lܼ*8‚c\(lKzCڍà`9o? A7oD|By!a㲕!7Ah&2⑀%ˊQZb*ZYb}<{jd# 85d?qPq)@P>*p)O`jJZw{fLiM_DHFȒrщ1K7D æq)PӃdd{ǸD(Ǘ[]~7Q(1e4G"yN^dfKJ`)/z OӰۇS2\ A\?ւ[K`dz9ƐKD0zȞg^jfo[-C`0(hqv^mnz}WsnDz $ڮCY|x]`1"UyջiA:F%8"x7OxWEܶn/bk~4ّ,!ut[Mnjw$̨ZZշ՝m`]k+}eCZlo6za>]nuGw@6ʮoClEP5! m헐Y˭xc{ݪe}XI5?tPAُ 0 dS^dJAXu}W5rHPz>8W*\p&Xk (uC1,CBbyPA`/9'qc=SHLx.wv5wW>VX2.ۣ{eA|q#p,ԃTk"F&^Rr$TnIR3pY+HaARS"VG[7-TmqoS~"qjGm}Զ8Emr^=g NHmxWU{[!zT颙L0-A/z\z% T$Dؓś:C 8CSSdOP6%M=G# ?7D}gȌC1žEN2 Pek'0N쮟~6=dp.˻x?5).J0A㨣=z!om6x> endobj 464 0 obj 2203 endobj 466 0 obj <> stream xYLA񤘨1 F AAAZJ"1_Qh<#*F<+(&JAt{mv[&@Cħ/0O73$<;=6[E }q|QjplprǛ,W+{S)̓[O/zv|V/c8h}-r.0/~TB"+(L ($ՏeZ㪔[pWk74fh٬^vcl?$:6ʜ|qȖK_߇QO~錥QA@ f%ЈToB L9:%$|Η-=>+5c j8qH"M۔IiVgMhg'7*A uw/'3t|. ׯ65 ]i(S#wYt2Bc}וA!/#5rPLUiT=eC*ߚP#ʞs@ v\nH6^iSp@PD? ,S1r\0eoyii)0~LcccYYYEEhI&K endstream endobj 467 0 obj 848 endobj 468 0 obj << /Type /Annot /Subtype /Link /Rect [ 490.20602 756.087 539.112 766.26196 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.netbeans.org) /S /URI >> /H /I >> endobj 470 0 obj << /Type /Annot /Subtype /Link /Rect [ 153.023 740.688 200.103 750.863 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.netbeans.org) /S /URI >> /H /I >> endobj 471 0 obj << /Type /Annot /Subtype /Link /Rect [ 206.219 740.688 324.832 750.863 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.netbeans.org) /S /URI >> /H /I >> endobj 472 0 obj << /Type /Annot /Subtype /Link /Rect [ 330.948 740.688 418.365 750.863 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.eclipse.org) /S /URI >> /H /I >> endobj 473 0 obj << /Type /Annot /Subtype /Link /Rect [ 424.48102 740.688 532.072 750.863 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.eclipse.org) /S /URI >> /H /I >> endobj 474 0 obj << /Type /Annot /Subtype /Link /Rect [ 301.401 647.94696 424.92 658.12195 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://code.google.com/p/red5/) /S /URI >> /H /I >> endobj 475 0 obj << /Type /Annot /Subtype /Link /Rect [ 431.036 647.94696 458.558 658.12195 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://code.google.com/p/red5/) /S /URI >> /H /I >> endobj 476 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 632.548 220.089 642.72296 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://code.google.com/p/red5/) /S /URI >> /H /I >> endobj 477 0 obj << /Type /Annot /Subtype /Link /Rect [ 512.667 606.253 540.189 616.428 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://red5.googlecode.com/svn/java/server/trunk/) /S /URI >> /H /I >> endobj 478 0 obj << /Type /Annot /Subtype /Link /Rect [ 112.223 590.854 325.59 601.029 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://red5.googlecode.com/svn/java/server/trunk/) /S /URI >> /H /I >> endobj 479 0 obj << /Type /Annot /Subtype /Link /Rect [ 341.48502 590.854 526.747 601.029 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (https://red5.googlecode.com/svn/java/server/trunk/) /S /URI >> /H /I >> endobj 480 0 obj << /Type /Annot /Subtype /Link /Rect [ 112.223 575.45496 173.35 585.62994 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (https://red5.googlecode.com/svn/java/server/trunk/) /S /URI >> /H /I >> endobj 481 0 obj << /Type /Annot /Subtype /Link /Rect [ 505.33002 533.761 532.852 543.936 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://code.google.com/hosting/settings) /S /URI >> /H /I >> endobj 482 0 obj << /Type /Annot /Subtype /Link /Rect [ 112.223 518.362 275.474 528.537 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://code.google.com/hosting/settings) /S /URI >> /H /I >> endobj 483 0 obj << /Type /Annot /Subtype /Link /Rect [ 512.667 461.921 540.189 472.09598 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://red5.googlecode.com/svn/java/example/trunk/) /S /URI >> /H /I >> endobj 484 0 obj << /Type /Annot /Subtype /Link /Rect [ 112.223 446.52197 336.601 456.69696 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://red5.googlecode.com/svn/java/example/trunk/) /S /URI >> /H /I >> endobj 485 0 obj << /Type /Annot /Subtype /Link /Rect [ 352.496 446.52197 537.758 456.69696 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (https://red5.googlecode.com/svn/java/example/trunk/) /S /URI >> /H /I >> endobj 486 0 obj << /Type /Annot /Subtype /Link /Rect [ 112.223 431.123 184.36101 441.29797 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (https://red5.googlecode.com/svn/java/example/trunk/) /S /URI >> /H /I >> endobj 487 0 obj << /Type /Annot /Subtype /Link /Rect [ 512.667 374.68198 540.189 384.85696 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://red5.googlecode.com/svn/flash/trunk/) /S /URI >> /H /I >> endobj 488 0 obj << /Type /Annot /Subtype /Link /Rect [ 112.223 359.283 295.032 369.45798 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://red5.googlecode.com/svn/flash/trunk/) /S /URI >> /H /I >> endobj 489 0 obj << /Type /Annot /Subtype /Link /Rect [ 310.927 359.283 526.758 369.45798 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (https://red5.googlecode.com/svn/flash/trunk/) /S /URI >> /H /I >> endobj 490 0 obj << /Length 491 0 R /Filter /FlateDecode >> stream xYK6WUkW{Kb'=8xjS[СDFO$@!F 0}E? Z՗>L)GD+1ψ@lǴ1Y"zu_SaW>M.p^;ȸBDP(=ӉSc¹S!࿻_@2B%1Aet}wڔE~)6e)=xAp(՘qNX,TPbԄ!8E(P=rl$GjiN L'5SJ{_BiaKcIts Nj!m/tQPs6d^E’Xd9en(C\(at%8eaӽ<<< ƳErMQ,,Qly:_a>,߲e’$ D0.}0<ͺb;N \j ,<~-^>H|9eI|hHQolTs .WNa_1}ye:cIB헻4{]ٮ`1L3(LoS1zd[uI,nЁHóȶsB`;aHb,}[m?O(6Pvx]uUbx;u2_Ή1oW9Q<' ]_UoF!!g[oB x!%R x:uww\s]M!ms;)HKe## E 2CC=o\T@o n}ہ}Ȳj\5DL̐.TDtˤ3BB5t {,&7ʎE-de]ocr}]* C@wUbcS.N1\5@;)MLb qPp`0Z]Nf *air(,e]u%DJRS> endobj 491 0 obj 2178 endobj 493 0 obj << /Length 494 0 R /Filter /FlateDecode >> stream x]o8WpH;?_n۴jU&RWj'C,0I J*j/s=Rb@< jQF!4@ `j9`EҶL?l7iguu| bxTOmgdG8o9bz5  o9PDHg/YfE,P>ɔ]߂wkFcq q4;O|(&eE<cD}*;!T# ђMx5.-"818'Kש{\ZeͬUw5klsbW},A !rLe!^%0P#fM meskfF 'oeS, 0KoV+aepaDFT;A̷3U}8ɢ*U"K'TQ u.VV_> zagig+ t+j_Ẽ.'{1s#͸H)e}eg[= UYAU?Qۍr2dXۓ^cDaiTHM˽xch$R%a*$ϼ ލqT7h,Ϛo>(Q1EpA"FLeT͞S6Q53UY637nD'y#N'2 $pّ:S3cd|ma,$z[qdu3߄\dWDڏ#@=uɑ'QYMi&LyMݜ,<FbʒYŹHeDrmiHwwxos@X#Au# 3KYsu- q'j~:LjM;>Dc\P|GY4KCs2yYͳrJo. `oȴKI.E8R̴nܭ^F>@j-n2 c,XSm孬dȕ89Zn:2MǯTU>؅t$qZxϑx%+U w­9=Q{[GC@7LWER?֒HW28 a :+kqBݬfoDNAn$6'[QbG=ԇYѶ*w!ÖTDc( }hYrTRGcV}{Qw냃( .^LF\,fN1xnEe7I;:wJL̠׻_R endstream endobj 492 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 493 0 R >> endobj 494 0 obj 1516 endobj 496 0 obj << /Type /Annot /Subtype /Link /Rect [ 218.846 102.19797 462.177 112.37297 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (https://red5.googlecode.com/svn/java/server/trunk) /S /URI >> /H /I >> endobj 498 0 obj << /Length 499 0 R /Filter /FlateDecode >> stream xXYo6~_!}.M}蕶A&<4E ^%:vJ"EQ6 'p8x~Aq(+6oHH S0D":,(Ęy$@!^Mi1^m`" V[{{)7e_#0 b ߼E>=Ŏ]^ T*j{?+6w1I9]R4Pi !mf+6wq ^ nR/sB W8YNc9<|Xa< ef`N,2 mbe&ODp,Ėh)9p+|M G.{pJ1t$w+]W8rxNN K'X0@(pcFTs .WC_᲼.z>~`[:&ǧ䜄hwσY?JZ3+eWax -N>zr1u:?qK] B"t-స3 _RS&u;<ދp!Q]NmZ]J =iF}*K{p;BHHN;)=~ߖEl| UcC VZl`m+m;L]i#'Q:iZ>]]mx# ^M6M+ <06UP2ݶV6{JdL7cԌQip^QwynvYGNħײf3 ѩfznNH4F=(\d5r{MC>(˷Bq.BeWbEQS2Z@67SG|!Qf)gUmRq̫gdrk{<.it ~+:YlhL&q7EN`Md"mߔ\VűY@~U.6bߏU2*46*W{,@bfkUUP> ;/q*Fj|6TJ]Bu uW`ΥX1L)n+ tt۔ɱ9Tv~׭JZ̕Ѹu0<&QSHiEv0T'|0*(c0Xb vY9{|Vvx/!;%\JA`2 cpa 1; Dp@JFZkf{γ !D ju2dd~@Wo7.X0=:[ w[#I8&9q&a%&})\ O G/^ܗ.J|Z n܋ebʄGX~RkW$W+@µCfnVvx4ʭ9A-ByC>kfs u#jJM@*D`'ܩj׭]U)%]ieǾJO(2 ȑ>Q$LCPlWJOS Nk aO ̀].OGC.п t&֘3c~A a #}Tk?A6"92)w_u_V\JMȎNA' QƜ_]̚cé)xa|8tR=7ͩЅB ("Ɲ4<}=-T̲걌zi궯f…#, ZSI$P 1gm{lSU=bW_6Vz8q 6d|'OO(۸4c*#l` d,j endstream endobj 497 0 obj [ 496 0 R ] endobj 495 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 498 0 R /Annots 497 0 R >> endobj 499 0 obj 2059 endobj 501 0 obj << /Type /Annot /Subtype /Link /Rect [ 152.197 786.58295 365.586 796.758 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://ant.apache.org/ivy/ivyde/download.cgi) /S /URI >> /H /I >> endobj 503 0 obj << /Type /Annot /Subtype /Link /Rect [ 172.987 744.36896 321.542 754.544 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://springide.org/project/wiki) /S /URI >> /H /I >> endobj 504 0 obj << /Type /Annot /Subtype /Link /Rect [ 226.788 717.55396 348.448 727.729 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://subclipse.tigris.org/) /S /URI >> /H /I >> endobj 505 0 obj << /Type /Annot /Subtype /Link /Rect [ 316.04202 233.42496 529.42004 243.59996 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://red5.googlecode.com/svn/java/server/trunk) /S /URI >> /H /I >> endobj 506 0 obj << /Type /Annot /Subtype /Link /Rect [ 121.023 218.02597 145.476 228.20097 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://red5.googlecode.com/svn/java/server/trunk) /S /URI >> /H /I >> endobj 507 0 obj << /Type /Annot /Subtype /Link /Rect [ 167.487 218.02597 410.818 228.20097 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (https://red5.googlecode.com/svn/java/server/trunk) /S /URI >> /H /I >> endobj 508 0 obj << /Length 509 0 R /Filter /FlateDecode >> stream xX_s6Oc<$![ڭ;6!;|+pw!LZH? #(Iǘi?iHO,B80f(b"D ^q>yQ%lvkâXOc`ăb=c|xC#)IO=^K<':>c~gQ5؁sX^^ D Ex}ś7^/#SpY(M0ckGZ'Y-2i"δ:EEX10ϭ-hp8piy/.u+ JH,D8q Hg1a3Rw@jۿ- gx`$4D GQ8)d ްhF_{enmֹ(fue{x~N3G[xbH@so-e6~ xSumۧN [?zgfcV K]v{G]V>i|(\< KϊRj!Zcz -]^/iѠw*R>>Mܔ"/ Zo1.GT$#8O2,&󴑥5R?ҧ,5ق9D̠@UvFi^eI6sCcGz5.Ky ^qLn<`u9ZG>yf4?YWZ}O W14t}c#ROm;F7#d}ml+geR=GN20@Ra`L3< Q9Cu111]E?Y+*xYN&ea|fSAak' EZ`uR+ ,dݱilqSG*q ӦJYl}847~# `ܗf >GOse-@/W/25ybz:XNU㪬U?Z 2Otr#IMBVS/lt)-$EvVAE_Az8DC(o}k>+B'];PP=zeIJl~Y? +K0/`n s{ |É.yWjL/=;+Q{!  Gר6o&U)H EبZ hBl.ہGw wgə%?v QGfͽVs[GP7,){g.Xj}kJLՁ?swV" c~plEFn[Τa|sGd/ endstream endobj 502 0 obj [ 501 0 R 503 0 R 504 0 R 505 0 R 506 0 R 507 0 R ] endobj 500 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 508 0 R /Annots 502 0 R >> endobj 509 0 obj 1911 endobj 511 0 obj << /Length 512 0 R /Filter /FlateDecode >> stream xYݓۦ_٧dA!li>6δ֖jd˕$@LI|r$ JPQs̒nς $a4KEgjcr*] !&dl!G6̸KG]~ 0 F,_X"Ǎ`F9",Ÿ]ZEb$$7pPJRxB`O%?yqu>M$SfO?7W7`F N$֥MB^HcwV9eqy$CzraaH)n)1\a%3y{*"]]tsNHJٌ="0i!gS A`I!8*mrZF|a1|9Z47veX|j1N6\2 +-]"#"$B eNL +P>^nU)NCT(b8xݔ^[u_N}⏧v:N* [ W¹"dy}ȷ32tdxۮc zl*wj!fu||D-S 6Q Q㹹*ֆiVNصtNG3I&p2gI4TojUShkVj˽FWDTm  Y`0+kO^6}nTMZVJhڇ曶i7UVr,&S"O>!pSfE6D$stRÚ9 ,0(0۰ T[USU&O^Va+C_zR I1]c^t\a82QJ@t&gPgjv4 sU۩2HޞX> \t8lߔ_K5|~8 d%K zI}9gLL74r7eX7C̹i*M4l- ^Q?EcWBș@4R-)>2N`:{mOģARކDfp8SZ}E`ەp*؍d U 9K}Ȼ(bʁNew8M!́O*~˘16F27Dw F GWpj}>`Ќ#5ruPɃ 8.Aac2iO}/Bo^F)?TzZ7?ײFM}WG}sŊ -I׺k)My/wuZ݇ʦ17GД~>vޙP ENH}#ԘybLt7xɏNJ 3A@\pz3&Y|@fUMq'c;E#2( k;o #࿯V3>򱌠!-ַ]=,_Mo/R{?CMY~^ޯ wS>P+Y| "T+}&-jÑWț;[<'y,t^?yw`V½Kh kͯO*ʂhJ |n$+lh);0?SCϖWS᪬wׂCAmU09w+u +wC{||& $s+a.'HўƶK<*+ }B:,| G*dMyk|qYj[CZ f͘I<|W롩WqhAVMxbUSG2z"(2э!C,G .Q$> endobj 512 0 obj 2265 endobj 514 0 obj << /Length 515 0 R /Filter /FlateDecode >> stream xX[o8~_!Zi1&1> xBƝ $C&ӡ~qU>|0>#/i*(߭~H7H"A,"!#s,2*gB^lº^>\} 0F":<%S⏫A1NcYZCDb[]ߘ3"5$0>_:庨6EZ\F_Vo d0;d=ЎBP{/`JD )e*G}L1G%^2n{6CJțLgMQJ)ْ:2cf62paQs$><%`d9ex\JQH06i?Kp&xò{yzYlNƣQ,YExÏe$R"$"XH8J2c+sC+j-#evڵSyrQҏ 鞜w@]"|>y|]B}u)z>mUUk Ǹo*oAeΔշm}E^(*NEY2;VlT Mm|!!E$CLz]Wz1UfcfGjNEO!I<>j̃jleq^ if%YþeIK]8Dx$jln4Yz u4A 4 ZxHKDcI䓳sXAP5fLSF` ?1`V&xf݈Gg]A vjsrrO>|!g;/#Oҙ#GECLҪ%PIMh~.Cj+H7?sozazݨj٨l}?MA W3WS[)_.emqgy*\ fjZE}7X緪}ͪJW}i[VzĪ l/پ%U0]¡PIlPB?t61ۍV5dL SbѸNLttݾF8 Ǐa٬~[ͱ c,}I7 FSüB'$q=(=~Ag!*6}ZAr0%h%L%!rp Ќ鉧

> endobj 515 0 obj 1879 endobj 517 0 obj << /Type /Annot /Subtype /Link /Rect [ 222.46199 669.987 420.572 680.162 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://red5.googlecode.com/svn/doc/tags) /S /URI >> /H /I >> endobj 519 0 obj << /Type /Annot /Subtype /Link /Rect [ 503.04202 612.79 530.564 622.96497 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://red5.googlecode.com/svn/doc/tags/1_2_3) /S /URI >> /H /I >> endobj 520 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 597.391 303.249 607.566 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://red5.googlecode.com/svn/doc/tags/1_2_3) /S /URI >> /H /I >> endobj 521 0 obj << /Length 522 0 R /Filter /FlateDecode >> stream xVn6}W~JchpE Jܕ`JnpR{O_$(H!(I04Öc F$Jr!Qav'(~ ~)"p%.\} !9۹J.z4l6JOEV,X)"XDXl*Ѱ 37`=Za>yQz*WQp/ YՎILӾ띥uG4Tozst/Һ*P>g*&rOCLpXWVJ(%XȐ0r"uѪ/snFuqOH UZ|G:Sj[Eݵ_0 endstream endobj 518 0 obj [ 517 0 R 519 0 R 520 0 R ] endobj 516 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 521 0 R /Annots 518 0 R >> endobj 522 0 obj 1025 endobj 524 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 248.608 254.937 258.783 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.peuss.de/node/67) /S /URI >> /H /I >> endobj 526 0 obj << /Type /Annot /Subtype /Link /Rect [ 261.053 248.608 402.909 258.783 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.peuss.de/node/67) /S /URI >> /H /I >> endobj 527 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 222.20895 442.608 232.38396 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://andrigoss.blogspot.com/2008/02/jvm-performance-tuning.html) /S /URI >> /H /I >> endobj 528 0 obj << /Type /Annot /Subtype /Link /Rect [ 448.724 222.20895 476.246 232.38396 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://andrigoss.blogspot.com/2008/02/jvm-performance-tuning.html) /S /URI >> /H /I >> endobj 529 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 206.80997 412.028 216.98497 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://andrigoss.blogspot.com/2008/02/jvm-performance-tuning.html) /S /URI >> /H /I >> endobj 530 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 180.41098 428.55002 190.58598 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://java.sun.com/javase/technologies/hotspot/largememory.jsp) /S /URI >> /H /I >> endobj 531 0 obj << /Type /Annot /Subtype /Link /Rect [ 434.66602 180.41098 530.047 190.58598 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://java.sun.com/javase/technologies/hotspot/largememory.jsp) /S /URI >> /H /I >> endobj 532 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 165.012 330.111 175.187 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://java.sun.com/javase/technologies/hotspot/largememory.jsp) /S /URI >> /H /I >> endobj 533 0 obj << /Length 534 0 R /Filter /FlateDecode >> stream x[Ys8~Sp$0oIkv<9ݤ*#ӶIfoH(r'I9!Gh4#i`{A$yy2_qFNp0e IəJ3 T)OV+2ܻ5\83|<[/.0x]@,cюuEWО2q0<RiގuEО2qk05`@xe24͕ XHGdj/8]F[:C66X $H.%ɚU] lisNH^?JI5k:" %IIn@hIFRR2cJ>3$zv%Lu+ou˱t\bnFcu.EDAsZV+ K`De3!10N>'vSuuK}*`V0o=GՍsK=5*mHy|NY<.0_S8*ƺX?v5=Cۗw4V-8,\whK^VH냿)./Տ׶"DLQFR KdkXbeRB VSr1NH" BnA 28>ܻRrF0>G>]sYY8Mrǖ Pa3Tr[;i9!!̲&Q˝:4AX* cr?˒Nb'SrJH%g C4$\)cm"<3X)LU<NgM9׉81E>vr{8GO= J as,ìBY|/àsuF\@ofwXwfYvqԭgD[#oK @ Omg$ln9X2 E(op %qk]uT +6BRBF 1]sTôؚn_T!\J4ßvQt64DPSXO.}UMwI_iRSj͎] ?Oص?m`Z˽ rIN8Q H)ПEE9E3eqL3T[u@G~”f͌e sěBrlae"\'@5!H( h̖. %8*J碯Z[9(Bf8&ytj{Y#;Ep:Vguۇ鬤SGs=r#53U אصcb^6~={_mxibpz?桓y;zf/PUݨu]31Ypbi=޼*W!52&M(j@Z/v&yM9DD)F18ڒN!mގr)F|{~97æx>s2rI Q=dy{@W-?E,y T{Ыy.dFLt[5sFv#?aKG ͣ"Zlyj :H}AH"4ȻkN}xCCSخѷC\cyЮyQ[7[wX;w^>'9ݞ/],޹Tq`xs#GXcH(r?bYD0NQm=Sټ cN=uUJS~v]+rUrOS6v]V'.SUpi] -!:[tbObTIև+JR6ps%qUc^jgvTQ0'Ah.dEbʴz1-m=^LSAm;_*0^n 4êU4mq=.6{om_٥ͱ,ןCIwK)weo~e6;hSv;tW~/oI󙬷B7@XISWr*_y Ù)aC.ݦڣy_a:cunXˋa Ge`L½x}}AA7ʡQ|@棂Og =侎3pLԯޏvuU5vl_P-?,ګ̖lӼֿ2]hS",4Dt{ BQu/]: endstream endobj 525 0 obj [ 524 0 R 526 0 R 527 0 R 528 0 R 529 0 R 530 0 R 531 0 R 532 0 R ] endobj 523 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 533 0 R /Annots 525 0 R >> endobj 534 0 obj 2983 endobj 535 0 obj << /Type /Annot /Subtype /Link /Rect [ 62.023 714.34796 254.611 724.52295 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 227 0 R /H /I >> endobj 537 0 obj << /Type /Annot /Subtype /Link /Rect [ 62.023 687.949 208.136 698.12396 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 307 0 R /H /I >> endobj 538 0 obj << /Type /Annot /Subtype /Link /Rect [ 62.023 661.55 194.07799 671.725 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 357 0 R /H /I >> endobj 540 0 obj << /Type /Annot /Subtype /Link /Rect [ 62.023 635.151 187.962 645.326 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 539 0 R /H /I >> endobj 542 0 obj << /Type /Annot /Subtype /Link /Rect [ 62.023 608.752 184.915 618.927 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 541 0 R /H /I >> endobj 544 0 obj << /Type /Annot /Subtype /Link /Rect [ 62.023 582.35297 194.694 592.52795 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 543 0 R /H /I >> endobj 546 0 obj << /Type /Annot /Subtype /Link /Rect [ 62.023 555.954 302.27402 566.12897 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 545 0 R /H /I >> endobj 547 0 obj << /Length 548 0 R /Filter /FlateDecode >> stream xO0Wgl?iE6m@=54ZBn%qڱNds\PZkqf}H0TqH䘨L%B`cx+`@?2#*{sD`l6 Һͮ d֗d0sM2V ӄ֗d7sM6S{=M95 Fv(jr ,6'fI֎ 1]OB35Uy5(s 'uIh݁ áh1 I&QK$H~9O(M\"44%08R+tw~>MN@\Ӧ`FL;P;k͒uH0 i2c{I&B Hsn0%@ع#orYꏭ`}~%QpO}v}T{XtU0,in׶I{9?, XH)%DUKgWyLe4RkdC K\uvㅭon=c24xkuB\bAUcR׭-saf;M]ضT氌f>jP:Wbiǁ0b 80ʼnoų{-v6a}W`3V89ůjVGCJuqh'N.r?zSPC3U:K;+Ai9GY3U8ʖN}vգnʂAٿlR endstream endobj 536 0 obj [ 535 0 R 537 0 R 538 0 R 540 0 R 542 0 R 544 0 R 546 0 R ] endobj 27 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 547 0 R /Annots 536 0 R >> endobj 548 0 obj 814 endobj 551 0 obj << /Length 552 0 R /Filter /FlateDecode >> stream xYm6_!St|E%wwMEqhApJnP)J$N7؀pPK y.<WH$ LYBRD^"8bʓc2J8 8d<WN70K0}^kF:u_V! D88s">7PO5q/x>gy#JsL;݀z"x;@w_9aC!L Th 8 Lv8x )1gn1)YLkd EC 콙M%eRFDΉH"\YS]ű= 1JѠ#4)9 '`fJظpP>QKݼXT\&o7ТPTU܊ڗM@aکXNpvڀv{=$;]J'~}q4umYR{n˦Xiyz/u=Cd1vf`˫nvi})ϭE?t*Qg)un̝i07 ֧'ؔc/㎝j2F4;mq4S7I994VGsY(o'vCۃl Ѡ2:3҄ ?xM7kF/+0rhjb҅Ql꫏ohVTF2NxiYcjt p[m2z} 4 蓿/cXJ@p6k3Th$vv l޶WE6w&B 1نe,XrP!%r3sPS\8L@Ft,l)<&=Tu1֙?;|ZhU?:[R08#;R-(!?߯Ӯ8+Фn={n`ۑµ&%DdS7E2"w t@i"F%{ v39ɴbP9c.!"p)3r&0˽q~MV";gkpHܱ`uکdfLpĴ-)x׹y7\;z#kqoqrqFCD$1!.%I\AOA꙽.e,fw!Z.A#ˌ[)d9p픙ciWYFptPIYtX9k;$5JνQfFW99JY)C'kҸ/ke֬}V7uFh4Uyp}#׃cqrn>k͠L0WKYn ֗!]cŵYԗ%du}iА"IA{wj۱ڳږrQ,W8 `Zz&7ȣxr;zݳv"^>l@:zɑK[A8Ja,ҩZ(܃AH9[8 PoQZҐpV_=b`1K]hbx S!h GX5_5YpW X軵G7T~O3b^?}9唀>f<7M݆>w N p4gzJ36 endstream endobj 550 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 551 0 R >> endobj 552 0 obj 2159 endobj 554 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 786.58295 321.818 796.758 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 553 0 R /H /I >> endobj 556 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.618 786.58295 545.85 796.758 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 553 0 R /H /I >> endobj 558 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 771.18396 326.048 781.35895 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 557 0 R /H /I >> endobj 559 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.58 771.18396 545.812 781.35895 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 557 0 R /H /I >> endobj 561 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 755.785 337.808 765.95996 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 560 0 R /H /I >> endobj 562 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.146 755.785 546.378 765.95996 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 560 0 R /H /I >> endobj 564 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 740.386 314.609 750.561 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 563 0 R /H /I >> endobj 565 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.445 740.386 545.677 750.561 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 563 0 R /H /I >> endobj 567 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 724.987 263.95898 735.162 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 566 0 R /H /I >> endobj 568 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.00397 724.987 546.23596 735.162 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 566 0 R /H /I >> endobj 570 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 709.58795 348.599 719.763 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 569 0 R /H /I >> endobj 571 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.24 709.58795 545.472 719.763 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 569 0 R /H /I >> endobj 573 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 694.18896 355.805 704.36395 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 572 0 R /H /I >> endobj 574 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.174 694.18896 545.406 704.36395 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 572 0 R /H /I >> endobj 576 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 678.79 282.732 688.96497 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 575 0 R /H /I >> endobj 577 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.71497 678.79 545.94696 688.96497 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 575 0 R /H /I >> endobj 579 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 663.391 242.268 673.566 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 578 0 R /H /I >> endobj 580 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.252 663.391 546.484 673.566 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 578 0 R /H /I >> endobj 582 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 647.992 339.48502 658.167 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 581 0 R /H /I >> endobj 583 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.39197 647.992 545.62396 658.167 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 581 0 R /H /I >> endobj 585 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 632.59296 358.819 642.76794 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 584 0 R /H /I >> endobj 586 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.146 632.59296 545.378 642.76794 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 584 0 R /H /I >> endobj 588 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 617.194 227.04199 627.36896 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 587 0 R /H /I >> endobj 589 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.38 617.194 546.612 627.36896 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 587 0 R /H /I >> endobj 591 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 601.795 245.765 611.97 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 590 0 R /H /I >> endobj 592 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.158 601.795 546.39 611.97 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 590 0 R /H /I >> endobj 594 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 586.396 216.691 596.571 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 593 0 R /H /I >> endobj 595 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.468 586.396 546.7 596.571 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 593 0 R /H /I >> endobj 597 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 570.997 284.232 581.172 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 596 0 R /H /I >> endobj 598 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.961 570.997 546.193 581.172 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 596 0 R /H /I >> endobj 600 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 555.59796 279.392 565.77295 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 599 0 R /H /I >> endobj 601 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.005 555.59796 546.237 565.77295 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 599 0 R /H /I >> endobj 603 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 540.199 210.601 550.37396 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 602 0 R /H /I >> endobj 604 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.52 540.199 546.752 550.37396 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 602 0 R /H /I >> endobj 605 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 524.8 209.075 534.975 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 539 0 R /H /I >> endobj 606 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.316 524.8 546.548 534.975 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 539 0 R /H /I >> endobj 607 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 509.40097 286.664 519.576 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 539 0 R /H /I >> endobj 608 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.747 509.40097 545.979 519.576 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 539 0 R /H /I >> endobj 610 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 494.00198 205.12401 504.17697 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 609 0 R /H /I >> endobj 611 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.566 494.00198 546.798 504.17697 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 609 0 R /H /I >> endobj 613 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 478.60297 217.918 488.77795 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 612 0 R /H /I >> endobj 614 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.458 478.60297 546.69 488.77795 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 612 0 R /H /I >> endobj 616 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 463.20398 195.386 473.37897 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 615 0 R /H /I >> endobj 617 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.648 463.20398 546.88 473.37897 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 615 0 R /H /I >> endobj 619 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 447.80496 247.454 457.97995 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 618 0 R /H /I >> endobj 620 0 obj << /Type /Annot /Subtype /Link /Rect [ 535.217 447.80496 547.449 457.97995 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 618 0 R /H /I >> endobj 622 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 432.40598 249.233 442.58096 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 621 0 R /H /I >> endobj 623 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.062 432.40598 546.294 442.58096 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 621 0 R /H /I >> endobj 625 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 417.007 267.6 427.18198 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 624 0 R /H /I >> endobj 626 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.906 417.007 546.138 427.18198 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 624 0 R /H /I >> endobj 628 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 401.60797 258.90298 411.78296 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 627 0 R /H /I >> endobj 629 0 obj << /Type /Annot /Subtype /Link /Rect [ 535.075 401.60797 547.307 411.78296 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 627 0 R /H /I >> endobj 630 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 386.20898 206.052 396.38397 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 541 0 R /H /I >> endobj 631 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.33997 386.20898 546.57196 396.38397 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 541 0 R /H /I >> endobj 632 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 370.80997 292.106 380.98495 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 541 0 R /H /I >> endobj 633 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.701 370.80997 545.933 380.98495 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 541 0 R /H /I >> endobj 635 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 355.41098 219.38 365.58597 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 634 0 R /H /I >> endobj 636 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.618 355.41098 546.85 365.58597 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 634 0 R /H /I >> endobj 638 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 340.01196 226.07 350.18695 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 637 0 R /H /I >> endobj 639 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.55597 340.01196 546.78796 350.18695 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 637 0 R /H /I >> endobj 641 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 324.61298 229.115 334.78796 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 640 0 R /H /I >> endobj 642 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.52997 324.61298 546.76196 334.78796 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 640 0 R /H /I >> endobj 644 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 309.214 208.782 319.38898 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 643 0 R /H /I >> endobj 645 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.534 309.214 546.766 319.38898 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 643 0 R /H /I >> endobj 647 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 293.81497 306.928 303.98996 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 646 0 R /H /I >> endobj 648 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.688 293.81497 545.92 303.98996 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 646 0 R /H /I >> endobj 650 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 278.416 401.281 288.59097 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 649 0 R /H /I >> endobj 651 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.695 278.416 544.927 288.59097 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 649 0 R /H /I >> endobj 653 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 263.017 369.594 273.192 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 652 0 R /H /I >> endobj 654 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.984 263.017 545.216 273.192 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 652 0 R /H /I >> endobj 656 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 247.61795 308.991 257.79294 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 655 0 R /H /I >> endobj 657 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.598 247.61795 545.83 257.79294 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 655 0 R /H /I >> endobj 659 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 232.21896 300.883 242.39397 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 658 0 R /H /I >> endobj 660 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.742 232.21896 545.974 242.39397 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 658 0 R /H /I >> endobj 662 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 216.81998 259.883 226.99498 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 661 0 R /H /I >> endobj 663 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.114 216.81998 546.346 226.99498 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 661 0 R /H /I >> endobj 665 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 201.42099 293.204 211.596 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 664 0 R /H /I >> endobj 666 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.566 201.42099 545.798 211.596 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 664 0 R /H /I >> endobj 668 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 186.022 355.763 196.197 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 667 0 R /H /I >> endobj 669 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.243 186.022 545.475 196.197 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 667 0 R /H /I >> endobj 671 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 170.62296 335.397 180.79796 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 670 0 R /H /I >> endobj 672 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.361 170.62296 545.593 180.79796 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 670 0 R /H /I >> endobj 674 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 155.22397 398.73502 165.39897 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 673 0 R /H /I >> endobj 675 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.654 155.22397 544.886 165.39897 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 673 0 R /H /I >> endobj 677 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 139.82498 202.943 149.99998 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 676 0 R /H /I >> endobj 678 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.766 139.82498 546.998 149.99998 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 676 0 R /H /I >> endobj 680 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 124.425995 301.77402 134.601 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 679 0 R /H /I >> endobj 681 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.664 124.425995 545.896 134.601 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 679 0 R /H /I >> endobj 682 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 109.02695 215.753 119.20195 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 543 0 R /H /I >> endobj 683 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.261 109.02695 546.493 119.20195 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 543 0 R /H /I >> endobj 684 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 93.62796 323.177 103.80296 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 545 0 R /H /I >> endobj 685 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.348 93.62796 545.58 103.80296 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 545 0 R /H /I >> endobj 687 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 78.22897 295.01 88.40398 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 686 0 R /H /I >> endobj 688 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.485 78.22897 546.717 88.40398 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 686 0 R /H /I >> endobj 690 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 62.829987 232.836 73.00499 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 689 0 R /H /I >> endobj 691 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.947 62.829987 546.179 73.00499 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 689 0 R /H /I >> endobj 693 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 47.431 297.59 57.606 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 692 0 R /H /I >> endobj 694 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.436 47.431 545.66797 57.606 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 692 0 R /H /I >> endobj 695 0 obj << /Length 696 0 R /Filter /FlateDecode >> stream xK$Iv_QI oe E*NNUf1+!s"))!:snyFR?t%8|Ň+aS̏߹ȱ}wݏmJzۗww|]ݿ_rw.0pG}Yw? }O^r9ݟe r|vf~Ow|!wᄈoǗy_>|7?Gb}x__^۟՛yqwǷGtg%]ՅGi?i@ygxgs7~Z^L >+~6~?k7o5]ݟ_؂Y-4~7?j7]y~5=}#S>|69?bƿdh}QӢoכ߮?p}_}oxo0{/o\#G *;R3ӟ痏ӧ_?m?rxH~|_k_>o^=OO>ixa |}2pE|BcθPxz㗗~pxٻ~~/?#tp9Å_%>w/GgXo Xoo&X~FOv<)!9,?w5_-V1Z fHO0ڧFl{D|*{C# sJ^1oGbL}8gኣg#đ-Z*9J,8KD>ii@rÓZط|9v[1Kj.4{虥j|!ȇVˣJ-eϿ. _o{j_\8cc,e6'Q<û Ͽ|a(=<3]Gl3Ocpl}ydb8y(v(/ jg+yjv(3[P&yDn3gBl|Cp.H]~,xCLTA_+lG)#Ƒu\*=qkf85[t{.s2{tgfCJ1YVٛH-*bdL`n,=LscA6nqj\ 8mvs21r|>'O}}; GY_}·k_˝kzsz/>7}~_/_-`E7pNϨq^9jגTI2="\ PgxѺ" ; gpPhq-+栨y3hXGs>8VAWѴPԞ3h\GˊH(p2e&5yF' +@h^1 G S(jnjT8fɺ6N/pC؅a/+h[A E1phhπi4+hp+h\ Gˊo(p4(y:m+֡h3dZG z(݊{8WѺo> qt~iݳ xv^8ItՀs?9ח׿Ǐp yyA/n[bWNz;x=w}'yq4{ysm󞣤hZG(j8=Ѻ99n ƞz\Yc% 8Vy!8V&vdGGpE--+Vs:ۡ[Kjn vf ~dtg;ѻO6 wGo囡ϵ>lϪK}kTN?|@|˯x#9 z =oL\zHV|79j_h˙5ܼ+jMp4a.oxJ87bD/POӛh0o"K{fzm˛yÛdZG&(j&87Ѻ V MpLoXG&87ɶ 8 Mp.oG&8Z7AQ7ɸ MP4˛hXG&8ږ7A7Qs<JXHFMǜGq9c)E GM:1bVdu(Z8rdx,Y…[jShz(¨<%6)+5*>G,O(=G TbUs,UQz,GTlK~%SZa8U* G UQxtyMj(s0G<)5-dm7 C1,5%sēdTqcnNyW9^/ 5, Tx YͷUg&bV3ߙl|?H?+H鴣M`ΰ]^_v}>|OÿWɯ_>r 2 O~vŨQړzFc ݠvFL(ƤR8̥G(8iGES"L?Cq4=$ "b>{ϔċwXuwko]^?|l͌˗|=׿*yTb/"ܼ3k8 !3ku ۔ުYi_f--7 8k ~GaK`Js|ش[W֞խƙвm lX{+w/m%) ؼfί:Sn6$l8V_` l^|m+g*_@ l]|&V:_`s6ظ2[zJX9} +/ye>g3Vb_`sظr[VryW~X ~ +/y?g_I~M+/u9 l~,+xT%I#yil[4M~lZ4[. G_425RM#ql| b7ĻyO/w!Z=ԗgŻ'zŻ]=o(:Oy0Ξ~~gO{iI_ZqqHyJs?ĥ9[>QCel@X|˻Y?rDo'[ւ0rm81l)8XE?ʇű9cVp &׾ 鰛0kN17ͣ~39v1u3)kUlL]̤luٸ-Ivb&.fr6b&g.f2WٴIYTg1q39[v1LΆQ`Lʆc39v1y39v1b&g.frb&EL]lLʢ? ټmIW1i39[w1(WסoL-q&QlLƱB:{39W1m3)wTcSQýWg1}_EL /yo?7Q( }E8YH&F,YT%܎}ELw[8|}š/(kI |}A1NӐ~NTFt=pz'~%=0,^:ᇗx_כ//U <γͯѴkgvX̋g㮝qeݱkg vټjgmvFYw팳i8v팲gӮqe3];lٵ3"2kg vټkgmvFw팳i8[w팲,Z3Q;`ٵ3c8w팳e(ێ];lص3];l۵3bl8v팳u(ܮq6gˮQٰkgͻvٶkg ~8w팳m(_;.9v팳u( llvظV;l8A` ywж;pcB=9(M]z!u/>1WtQR"Ąu닿.{p?>N$X7GELgv ˻k ÃmYbyWXbmWaxͺS,Sj3+| ÓjVNbaMbyKbmJax,*S,S3Qy]y] y5 OK OO>5 OkOO+0w)v})Vwiݮj<.h<ʮe<0h5O+OOϨv)w)v!Yx]x]xeOOK0`UXѮ%:},jlW7  #U؉^ޘ"=9S'E+J?wz?U!׺iyfW}8 qqmo?h%B$r]o{] ^qqԣK2q,Jw99IqQ֣:Jgh!g-U20|o܏gR;=5CoX{E2D{B>Hw;rݎf1_qrQoF78Q) qߴf.Qp1i&VM4 Cse 8-h&nx۽KM21Zr.ϒ(5Hw\LQ P&?|D%,ٷK7RoDxPa"LJIg98[͝d)/Dʽ!btcI21dQ<844Cܿ1_1Ai&ټy-bCJ *Z(괷,XgArSU-vP@%*bjOh}ί1>}#3SrNN@W⭽azy?|_Ż|,1PzwMG֟E0=ebG?N6nݛmn#1PYtoPhu h1:΢}j_xY30<ިYfQ,zGiA30=&Q,f`zY4oGnn_Vv }ۣ Yn'ͼ Q3oC;u*0cCWlҽFA2/V9eiF8PF.q%C:g#uŢ&id`5Ls"Hk)y9k+}c}Wlr[ֽvѴRxe>fjˤf.uʚffh2Xsff83E\[sbӮ@gf9[LyklY:3lvd6`b̬s6'% Fnf)=v K&uVlxd6Ȭs4b!gf0_>i&|8ft#gfɛ/_$ UkԙY=̬s6bQA蘙u;(ff})mMQ<Sb2i>Gz2FQ}8;0u~_~ ^w {IdeX,& b߰K˞}uHXtlyx>Y'sq-RbJdž ]N2ǎRU="XQ͟汦t 챨t lX-"yT"Ů1'vbrV:8kgepE30b+@c_阋,b px;(j>ٌْ>'㤻cm阋,8 8-8sqtUkP l[|A3p8?4c|QO84^8w\fմO8s/cIo J\g1p>6=\P̛k7sqUuyGcFdYc3y$c,sEؘ8M;ĹGd>qӽOD-0ܷ>t^f>tci&y߇&@GɁ3A!Ϝ󢘸Ϝ?}`1v(c} ,ٷϜbK3N303(.45 9pc M\7K ΠkcsoD10;} Ox# $݃iIo"-xLiBRg~%|~)zcG׼7KL]Ҁ_跐QK(~Q\09 Cwݼa-FFܝ]-{<}̮FZVFY f[#e1\091-%c5Rd4%HwhHڗ-8zNEWFվ+Hۛ2tY:e{WFLܻ2FiHѕ19k!ZUXou΢%#k-􈳭P3rGO(s=EGOF 29 C2ɐ. E2hȈ{2f[#gbxHѓ1EOF {2f`dFZ|{dd-e{KF%c$k9!Ԥ]a$k)ۻ23{teĽ+#J{A:{W?$&o)#k&]ڑݻ2RL wHh{WF\ѕ֛24G:dєQOad£'c$k9[̛µޔFhʨGSHrMQpoA0z2&)#KhޔfbteweT|]׼d$;X,s3h׊=,Cقlq6aΚ~o(e-y8 g3#n%e-Ԛ"k^t+9k^=>/.~oX[IYdQl 0JB/HF$C5NNmAC2XUr lVN%g֨},֚GMs ?Rnx趺VR֎q7JB/H7|mn%gki66 N ݌ }w!:JΚ>JY1JZU[Yڧ[YH9nӭdln<j}![IY=Vr6ad`4jVR;,ג ܵ[vhS>l0hZ)gkZ({^j|ډݕ[[ lVJts,@ʭjvbQQ1@þ隁K6wJbDpkNli4 h*>+`mI:ѥU.v8{CVKCY2qt%C-b­IoͣJH_e$sG][4{oc[ٴ8QRmƮu71PnlblM -fgnblM mpfgnblM [48wgnb`l_ PM ͻm71PNL7s6&ζ@YxE3ٴ8Zwe!f?8wgnb,mlM ͻm71P^6s6&@Qd3gnblM W48wgnbl=vgjbhM mͯ&ٺ8wgnba71p&c71p6&ٶ(nblM Q"1ٲ(ٰ8wgnblF)7h(cf)k1͜+[y}aΨSƭ.̌[q~9#~=7k}rӧ%,*3_Y[5e/$RK_Q^+h0kQbQv(VŠ (v P" Q5@hdp} ʎ ݼdUTfFѼ7J14Q4嗀mm dlM;dhCE(ZvP =fFɰ5QPHij;Nc+LhQjƊ(wFѲ#4Z4Q4mGg XcgM;6hۑE(Zv\|찌aGe;(h1C!8B2JQ퀌PyE(Zw4v0FѸc1PdFЇyd[|(Ѵp]>\Ѵ6pE>cWd\k|8ZBӱs2>kGCQlMkGZCQ9=xƹQ_!Sӧ<g'>Kp쿻 O?&ލ.3. %ԥ!. qw7lxc:g$)-KX&DWDIS>5! }&D`ش6\ ,4!fE! $%~[s'H!(2t?) 6CWab`tUKFcrʻ*UdNGcU`#Cs͉@GrC:E2D(B$jAp@:W/Pƞ9XЪfQbE>5)(/];?(Dl\(*4!fb %WBqY:4B ^1ւnk vhC'$<!la!(|:(! rTltVysp*(g9#Np1bdU!zzPlC' %'B|8tq^:!\20Z|8 VG$gB(X 6|]jЄH*3zvNQ ܎%7,a=`zNU x /s+ ]R)+FH&a-^21f{EL|1{ht;"bQFU8k&rgfZȆΪ0b`E =0 ( f|@Mr0k$5ify#Vfa췺=MW!GGN/Yk?g"uD >%\^/>^_?&|o;\X#cx}/DG gtMt+@YJc؂58-Xc"} h!u*8f1Eپk p[F؂4bRfclr&:ymkΦw^`;Oپkp4[yXE Nټ l[{9۷`Uc VL<`E޷`ͦΦw^@;پ+k&[3w؂5[ 8ykwXմ#/s6-Oٲ9} lbؿ%Y ۧؿ%/usaظ,"n:ٜK_`re v7V ES'e$#jS'jYM4?g-j:ٔ[穓Y jYZ^KOlbu=f:ٔGtj͈5#ljM[llV4GN6g-j?bɦ,v؈ESa ְTdJqYQ0v8iS'uÌE~LlF}dSv?8&5s[l(?IT\l(I{ܧe-r_Ԝ}qVjZ^gnlF/S{٢C3qj)ٴ;9k!`,B&}a,$fZo;ck*> O'яRtMǞGˇ.3V?*L,~<o̦QF*g- HYix,Bw8iwD#vg֢P?@z s,9fF IΦoZ`7־ikߴb``<)oZ`7-e,4tƾi }ߴoZ`7׾iMkߴֵo6}[־i"0M lX6}־iB@gxq6}־iB@gشM l]97-qزMs6kߴoZ`7-m,&˪vh#0M l]9.p6}Z־iBAgظM lY9 oZ`7-y6Ms :Q;}[i"0M l\e1Z6M l5(oZ`ۮAQ :}ߴ]l%(blشKPk4g%(]l%( B@g8v y8v g.Aqe)JPMٶs~Cpcꂝ^(?*Bh.C ]ʧh^N~5_z?pUJ%d-OԷ~1vs'6o3~1&}Ζ'b}7,3be L`3tXL _(W ut l"/n lb Ho;lOEz KK}g?8Fߙbt$qݎƙ2 $Hw;u&NC3pq Gv\HX7GL]lT`$i6.]Izk:fb;TK&}CE_־iʳ-!xi6%̀!H<_G󊉑r#.6*}Ydb4h Q;<[l ľ.6*X4'BlvfcPY3p[CZfe%',#/f<Cf`l=tu&`{H8F9[?ik <;Svdw.6*X"끠ᄏZ,5A21r_{}J|2P:<()Jzgs;dQLZȆޙfh衅l)Z}AɛC5 SQP;(, ŁCZIr>h^%ɯ# L] ;v|oOWFqj9+eq,0rw.+p=uy?}?˯?œS']* pyKg/ Cn>ېr >)OѼ~}3}S4u nԧhه>C۱|}S}c h=E:>)YOѺzzOz}SsXp^9sEjp󶞅9W]CA{wfn[M8~?Y2ZllE:\^{|'=J{7Wxfb~/Ol|*{nk{zO`1׻( szO`1W}={u)M({|O`ڄ"{|gPv l^P8l^Pvq mc={c~O |ϧlXP6M(&bplBش6l]P8ڄ"oB6P@&k gP6M(&ms G1ݴ4sֵ PhP6M([&B-h6i&-k gӱ6lP4M( Y-Q;dnBحY܎M( XP6M(&mk gs;6lZPM( E`ڄ"umB,j}Ƶ E`ڄY܎M(&k M(&k gr 4sB`ڄY܎M(&-k gr;6lXP6;g[߄AێM(&LTVF.,3v.?%KroIr 4k"ka g6VJ\99ךkM4VJl]k9 :z.8ךk-v63\ lxԱRB`Zs-mEG̒:\ l{6 ZZrY'B C\KzSZk5לnX{[X)Y (\_)!OR BY(^zԨ9kgX)Y(X)!y~)ɾHRB`㣌[u;mhcCn1VJlxRB`+%gD+%6^B,jnrnnY;'J Φcr6gZa&0`> 3 kŒX+6f 3mkg* 3kg[+6f[ 3Bv0ذV l^+fu~04W h]+8Za&i0غVq Ah0زVq6sL`Za&m0(f 3kg[+6f[ 3Ζc08W h;y>ݞᚩw^] Fgn0 r ~؝ɻ@co3ֽi ?Z8PplX >qqhX;V;8p pqj':mݛ欅cǍvkh 6 MelX.pP]@BuyK},qcE`!%Bw9KEm֎1" yrLzܘgX.ĨǍy", .qI21"1"Bm y΢"7Y#\l]ֿ4X{c<,ѱgG>vOGش5ܔKю((az;X8S-}?8WGPO ѐ(m5$rݴwUд%̣?EGQ`Q=ٲbujIظCIΖْQD %Q`jIضZ9 ђ(i$ l]-n$ l\-[VK"g1[4Dͫ%Q`jI,Yl^-VK"gD&L';p"PF? 'I3bɯNd|DD[`__?~[`w_r5?Z?=mY+pq}g6au.(5 FႳxpQ gႲ]`.8Q,[GႳFႲ$ ΢iU$ ΢u.8[u.(_oܡg E2%Ȓ(,\p֎|'Ҍ-}"(\P+g4㼟 vIKT]?9% dZl8T>bCZA-l#H}"A EY( OE`Ga-, ʧFx }"A;8oAzt9m[CS`VXCdh4CJI2$&AWPsv'g$ct?ʧB.sCS`OͻYąYzk%*kaPX34 fI}D%*iוֹTtIp%[\o[t{|#Bz'Qx _Z'~ZX;eYhWϟ_^?/_~xQU9'm;]l5{b6I`5{nQWq9v͞u)kês6=gˮSYl5{Q`5{Ƣ{9v͞u)s6=gSQh5{Ζ]9 fٰkͻfٶkE}9v͞u)yYl\5{]y fٰk-fOYg͞Ҩ=4(=MQs)Рd~i,\+֫InvbۡA)! JۡA)k J͏24(AY v JM&|РpCR`РCR`#dqۡA)vP JbvhP ,]4Q04(74Mav(P -}XOt;ӽc\~}pxw]N/}۾z?/~p1tYǺ3w ػ3Pr*E|v7h5,  YPad YOpmug4E.]1 \KV,\QCQ˝e+]hE+ơ;kVdEѲ+V E,XQ4zE.WQjC*]hݥ*-NTnWeשNYhU*]b(FEѰKTͻBEѶ T E֬OQ4N1Y8EѸkS-4Pjgea(w]mYhE)]b(ʴ$EѴ+R Phg=q(Yv5P֘(Udޥ(]"hBEӮCQ2C1PEѲjPX4Q4Yƿf(ʎ-s ɮ8a(4Ɔ9&sijdWirE=yŮƦa}rꨊk9Ivͯ}x-Ct-E+7wӰX,~piců]r7ԫ~v~{yet ^_>|loӗ/W -Gz"];"AWFm_CA gƤgh`< g-+hbF.قF$>.(}vҧPjW4 j׏΢.!E1P,ZfV.HYEˆG@͑ ]v vl,tכ$c2{'#h昷,-i ,Z\)jW5GiNh So?gjפ':BFiS.6.vL`H1pA] \iחl1=rEsN3pEvdcfBJSt=9YL_lGp3et4d`Da7sX$7fBI3I;-n,4a޲fBI3k&PL!g餷f6) !9YhiF RAp!(nlF!s59e67X7AˮQ%jۋ\+j.Xt~}?/w~/?߯p~_?|I^< A")n*%L!q SlYgذ)6/a mK00%LY Ƴ[`غ)8k_)L!q Slذ)6Oa mK,0%LYg%L!u Sp)L!q SlYEذ)6/a mK/a M<غ)88),a Άc SlX0g㱄)6,a KB`[Osܱ+K`ڕ%u,cWƵ+K`ڕr]Y֮,+'9fU̿᫚_vbx*M{旯j mcE+᧟?}J7n?^kZ9>T$W&Icʜٲʌ*s62g*s2e!>־ lZkoe}ظ־ lYk8Z&q}ز־qM`\&y}ض־q֎M`Z&u}1sƵM`ZY;b7 kM@ZY7kͯo7ke8־ h\kou\&a}Xb7mkg_k6o[7־ lk2|G>څ&G1"B3wv Mfd~UqJ;_IoNzɁb57$Öq@w@W@"ᩈ_@|c}aTKx  ,^T>_>әNvgo *>ekA.>c{"(kAAkAAX0Ϣ\7{a5VfÕ?n_/?Ì?n˯~E`Z"&/Cu,r`*}<6iE.k~X" GGs,r,[C Z"e-r,[" ; ټ`m; FY4g%4ed}$Vu(^[9ߙk?g_[9;[)^[9ξsşşş--}mk?g_[)^[9Oξsş--}mk?enk?g_[ۧ~g-}m{mk?gNq4e1[Xmzh3Xi0bw8vu(~tC31f/fUΪ>;`; ٶ`ŨLq64gNQjZi0ֵ27%^kBICs92; uFW &53./\ݟ//?]~Ǘ/\r`w!1VlBbC=e(fօ8`%u!1֡.$&;ԅ(ۃ 1D*v%Ɨ&R9gd/+IFRJf+/ ,E=XI]}Vܡ؂#+"D]}I`"DEf5DI30B4. h"JKUD}䮾$XF5Zfi&FZg-Vq*hZ{vb D2qUƞkώgUƞ kώgG@ڳY*Q`ܳ#u,BgG`ڳ#uᬅ*sώƵgG`ڳٴ| hX{v6=;ۖH'g\w=;[מ*=X 7]h|_O뀼7Gr#L?^w݊m~W~wϿӧ~ZiOcIwX?痘GW)s}'.0bpC/}7 gYw5.KnS ,F^~bD< ^AYhb_@`14W̼\B3; Him=zf1 PQG\01ȣ$Ĉ"]8kQkNyk"}#/ED*9t>HF k/`]h1RZ/ Х_@`ۣ_GQ__W%]=ɣ¼gĆ@L9}7!XG3#vЗ"~;?ǀz.rbg Ć ޴@H7`hWd "%nG^c }߱pPw!X6=A`_rn$2]i u|?G5܂=&D"<:W Dʹe=n$=pXBC66TX= Cny>8F!(sA~=y~BޏBra 20vYkFagf U~H!x}P%0ƹOlPf`ODb?qɇ)ZM@qҏ!W@l#+`f y}MH|D(WOo^/GOmlCLW='t vԳXMk?|~yw_? gw4yNW=t0ۿSxV,ܝB`DJ}N`a q+TAX8)gG88"4COar֜?I!N*6C'Xs8_7I9kqXe 9xC.N* qR5_o ,ܽM$e'،bRSnLԤ'l2r֜r{$ܰu,8qRFޚl[!N*q|!N* $!N*pfb qRs: gᇜY;+L+L#,SdbԤ&TL@/.Z& |t#IEćB|Z$#1KF׎ ۬q0|򚁓Y9\5[X}8DFɁCp l!*-D̩(Ge;ؽz?o+|w{մG endstream endobj 555 0 obj [ 554 0 R 556 0 R 558 0 R 559 0 R 561 0 R 562 0 R 564 0 R 565 0 R 567 0 R 568 0 R 570 0 R 571 0 R 573 0 R 574 0 R 576 0 R 577 0 R 579 0 R 580 0 R 582 0 R 583 0 R 585 0 R 586 0 R 588 0 R 589 0 R 591 0 R 592 0 R 594 0 R 595 0 R 597 0 R 598 0 R 600 0 R 601 0 R 603 0 R 604 0 R 605 0 R 606 0 R 607 0 R 608 0 R 610 0 R 611 0 R 613 0 R 614 0 R 616 0 R 617 0 R 619 0 R 620 0 R 622 0 R 623 0 R 625 0 R 626 0 R 628 0 R 629 0 R 630 0 R 631 0 R 632 0 R 633 0 R 635 0 R 636 0 R 638 0 R 639 0 R 641 0 R 642 0 R 644 0 R 645 0 R 647 0 R 648 0 R 650 0 R 651 0 R 653 0 R 654 0 R 656 0 R 657 0 R 659 0 R 660 0 R 662 0 R 663 0 R 665 0 R 666 0 R 668 0 R 669 0 R 671 0 R 672 0 R 674 0 R 675 0 R 677 0 R 678 0 R 680 0 R 681 0 R 682 0 R 683 0 R 684 0 R 685 0 R 687 0 R 688 0 R 690 0 R 691 0 R 693 0 R 694 0 R ] endobj 14 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 695 0 R /Annots 555 0 R >> endobj 696 0 obj 27542 endobj 698 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 760.35 265.277 770.52496 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 697 0 R /H /I >> endobj 701 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 707.884 300.752 718.05896 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 700 0 R /H /I >> endobj 703 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 681.651 268.335 691.826 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 702 0 R /H /I >> endobj 705 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 655.41797 259.766 665.59296 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 704 0 R /H /I >> endobj 707 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 629.185 264.661 639.36 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 706 0 R /H /I >> endobj 709 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 572.868 386.035 583.04297 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 708 0 R /H /I >> endobj 710 0 obj << /Type /Annot /Subtype /Link /Rect [ 124.092 202.522 201.73 212.697 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 357 0 R /H /I >> endobj 711 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 150.056 228.00899 160.231 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 692 0 R /H /I >> endobj 712 0 obj << /Type /Annot /Subtype /Link /Rect [ 122.871 97.59 256.147 107.765 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 307 0 R /H /I >> endobj 713 0 obj << /Type /Annot /Subtype /Link /Rect [ 151.603 45.123993 230.462 55.298992 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://trac.red5.org/wiki/MailingLists) /S /URI >> /H /I >> endobj 714 0 obj << /Type /Annot /Subtype /Link /Rect [ 236.57799 45.123993 408.354 55.298992 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://trac.red5.org/wiki/MailingLists) /S /URI >> /H /I >> endobj 715 0 obj << /Length 716 0 R /Filter /FlateDecode >> stream xX_s8`p>TνvKxi@l٦ 8~[ 鴅e+ßwAQ0ܛmF?Gx L}0DBc&צEBxk罗ۼ/m=>}s#GJ,DSM]J a[Q.!VMu @$  v1ϝLޅ/9v2/o)xQa60ڴaVuy-W\ACrOȈ:#NQ Bqxd,,00#]8q%.w˧H(?DiaQ.8.5ut+L&U2[$(rbBP㺒]$E> ʯe2.knz-ŀ^ 1X-76 >eGz> D0C׍v+AckP i)317i0YJ٫ꗧ v8wm2mtjoQ;><>έp2 FuaDra^fvlyICVji<ER@Mo5 aXfvWV _aԀ!WnL~[k2Jk*KeD> endobj 716 0 obj 1613 endobj 718 0 obj << /Length 719 0 R /Filter /FlateDecode >> stream x[[oܸ~)4I.v&AyFLخ}%Ud$?R I0&O*B9x+2$ '4! <^ <Ø%شBN9~G:YG>r\oWfx|eqU?_}S#)<ڦ!(5d-oP|G@B) 1,H旮*Myz*O-χ'ҡ~vmGr) Dii>fӊ!B(*H8F҂ @(9e*3M41c~CgHN;z4+*H.DRmhsȜijyoѣL &2-xhyȖbF0 M9bԜ%8M)k&ˊtzlAȯ"C)BLRm%޹lUb GeΙUc},Za_Xmʣvu4:K^Jx g1Y^vwsWv%(9eBMѻJ ru|hߧ·1&LZרҷ3ƺf̎n:ȞJ ٨nX]l#2-eBj,显ڃ5]~v,#,8stttQw>yfۅ6R㖾Uew@lN>}%LO]:@u ncYvM{:tgH^jǣ*}@ݠBI}OfiR?JnU}o@<P} b)oxxhb_^B܄ɳCBH\T,͡e {POrAkT*$A:B,Ѱ iϲlȨYiNIIk誹eq4E8 {Y [*I_pck.Ltn-l=zc\.|"8tem`HFǭ?8eʙEr 33%7p&ԚӸNy5_c|ܮ!!CL=. V:WۻT*I=w6Qm8`}\1¸")8$WvATw]N`RRPϙnגNcV\' :8 `"8KpmV۸Iq9'~|d1!JGOS 72ݾh i6 bcYJc6# \8`"Q=36bƘi>WRnp'g9D^ ,A~/+^Dk Ht6l/pmDð=3zfPb^ JAc @W.ǣ#`5}kpòfڈ.rnh9CkkKX1P d%#A5PõJ(:\U(^q-׻6AJB,JVB1ϵގPõJ(:\x.G&`0 r 4E,f͌!Eۻb1x]XtYaژ ``uoWȢAYDހ{y:_0!JS*4%`kr#O ]\NC]4x(գC_)dAh'm^t(x(oeN^;gEi:m3qJahwtxmКRCAo_HsG]:w% 23x;[@g"~&qBg [ќ^0sMzh]vD:w^;wǯ:w6VU/msxxm3->h2Jyv,^:|K}f1s{Yw}=݋1Cǩ ajEvUG#L~/%a : sm5W.׊VeYj\C#&c4kAY5^+\WzMbKy8n=o~rs>w4~Ә׺"W d@4S`n\63"?dBx7e1DWsRGn*YTosDOfcs+xq7@& sHa L[.'dU@c@@z'3`0E7M 1x#1M Ky \#]hMJ G_Ӧ1cVT TNݦ %7F8`C>x\f1R9}L1]|=\ s-3nA^s ykk6Zke`>~mGy ;:x;oH L&[ C[uy'z`WVr7s-PdS$adF5=lhdhP]?]~~@ endstream endobj 717 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 718 0 R >> endobj 719 0 obj 2919 endobj 721 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 289.097 209.694 299.27197 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (Documentation/Tutorials/LoggingSetup) /S /URI >> /H /I >> endobj 723 0 obj << /Type /Annot /Subtype /Link /Rect [ 215.81 289.097 405.956 299.27197 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (Documentation/Tutorials/LoggingSetup) /S /URI >> /H /I >> endobj 724 0 obj << /Length 725 0 R /Filter /FlateDecode >> stream xYmo6_!CJDۀ[l˱ $9Y0(I)WX`?9EY>,^#IA8B)294! T$ĥq!}cڼdu?N~\{06 F,y\XB|[b̧.4hBWE!!࿽[ܼ& !VDQ >w/k^&/;V<)R}TW2y<(GiqZL\X&ʻPGO')'bTe)SD 29EE&Y|1:fzqRhT&&]RJk_="0iD‹CXJeE9FPSB$eƪhfW N@SFsYfa19Ofz5vޢe(X`' . ~Ζ QIJ î D0!cޯJܮ+[#%Ő+8RE 3eӼUP^Yd;%jjw,<AV4G uC )~R?VҬ4'6*ق,hrR Kst@&R$8d<و~ T'{B`uV7K YXx%4aS~`80`.y0amO}Ѕ@Rh"85C%hc grP䴁}$4`2N1!$O@3оx2`.d1m˾=WQ@ݩ8M<-> endobj 725 0 obj 1972 endobj 727 0 obj << /Type /Annot /Subtype /Link /Rect [ 391.26 774.74097 423.05 784.91595 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.slf4j.org/) /S /URI >> /H /I >> endobj 729 0 obj << /Type /Annot /Subtype /Link /Rect [ 429.16602 774.74097 525.141 784.91595 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.slf4j.org/) /S /URI >> /H /I >> endobj 730 0 obj << /Type /Annot /Subtype /Link /Rect [ 168.719 670.505 206.625 680.68 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://logback.qos.ch/) /S /URI >> /H /I >> endobj 731 0 obj << /Type /Annot /Subtype /Link /Rect [ 212.741 670.505 316.691 680.68 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://logback.qos.ch/) /S /URI >> /H /I >> endobj 732 0 obj << /Type /Annot /Subtype /Link /Rect [ 479.92 655.10596 506.826 665.28094 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://logging.apache.org/) /S /URI >> /H /I >> endobj 733 0 obj << /Type /Annot /Subtype /Link /Rect [ 512.942 655.10596 540.464 665.28094 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://logging.apache.org/) /S /URI >> /H /I >> endobj 734 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 639.707 195.636 649.88196 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://logging.apache.org/) /S /URI >> /H /I >> endobj 735 0 obj << /Type /Annot /Subtype /Link /Rect [ 214.58899 639.707 303.227 649.88196 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://commons.apache.org/logging/) /S /URI >> /H /I >> endobj 736 0 obj << /Type /Annot /Subtype /Link /Rect [ 309.34302 639.707 484.21002 649.88196 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://commons.apache.org/logging/) /S /URI >> /H /I >> endobj 737 0 obj << /Type /Annot /Subtype /Link /Rect [ 275.122 624.308 297.133 634.483 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://gregoire.org/2009/05/05/support-for-other-slf4j-loggers/) /S /URI >> /H /I >> endobj 738 0 obj << /Type /Annot /Subtype /Link /Rect [ 303.249 624.308 536.812 634.483 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://gregoire.org/2009/05/05/support-for-other-slf4j-loggers/) /S /URI >> /H /I >> endobj 739 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 608.909 161.371 619.084 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://gregoire.org/2009/05/05/support-for-other-slf4j-loggers/) /S /URI >> /H /I >> endobj 740 0 obj << /Length 741 0 R /Filter /FlateDecode >> stream xYݏ6_!)$Ebڢ[4}H ۲l9XwJ$%=E r~=%kRFPṚiuE$aG!"b%c)N|GeYq x>F+" gˤ=@SSK;.yv2ʀF(t7 xW&Qw]k_@f_EH^)@cx̵p(Լ4m~]7FR#fGm3196s # هwG+(*Tq}{C~l5=>ܻǙBYTsOw#NOP _DwTuk^^V{hoќ;e)o(;̪l*sS>c0tG>6k reƊ.?o Ym.:eŹ4g+TtȤz?^ŴN'D8*G;VTY]+I5^)z0li*~0HcUxLųUKy^mh_\dM^%S<.1S,|Kask \/w2Nb)n"̶y6eA#8cI  )nKSl"Oo$-:).o!$`$U#-.\#ۍ; R=%4>q~?8=e endstream endobj 728 0 obj [ 727 0 R 729 0 R 730 0 R 731 0 R 732 0 R 733 0 R 734 0 R 735 0 R 736 0 R 737 0 R 738 0 R 739 0 R ] endobj 726 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 740 0 R /Annots 728 0 R >> endobj 741 0 obj 2080 endobj 743 0 obj << /Type /Annot /Subtype /Link /Rect [ 508.674 734.771 540.464 744.946 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.slf4j.org/faq.html) /S /URI >> /H /I >> endobj 745 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 719.372 121.639 729.547 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.slf4j.org/faq.html) /S /URI >> /H /I >> endobj 746 0 obj << /Type /Annot /Subtype /Link /Rect [ 127.755005 719.372 262.857 729.547 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.slf4j.org/faq.html) /S /URI >> /H /I >> endobj 747 0 obj << /Type /Annot /Subtype /Link /Rect [ 415.724 678.06696 527.605 688.242 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://logback.qos.ch/translator/Welcome.do) /S /URI >> /H /I >> endobj 748 0 obj << /Type /Annot /Subtype /Link /Rect [ 102.081 662.66797 316.064 672.84296 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://logback.qos.ch/translator/Welcome.do) /S /URI >> /H /I >> endobj 749 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 647.269 206.625 657.444 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://logback.qos.ch/consolePlugin.html) /S /URI >> /H /I >> endobj 750 0 obj << /Type /Annot /Subtype /Link /Rect [ 212.741 647.269 409.003 657.444 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://logback.qos.ch/consolePlugin.html) /S /URI >> /H /I >> endobj 751 0 obj << /Length 752 0 R /Filter /FlateDecode >> stream xY_s6קɾ HLo.o28D[QBRo AܦZ,I9e,Db-o3^cHJ+ &p0m# ќs\mPn;|#g&cOc]Zu\C]~'QCr;[\A!iD'F_.n2梨=/o`2^Kh.V9ŇY3@QFꑱT)aLY)L[4q@fiy3T:E븺4P$6ޛ(äC O"a Na$G1Ea|%8I%&Xzܬίu`iyXt8!rڃD)Б@sWXq]/vVzYhCXr qm\yų^F0J:Y:I;Tk@8Q_Y }E:Os|li.+=+)ؓ\{#_}]=,s b$9)wP*()C)QW$11R1ߵá)Sڵv_b2 +S  ]{?b?\赑F%8P=MQ>e}/J1J>Z+q|V'(xm?-)ϡ~\hnK/8Q65%2=3v3]sX.*a滕a- W9"5J3ܫZӇT[U# `ATM}Q°zؔICȇ~+KPiߋ'Yx*;^U ZmRa(ն@ #@qB,NdBr2Meeۊ6iڗ(V!0ަ$ t1`d2 BQ͘gm 13oɕ5h}.: ЩҦ\wfB0(Es`Hu,cߙMԦ<6(=[a4g@J7&8b4q$RĻu=+c +' 8AysKE'!؂ oh%' A$wtsrv8*C+ гgV[!At|.±7^~Ֆ$l*M78]< = O>Pe*kdϘ1DM 7ĂKy Tiz->6E%!#bhgi_4F򬡮>+%r˷Ŵ\WU*=FWZ:#&p!,0]>ڨug&\ ?2녲E&M&;8xS8;\-&'!(͔2۝VW;K+@ ;ɔ\|T4ѭ0=S'3 d2Y |=T CH9XBtԆ$m5p*~A=tLEEA)#=7|=ͳ9aX*`ibW0F(&TתXMvv[e7͉* r}Ŋz=Ŀ직Q ^jZ5&4&Mů=p:.1в_Pu'3.jmkD c~z@g!"'^ D9swz1&sPm:x!@!dx~n(p9o+(p9$ 17_ B[_ Bgա.ԂyF^cZ aiX" 2$MQLSbK?팷YWҜШ@V1;sAv08]Lv0gAx44ad8+Qq䷍8>j]TL9xo_Nz<:5v?ݗ0fmRp' oUI!穻 sRo|o|6ͽxI@O8&F>ji\/-''m.V}E=:Z)Mp{{@`$MEo\~1^y(BWxجt?%?U~7aPr6=}>yR<0\Vu],)[hwx/2ZMsNU"H* endstream endobj 744 0 obj [ 743 0 R 745 0 R 746 0 R 747 0 R 748 0 R 749 0 R 750 0 R ] endobj 742 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 751 0 R /Annots 744 0 R >> endobj 752 0 obj 2313 endobj 754 0 obj << /Length 755 0 R /Filter /FlateDecode >> stream xZQ6~]Hl]!^}Hx[Jr %J")Rn`kęf8M" . '(AB9f{A$b8E'M)4" TFȖ )>>Fx@q,pLx"Zxm{Ye ›$AC|2Q,,eJŕf>}Fۙ7na%@p)jˤ'I>8>7zٌ[T&P6-D8܇$dHJ*%Q1ˆ*xJhnWX6WVbY7[We8MNcX{X.$R"$vD"7-f~͎rԉaXYa1yp]Oc$><1gSa}s.t~~1+Rkh=[6tdַ"/n>7MqjU>t.w?ޢÓcQou| *\뮄S6Þ?fHb=yY׽}7ɖj03c(!,ڪ9V#9(@RI"hYȈR6-– уh)YG/c$h*! N] cÈ 0DFKLRy'37FB8M eؓVޡ"<Su1$9kVİ˛aɰ3+$Eڮ*w2OzʅeMq }곋]]##zIPNQ"b ]r]Lu\77Vξ^ @BG {&) i|Cʸ2c`?re8~] t2eDtc٧QvÃ1)\4e"TLxJ7 [A]~QYR\se!Av7MDZ12Kr&R !C$H:e]Є!NpϒS5De)Uo?cwQw*Pj_u9*]uۧc[RTyR (u^VX5Mp?WR"9s&u endstream endobj 753 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 754 0 R >> endobj 755 0 obj 2498 endobj 757 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 126.395966 283.053 136.57097 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://jazoon.com/en/conference/presentationdetails.html?type=sid&detail=6080) /S /URI >> /H /I >> endobj 759 0 obj << /Type /Annot /Subtype /Link /Rect [ 289.169 126.395966 448.757 136.57097 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://jazoon.com/en/conference/presentationdetails.html?type=sid&detail=6080) /S /URI >> /H /I >> endobj 760 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 110.99698 327.086 121.17198 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://jazoon.com/en/conference/presentationdetails.html?type=sid&detail=6080) /S /URI >> /H /I >> endobj 761 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 84.59799 232.299 94.772995 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://beta.parleys.com/share/parleysshare2.swf?pageId=357) /S /URI >> /H /I >> endobj 762 0 obj << /Type /Annot /Subtype /Link /Rect [ 238.415 84.59799 536.482 94.772995 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://beta.parleys.com/share/parleysshare2.swf?pageId=357) /S /URI >> /H /I >> endobj 763 0 obj << /Length 764 0 R /Filter /FlateDecode >> stream xZ]o}_!L$&06,I7k(~g$T#3 R"%~(ڣ+^{sH8A o%iY(KٿgSDy!`'Ķ'u1AHvl?gJ}|,y!?@B rjm@m5 P|?ͮoqqrj0N1 EOxN>^kfy\&^WCrv;ee%ʊ)m+# xB(>! Xb2f س4l#,SNS>KatqmoFP߸X$+mնb Q{RNj9;lL<0ƒCXAK(rΒeC s"r6Yf[#):LX6Hx1)#"b8TObMK;u"+(02yp[WK 2a%dEc%k/dMp@* NOQ  u=/?mnɕ >]cb Qsy>[\߀i_,CV|y7kX'aTs<_ĺѽ<5V:֫y1! ~u!5U3J+Ӷmz[ZxVuG+Ф&~vM.-"3'tԏ!%K!FG`qyq!(nj=%2ײ>@b.>kD }dyBR^x2d-sӲ@cZ6o, \#1g Ib}1&tD yF$Z-_Zs{ r VSeD v#٠F#O# e붱+sde'v^P> c71}Vuu2J8/v]GJtfۭ&fپpF)(b'0yOHaҤ8|.@m0EP^)xi\ڳ8O<nAo{ ZO%@{9 sY叔9,r9TI)VN/#h\ [kUʝRY59~xqh"Yގ)#9I94NLI@7B,FV]lbFYD*G\rX7DS6# [ OUm; P+9ƍ9[ŸQ6a%T2Vi>: t )"<`(c6RiNNJe x=XZRG %"E UEUH#E+K #،x}./_ċn:o^J%N(ۅ#*4}]l ,.=αyx"}2tA/-P'kyܼ@?P`+~YÑWF`Kj2*4Ľ? 0aB;G}b&muۯ#f}-6rs ס7o!,]ܭoVV? ֛ȃV@gy߇@좿Ҧiû[Ve~*/?TbZ%Naj]3aBrv۫ >mb{Zq,C^¢~qCXᏏP%iq> endobj 764 0 obj 2362 endobj 766 0 obj << /Type /Annot /Subtype /Link /Rect [ 380.88702 500.55096 503.75702 510.72595 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.example.com/myapp) /S /URI >> /H /I >> endobj 768 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 485.15198 132.034 495.32697 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.example.com/myapp) /S /URI >> /H /I >> endobj 769 0 obj << /Type /Annot /Subtype /Link /Rect [ 390.017 485.15198 512.88696 495.32697 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.example.com/) /S /URI >> /H /I >> endobj 770 0 obj << /Length 771 0 R /Filter /FlateDecode >> stream xY[۶~yHK](6'9M$Mb ⠠ez]\I^_F)E sKI1eX5/Ɵˆ84}.%/=&_quU?o·v~H/(1Oi{Kl~cŷ}"fYKG,,L'ԏqtuO,+Ӡ'@uD< cƝ4᰾}2_>7t |l2= I`im:]RüfAѐAd;,K!mV7o75@-aB !l$d1X{&כwכJpRFm2Sm\ X[u5'LlYPpz CG,x:שcR| X~'Q8x樾Ǘ3Js%N6w5PW*s)/h>p_C0wG.fq4?dZJ$e-<BŀFۉ*EaAnrg^Phu& Ϝ1\'eWrɶg$qersv̒vpK,Pu_`0wcxI?B3M^ t9CѓL3À'#A™!jTLhnT-]82 ι:9*l@?͞2]f璐a\Z60R]R1Kb*2C w^Ȁ*@-(sV8*_̚~EFJ<1;U-9I€>Wض_nn. 8 7(~)}JͷA un+>JW 1``u*g}rY#Om&A$`b&c CvwMK 5 f%˷(QWj`@ī?􈎡n[t?^#7bEFLOe#Ps% Fh 7Z%P#E֙ jmO$sY"RyRA2XH\@oD3RH 0(oZzsI6oz%w,޵35l Eub^~Eh@qmC guxnLP\L S \gm`!4$,"sr#)4p 3bY߿|کzwkP:| ]{[lP2_̡ MŽ=4PჄb754 nc6u0HuUX2BMzfJg;N|Ջ9JaGB;Y8:AIX~DqzyWg= 'ξ֕~'Qjnͭ /\3x>c(~S]1^ Q, o^.nd(&7ݐtȮ5AӘMY6x$ҜEДUHTez$yrױ+" Պed&ر⋙v;iеsQ}T]'DhGDݾRzn<#>*Ϲ}LN݊sqF) "}oE.n[5lfW*Vq"(#1բPƶG puq/\3we[4٦d|ci`T72YnbxYyt2G[kY(^GR?\A B[_%1g9BlKTK+!1'c[> endobj 771 0 obj 2487 endobj 772 0 obj << /Type /Annot /Subtype /Link /Rect [ 122.871 592.466 525.108 602.641 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://livedocs.adobe.com/fms/2/docs/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00000607.html) /S /URI >> /H /I >> endobj 774 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 577.06696 318.517 587.24194 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://livedocs.adobe.com/fms/2/docs/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00000607.html) /S /URI >> /H /I >> endobj 775 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 493.48196 352.122 503.65695 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.opensource.org/licenses/lgpl-license.php) /S /URI >> /H /I >> endobj 776 0 obj << /Type /Annot /Subtype /Link /Rect [ 231.08899 413.748 355.82898 423.92297 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://osflash.org/red5/fud) /S /URI >> /H /I >> endobj 778 0 obj << /Type /Annot /Subtype /Link /Rect [ 127.15 330.16296 231.683 340.33795 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 777 0 R /H /I >> endobj 779 0 obj << /Type /Annot /Subtype /Link /Rect [ 232.915 219.99997 456.66602 230.17497 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://red5.newviewnetworks.com/iChatBar2/#) /S /URI >> /H /I >> endobj 780 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 140.26596 235.951 150.44096 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.snappmx.com/) /S /URI >> /H /I >> endobj 781 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 98.28897 302.633 108.463974 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://code.google.com/p/openmeetings) /S /URI >> /H /I >> endobj 782 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 71.71097 223.73 81.88597 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.dokeos.com) /S /URI >> /H /I >> endobj 783 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 45.132965 195.009 55.307964 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://spreed.com) /S /URI >> /H /I >> endobj 784 0 obj << /Length 785 0 R /Filter /FlateDecode >> stream xXn6P`H&)Q Eڬ[nmŰlӱWIT%9N~I냒Z.s?a{I8 (cEyl}AI10= z*B0˼,KKFjV>/~^`l9{L֢E1omm%ċVI建.^,AlBFZlͪ%]*x܉P?Y.a6rWgB0~2Uh 7c=w uvX qtg IՆ>I,GS>5*׻|+,Q18¶uz<zW5}^/T PJ'[i ^bQ$ޖAXIޠ5^BXS1͌BM-5hsd3U!.$H!&#+ HznO&1VI`Y.j!r{؜Spϣz\qn30FR2ⳛ$AZNiXn0A"qMHO{}l<ǝJ,=  ܏05ޘK\qbp&AYyϾ\m -Y<}Lqwp9'R<'*xu\(j.@:[P:)Jrʲvh@=×b5oW%ShO}+ӾN$) ȹ͋>uUaRdL#j-/:G:C?a6bot!-5oOU-uuىU"$hא&iaAD`r2MZԽi۩KUb3!jCPTfU#z-筀(6?|NsQG!?YeoB67r ;/>ny#Cc̿ pdLߤgtn?kU(W endstream endobj 773 0 obj [ 772 0 R 774 0 R 775 0 R 776 0 R 778 0 R 779 0 R 780 0 R 781 0 R 782 0 R 783 0 R ] endobj 86 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 784 0 R /Annots 773 0 R >> endobj 785 0 obj 1665 endobj 787 0 obj << /Length 788 0 R /Filter /FlateDecode >> stream xZmoBOw@L)QE۴;|ws}_Er9|}6b ?( 16+<}(NT|",I)M+R煯V/:ӞvG]+F1ie0Y93[})IzM+<'h3WBY>}g?ܯoqqt6ᜡ,O'>_Xn?D#KSM9~~CI\iG@mFSr|r!eSDpL'(c9 ɹ2H !߲i]3}Lgt,WϰҤ@!զ1Hg1|Y204H#Y>,C‘D1FQ"B8D%q'$㟹7[̦7Kaػ$S:ނeXxj1LV'd5YGɅ!B.Q)O4ߧCՊǻo*a[%Wsј*?mI/1*L/_ʤ5HU[Tkȯ$rxz œYFYvƧJw;) հMibZKM6DʠM0γqE")x',㩅9-d$*27D}x/])M&7s&[hi=(iHT_FGwI x*[{mW2^k&Q&N8s]:Dz1%6GڹKNO<  gtӽ21vj[I=~~/0"Lkpa ?pW`r^~'xz-]pׄ1 ĝ"57K^Np T4Bɿv}N]< áGKr|Ͼ7ih)JOޙ#/D( ^%[z:WWFWN~ܸғ:!+B6 Pyk Pg]Qn>8+LO<8|j}/Ul[&rjÓ^´5PMdT>0t;Б!+l%|N#%pL6/B|leGɠF@y%+2#ؙ 5"_6N'$ƹCxiۼ˼Az tr0!7"<=עsi (2Y^iqg9@o]i\:,yM`؅&^F8g֤^· 4-P K2,7Lx=1E)ǘ:lvS.A\_"=Gw\G>9Ցiu.E,6߷,RNyѳABC:p/]TYV9Tu)^;P*gdц::1UKWWMӝך~ªk1 oarJ9m>}1l(*X,aG`уjszreU0xQp.R͸&+ܔtWREcЭop6+E!dA4.!9$]Bˁ Q1S'c)6@MxPjN&O?̒ř" UwPWƷv2VS2.ϿꇦY/ |p 7s, z endstream endobj 786 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 787 0 R >> endobj 788 0 obj 2557 endobj 790 0 obj << /Length 791 0 R /Filter /FlateDecode >> stream x[[oܸ~klݬSdQHb (6 p<ڝf_}%UY $ʏ<:qm iʲEh*>Q#L(NQ\$S#\Q<>2JJ]te ^I:moWu˯:(^4&ȑ׫Ϡ`(4+=}c#W&Y}rUcqk E2pq'vصoutCx=|uRbRLژc@ب&YUqtge,qrZ1M zyR 1Nbak2}LG@_٣Z )Q Mfu#vŞ=*V-~+iY:F%^mw'Gh_sh8_SME=]eԇfIaYIDrF6&-)ґô8MuH͇#:AEf^(* (E {OBsGE$UC<٦nc6:&[՛{C7eUoS?3cz$ԯK} {D} fhVRaWtT{%쪟^&|ǭ:cs{IvlFƭǀpEh[K` n5hkȭ:>LX2'l$?k֯pl;}s6;9iuS,rLU$B< 84Mģ;fgX:@ Ѷj "^>ng)RsY?8&@A:aoS?R5x+s|S269VmIIZ{/r#۵/h ހp.%)lp9ι6q#iPa /Rr^0J=3/y], g},;*h꫈l=5Ɨ9x GNFƍ@`j_03˙K bipAǁ&6SBM2"3(PrXnyS0Al ? gۿ[C*SmMBJyz*ISK=e O=WӬ|>ޭY[uݕIw'3D#ܗfPXaOd6h6%e Q~0,toN\=ԿS2SI(Hȷ| ڰYP'2P=')qdêg-լG}]l3'JP^ D"C_؄֤_YWu5e0WƭK4ܢTMgֽM ɕʌhFJI]dZ8u3=8~h)6˴[xܱ-(A8ChN*!^~mU1%n YJqQEf׸JW*WUn]Xl!^4H0}'$yʨ=ùRH -J:ZrIrj?Nz*}ԨN_Awo*kէ{x@gԿ.o^d! E8DU[;R)s|09]+u:SVp VdjP g{ U1aQE9Ee>emsY)4-!2 O+@cғ)`D7J ^z*+Y{*9&r S_>KɌ bPQ\:vɑ!}ڮ$ q8~ P48sI陑udULKeA~MTh =a!Ei]kGucY]`ojfXŗ,h[=!,Ep׆>v :LHnć(~76{[;]K-WjПq9M7zFҮt Ԙ;X06 !3fxBA6a9bItM(*=w 3U][|0J`j\^ O2xRӢZ On!<-ž Of9"m$NkjI3,=]uۨa 9:D a(ɥ4.æ#s 4M4$汮^Os9ry:,M\le>/&],)>DlB/K!i^IWPZTQi-EunȞf h nAly|P[n"IvK'e>Yd+R,ex-WNYE\5$`/l_v]]`m>S1cjwϫN&OI95[~CT1NoqjN-!+IZdG8_L'w9)*a-ikҴejBׯhf:aQ~g:ϾZe|d2V7kOdv[yvFf5\ń۴Oe`5j,Iia!C)K-Z]'Ԧjo63HZEMRL6YɖGf YSƼj/g þO@[cؗ <ѼT74fIN(2ğ;r endstream endobj 789 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 790 0 R >> endobj 791 0 obj 2923 endobj 793 0 obj << /Length 794 0 R /Filter /FlateDecode >> stream xZm6_!SrH$Jd; &(.im?hmyV\ٻ{o(M|ʗ 5p>H[a9A1^&^,!9"e&_eq'd*c'mRAf:ɷq~`lh:qM]}Y^"BSi=l5p,P|#oW7IBHrcDJ2z>!힛U~TæN~OnZ}М4e8-  Fԡ@L Nh|cpd$C4y ^Byto0bYkj'R"A6ɯy 5<+An 4;a}V}s?zWqS+e__).(¹F:nwCO^^ϛZkU>Z$z)1lt/]Hȇs S}6~Su 64ʲ][P:ϴyuG0CEQ,p5?M/GilT 1-CVZU9S截F$\H>_4%*lArd>W+{[íٱ\FV7wt(ezTw>6j?uw81:אKmsVvǾӲcuLsj۾>&D0ꣶtDQw 9tœjU?I-ƺZ/7#G82q,QW1K2hrESOF-q{7'L<~ icF W8F lN9cDqED1>v=[}uLl6#bYfx VH}}/V~%i4SJG|&VEO z3KN̝Bݩ/qVΣ(i`+}ZQT,ak둙3s,AL%W qc02_\bpr&Nȴ,b k (^GHB:Z -$o ,B:ZK ={DJ!ђ'cQ 2H嵴tou -ŴtZ /-] t6Ö<qm2%D\$V~--h[]BKGk1-t:m-pEci'ӥf_11s̤݃.dx3}Kh-fں&r'm8ZU2LhL7>%s6,%h$!6yqcou ltZstcvgcv_c ,޴ݦjŝ}*fcjV:y4Ԍ닙+ḑqLM˜!Bkp/TF2n},_)ajG>V15ҥ,؄өm6E]-U)۾Sp`E硢t7PZN]Zl<ߊcJDY_m)CWۭ5&*UmM]F]>⮹ҊN!5Rk*3%M_Cz]'ó06vhZމ#02J1!R݃bzltI4buWFQoLďا=_9H}.\d-D{1 |=*Zs,qp㙉 h|HLf;3;fxk:w Z irEۛ,C9)Kˈ:թA?r =Sm>:ylY FU&c GHsff}׶&R8^X'rC1ft~TVTKIePJQ﫬˾R2Sƭ_)&ޙb(:øNlޤRB GIY~nkcgɍTb:d4豭/UӚ1J0Y2U%OK^Pol~|^N:'U/*:hrZ,zճ]력,R-@991T<'^ /=JnCCy d -_`*)>>%v^jtT]dIUz_TwWJe?] endstream endobj 792 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 793 0 R >> endobj 794 0 obj 2885 endobj 796 0 obj << /Length 797 0 R /Filter /FlateDecode >> stream x[[s6~e@$:Τft{whT%*Nՙ$!߹ ?w))N˲EXuǛ8a8E$K0Mq[4OQ#DҜdشM[|lcN]ᦻAɿo~&(eˍ+r/`F3P9iG6oUk*Nps''O pӼ`OO~UEL^>bW7>s-SBJDYVz &}[uﬖ*Neg)@'i bӔ"0K:4_7d6㮞Hp< Ѧ]mOM;IQ38OHc>]!>~<&K^jd} " `0c%d7-"Wr!) $)Fɏ'h俟u'/㦖gw!؅є!qN;[?G/PZDWy&Aߢ2\x@;@~ b\ #>f,c% J!cۈ q9=BVLOc"K?ԏa3P&&ft.,$M3ɔC,1}= 0rX4[" ]0 F% n9 xHY9&sX;T`] ЭvվʈörJ _ +q^Wί~I)Y5͈I."σ0 o sJ~%@B)[Cu! W6aai]ӞjAa/N֠XbU@i.2'UP\ʌ E-gX]a\ XF 7wҾE7$b 3Gpad 4ygrnۮV|^E.s=pҦKs6O-?yV^Vgyu:ԛjէlkfzRCI-vj[?UVɭTC+Y@CDĈ^:#(~Tj<;a%<.bΙs=_R `Vg=YTM犽 tߴ9)a8ۚ :zɯ%ݒڸ;ճ CZ8,Eq~tcZg:_5A\9CGo3u/n0];9V p{\c3͜#j[/NEaȧFnʠH f1\fe8G&o?."F?/WSNUn()Qfl|SpꏪC*9W-tT]=PFS$;Wh{@.17Pa9 MEgPt_K{ EAt_<S\Ç [j|q #lD@@8AK=̻N}:ug?&~ٳ,tՠڏ,mˮm$6'Okre>T7ުf{}6f/TZh-/tߡiO,-.=9/2@z2"oumQ=YO~;K ƌ Ҍ~eiGlogoexFޏ\ȶlSo:.̸P.Ƿ'ܺ4 _hq>-bjŒXeo ōuٙ!-zG&^tIjiA!pczo[2Smzu&/j|o\E .Q<noN"(A-L6n.K12;4S??C61Ef':э"]UMW/(6V`g<s$ߢڬB>|yw9NR*7C]o|jgUJ/$"c)gc/i$ibi%Dĉn96VG\ȖtO^ j mIbN T%ą n2AIro$cij]E?  endstream endobj 795 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 796 0 R >> endobj 797 0 obj 3013 endobj 799 0 obj << /Type /Annot /Subtype /Link /Rect [ 357.996 390.25797 516.968 400.43295 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://red5.googlecode.com/files/red5.jar) /S /URI >> /H /I >> endobj 801 0 obj << /Type /Annot /Subtype /Link /Rect [ 112.223 374.85898 149.513 385.03397 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://red5.googlecode.com/files/red5.jar) /S /URI >> /H /I >> endobj 802 0 obj << /Type /Annot /Subtype /Link /Rect [ 451.375 318.24298 478.897 328.41797 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://red5.googlecode.com/files/red5-remoting.jar) /S /URI >> /H /I >> endobj 803 0 obj << /Type /Annot /Subtype /Link /Rect [ 112.223 302.84396 327.416 313.01895 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://red5.googlecode.com/files/red5-remoting.jar) /S /URI >> /H /I >> endobj 804 0 obj << /Length 805 0 R /Filter /FlateDecode >> stream xY[s۶~ׯ)a/H\$Ӟ4fP JdIʲYLIo \'eYwE$ aHW4A8M0QBYp {cA\űShx3=: `2"G0)"qq{GooC8巈g/8 %i4pW^kqz7r]qw aTe}{#j! q4W7.3%,ÒҴ^BŠ@:@r!t HM=Š el\{̣"fMzJY^Kdy4\D2I4È1XqȦ82 )I&xlxXz~[cI'Oeհ0ݎ  1GP bKObP-U\B ÞKLQceYQo뤬uvW?ٍy3g+ ݰBPB$xZPs,JQ `ӡM4<#( Y߳p/U?} 2'l'La IM% 4N D1Q@Nj[@W*XA0m)G,llMULr3ۏ8e\l.1v9_>~)G>PLm&X A1wӓN~ډΚ^!%Q]*Ai_d\UYV-۞OR"[u)R,%mUrk-hn`.Y%M ӓ>Ey Sk{F%}.Л?Ū&O%\r,:.'+y#m=oҔG !DUh7~:~S\[*0&춅rw <BkDs9ćAӻ+x69է_꘿\#>[[@B7 n+T /纮g'eQH٬=?=I/JܕI\1(R%R.ɏfvL=6BN)ZV7s/Qs,N|$\u틧scF^_]ZuhLCgSUv K>L0.iM3sx'Gw°@ʢ$,ĐCOBem2⢎Ks EdV6ChwikA0u3Sɉ0Cv1O@0QkC6„5C{k7Q^v0(}Lq\.Zb٦J -8F/_Vf젡UnqSB0p/\l?^_ꩄzP¯T CFЌ, #z͆>1cE9oq|*1 o7Қj{R Y:;k"6L H h7:ovyݩev[oo%2ah),Iiyoơ1&y0߂@Š~*\lDœ#~G1'qTP 7-`"3ȩ%Ea9s\|BICsFW_2yM PB3y)hy\q#$j jY[*QS{tW4R:*+ e WQyw 4 6K,i}6bU' aVi&)IbbsD>A L.ɢWGa:ޡmS6i,W`":[RƢGI֧~^'c~@9Cݦǿ0[R΢zjF!a,zd/l4i{ب } !A$%H5_*2[<޽ci %(Na0wx>vjNWTT;nŀ )\cR"+F_s|]_ endstream endobj 800 0 obj [ 799 0 R 801 0 R 802 0 R 803 0 R ] endobj 798 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 804 0 R /Annots 800 0 R >> endobj 805 0 obj 2161 endobj 807 0 obj << /Type /Annot /Subtype /Link /Rect [ 260.8 760.185 505.363 770.36 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://localhost:8080/RemoteApp/RemoteApp.html) /S /URI >> /H /I >> endobj 809 0 obj << /Type /Annot /Subtype /Link /Rect [ 357.996 567.148 516.968 577.323 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://red5.googlecode.com/files/red5.jar) /S /URI >> /H /I >> endobj 810 0 obj << /Type /Annot /Subtype /Link /Rect [ 112.223 551.74896 149.513 561.92395 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://red5.googlecode.com/files/red5.jar) /S /URI >> /H /I >> endobj 811 0 obj << /Type /Annot /Subtype /Link /Rect [ 260.8 331.76498 432.004 341.93997 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://localhost:8080/LocalApp.html) /S /URI >> /H /I >> endobj 812 0 obj << /Type /Annot /Subtype /Link /Rect [ 396.76 233.32095 538.616 243.49596 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (https://red5.googlecode.com/svn/java/example/trunk/) /S /URI >> /H /I >> endobj 813 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 217.92197 214.567 228.09697 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (https://red5.googlecode.com/svn/java/example/trunk/) /S /URI >> /H /I >> endobj 814 0 obj << /Length 815 0 R /Filter /FlateDecode >> stream xY[6~ءIQ$ŠX`:l[t7M@>6gTODR7J])Jy\xM 'X Y?"G0pH!"q8 C<)RYpEv/2\ڎO X8 o ~X}4㸛==;Z>Cy}|M!ج$ $< HGUd&xߏ&w}R 6m( cp,(kQ[$g)ĖS E,2 !R1PA17d3w3{{92¢ab0scǷɗh$)XCh܇ų|$E1FRFR (bcM,G `'qY{aټ 6kƃY꣘`bkn0+.3g\ȅR"F!JD0`ƂPg_ʽ2uRB C-Ea>K]/4/7}/uv?e~ :35 ḑ:SD"z޼63/r$q,=/}4_̯3hr>Ay>E"!frϱuW>?S^ۢб>e9Es ]P?.Kȹճ>*[ljic|V{RBޭH~ٍzv1dJNȜB"FB]TcTUtC EsX\<,x]Z{7#䤬oAԓ~J3R}\ш>'5!wJzTy,/1BFBRR&36;?SA}~Z? *E` Q+ʢ1d .iVOy]$sWsWoY+ҲJuL69(&昁 SHCR.=gyaWP:_C Ki^:sGisKcو(sw8 W MܽUS&=I}q@u[I;棥c4.?i6eK2~?z@+$?f4./Nd&ZgM'e76{|Kj0hոm!Wmɔ@ alGs]3;d_p)7=;KPR+G/IvYdHT/mr:u5hV<0˄͉VzR endstream endobj 808 0 obj [ 807 0 R 809 0 R 810 0 R 811 0 R 812 0 R 813 0 R ] endobj 806 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 814 0 R /Annots 808 0 R >> endobj 815 0 obj 2199 endobj 817 0 obj << /Length 818 0 R /Filter /FlateDecode >> stream xZݏ_ǻID`Q iiC߮v׭,;Ir6Aqf~3/b 9#y,"z6iCKu!4-vˆ؃agcó IfI'dcˇz^>F"_œЗxq|ܷߢo{8iMhLZ0EQa[tkls>q1Ie"K3{)'X0Mvt?a%qNrlhT&&-bvqd={\&k)l4Ha"r&)"EF&!YB#ДT=VwTvwd͋bXM;opQxX!'Lp|@ʅZ(% B%0*$|SQy,ގRb Bc%Ep"ܟ_ޢy+}J_?Σ 4zw T/uߠ \[ڍT3FrXɓ ¶QJA%_QqMZvdXsj*͍cR$eG &6NaH2&m&Cy(vB;>XcvtX}b-nOfNݽ%Lj^2;gJ:tWmQ͂&]IA,՜;.[B衘2iD}Bq^R`r>50=y/K{( d lPp\=o 4R9[ڢH16ݟ؝:^ԉ{o~ץedI@8(NЅ(0 ,Z}wjS1<|KuAPmоx.?Jr`l SqT(94L$Яk, XYg&Q&2U7%>U紴dG a@ U9Й𛰮=`lPϞvX=Ї֠8x嶣4};0ƻwzUSrZ .,Q!UE(%BgBy9U\ ?fm+A K*VҔ[.Ls N\2ph/s)"T3j *ZE(<hoO #x@|fv&^t-+h҇t6&4Qjm|5'u,4Q?z[5o߁G: hjuunZ:*3PVӌ k;f{/l}z ˲xTI8 [ \SI5D?LWfW۱rxzR0 b(#>aT[}viv?o_l۩ |ʨFe3 >p ez XxBcTp(O+YB [Ww,)L=gfZm+v 1j@196 endstream endobj 816 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 817 0 R >> endobj 818 0 obj 2492 endobj 820 0 obj << /Length 821 0 R /Filter /FlateDecode >> stream xYmo8_!pUHnq@M6ٖO7CDEJ ggg~aGRK)eܽ9*Hi1(ϑ S3JecуHcOٯe;xPβ獣$4+|!i}LNXzS }}S~sgg_ar.HtcۛP۟dzd}=~8m{v{p2/ aֳro9SkS)KIΨ L+* zD CBLur~LwlN)2~JH!s H ,):SfL6EoB(UVbOCNR3e>eH:DRT)$L dq7KP&xB{<f4HB,=f1 |MO$&LBrF#`tsu2kڎZ  ќ!6CyyVUcoP.o($i $:CiJ n.7cV} IAXIإ𬩲/J޷l,…,X됮GvyG a>4>eSv)v!ꐊcϧ4P]nu>q (ra;=b|SGe>/ycwtFCw4Xy>R0zqi˦y!T?D4XUe$Iýֹ4?\|o py,Hz3L0X?z,y nȰX03hT0t!> "!w ]p${gwZc I}֩*` R<0n'IrgV:pҴZ (Y8A􍓃:){ZѶJ =n)f(h$Jns3Y о( K!&nc_d=HQ%C'[|NK7K _7]yՁCzY~0SOn_h2v=UۭxQv+0PnKufu x1A s~dYZ6vO%G15eqZ0Ag2C (Dĝ&_X zg8GA8VRv3?`pBDykr͓L1N1ȍ"vB! *U GN]T+NvHDm`6Py.Oc\6A=# ҾP幒mM [8~hXpP6^Qʭ_;<=u%!"`p@Dyk͓Lu,pU{!jO3_Uu74@s-t67y8P9OoZhȮ> endobj 821 0 obj 2322 endobj 823 0 obj << /Length 824 0 R /Filter /FlateDecode >> stream xXɎ6Wh6M-Ԓ'602 AL3DY˴ST 0lKU|UU]Ÿ..8"ʜعCa.q#|F!2S88IyF7~dvrڕ;78:0缛Y9}~yf|-l[]Em{q]g8F #6a|{W_{/,m_:;=1zA3_-Զ@] -WkCpy>aHLXHD` He/ H@hkM\K}\ni3:rd{{1!ى6X%b3Vr4H|Zɶ/ 6gKëmX,lWRS$A0I"JjbѴJ'A+6MYw w&(6XQlue}|/7IBZ?!.e dD>U/eWg|̭Q Fײm}LIZ/1 Р@cWբHk?SZ>!cbx{ܨ =*b41\dvJ'' qW^PPt5޿Mcqj!|ހ: ,T hcN|?"Qh]9YhD/ibP SlS+E7QC2xEjuNCU05N|ǰ_C8𦵁بRӉtGZ7֌2>Tɛ{ߚƾL)cAPyuf M2꣺T bW̑?\V/1G3?49S"x悉S1h AyzQSLqjyA8<8q?y`(n`EWÇw:eW-CT\> ƾ^lh=DQu90Bdhg  .zcV˂4#fWUF_MfYQud ЭzYԵ% %7O8X's(j(ޚd)K|q}/< #SУ]FM q}o.~Z8V U[#!X8Gc#,EhOgў,6`Ⱥ$5oښ; zG.c2gףQW1$ይf򋵢`U҈/bl1 Ðcg _5y%&S$> endobj 824 0 obj 1953 endobj 826 0 obj << /Type /Annot /Subtype /Link /Rect [ 146.092 490.697 214.578 500.87198 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://red5.org) /S /URI >> /H /I >> endobj 828 0 obj << /Type /Annot /Subtype /Link /Rect [ 196.83499 464.29797 315.45898 474.47296 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://tomcat.apache.org) /S /URI >> /H /I >> endobj 829 0 obj << /Type /Annot /Subtype /Link /Rect [ 167.476 437.899 274.473 448.07397 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://en.wikipedia.org) /S /URI >> /H /I >> endobj 830 0 obj << /Length 831 0 R /Filter /FlateDecode >> stream xWn6}W16 %,R hRM>mF bw9sf m[<̬0Ylb>QaŘZ6C.Vbe>Vl=06ԧ4_W[X+l`DF̺J&[ś;$C6s0colZMn6kuz\ۖm[CHqz:cb}{8޺_"brEھ~Bpz4cop$kQ1w38\!yҷ b#&rT4KJ:{.Eޒ2 6MJ[BοLO#ɒ:qK71t42=@\HYÛMX F+qN9gCe]51X%KMüٍ",NLƣ"( (|GcqY-|Y`F/1Y#3o28E-7Y˭` vj-":+Ȼ#w?d'ݞRHYЙ .Wu{]D|E\q<;RA"2SQ>$âd,2˓z5sEU(nWʓ:>ckXИ4ytl/P=-Ei{{eH8"ͪ㩇0WX4^bEcmz}۪J_e .HeҘU5|EHN1bvHBH ,E>vh4ѠJe$ "KD)m*tІ5a}.9L9TuOj0NCNDZ3/E^)bqE0KDS> endobj 831 0 obj 1360 endobj 833 0 obj << /Type /Annot /Subtype /Link /Rect [ 423.655 677.686 539.826 687.86096 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/stream/IStreamFilenameGenerator.html) /S /URI >> /H /I >> endobj 835 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 662.287 430.97 672.462 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/stream/IStreamFilenameGenerator.html) /S /URI >> /H /I >> endobj 836 0 obj << /Length 837 0 R /Filter /FlateDecode >> stream xZ[6~_i$j MTűg*ӭBC/3#@޵k@p߹H 0,&(2_?$%Q@bDh|' ƱXip %7t ?T0оl&ZSHvbw%j tklZ:=GuY(ÉnSmU_ciȠ)bDdfĖ (56H`;d js) q*O ݐ|A$F %"~Y]HP-X>fY/Ls+fdL0UO%ř￝Z G1!i%X %Ҿ1[sں<|(x+4gm.7$AA}>C4_L‡.y^]0Irg~?!/[*y|3 vkӋH;T_K]>2免s`p_62+ywǫlA.? `UWy\F{d;Z硫e08FHHĤ k~g`&%V{)|1f j䢑]BJ c 헥QO?нڑyrYLDt-ftծq T`Hp8'_CSq {g>^,T~/7%SWzkY4 Z!u69m.+$̴Dek4h&UsD4rt}WŬˬCgRJ^iq[M)/cŵX@krkKwR}b?jg:l:V|vgn'<O~IA1ϒ{&aC,mPϭ\~w߃Ghǿ0 ˕/C"[[6L_LH؇ү endstream endobj 834 0 obj [ 833 0 R 835 0 R ] endobj 832 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 836 0 R /Annots 834 0 R >> endobj 837 0 obj 2250 endobj 838 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 507.38998 177.90399 517.565 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://api.red5.nl) /S /URI >> /H /I >> endobj 841 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 326.30298 220.672 336.47797 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 840 0 R /H /I >> endobj 842 0 obj << /Type /Annot /Subtype /Link /Rect [ 139.998 273.64096 184.02 283.81595 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://api.red5.nl/org/red5/server/api/stream/IStreamAwareScopeHandler.html) /S /URI >> /H /I >> endobj 843 0 obj << /Type /Annot /Subtype /Link /Rect [ 190.136 273.64096 404.11902 283.81595 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://api.red5.nl/org/red5/server/api/stream/IStreamAwareScopeHandler.html) /S /URI >> /H /I >> endobj 844 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 258.24197 262.241 268.41696 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://api.red5.nl/org/red5/server/api/stream/IStreamAwareScopeHandler.html) /S /URI >> /H /I >> endobj 845 0 obj << /Type /Annot /Subtype /Link /Rect [ 124.708 205.57999 536.724 215.75499 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://ptrthomas.wordpress.com/2008/04/19/how-to-record-rtmp-flash-video-streams-using-red5) /S /URI >> /H /I >> endobj 846 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 190.181 150.987 200.356 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://ptrthomas.wordpress.com/2008/04/19/how-to-record-rtmp-flash-video-streams-using-red5) /S /URI >> /H /I >> endobj 847 0 obj << /Length 848 0 R /Filter /FlateDecode >> stream xXn6}߯c tDJb_4۴[EZTkŭ.vӯBa33gCϞ!̜kGI09"x|C)w.XrdΞG|xxk'KO|w9;KN#hs1cYpӺpo;w[O} @$sa)(m!e^e_oW.e܏?ֲR7h\7n0˖d%mze)HsW> 13.y*!A6"`Mlx֙KJ;&g;X{kNXLļg>f3P=^u:G"`&%,  ns:( 03);pGf!|a~.NLƣUn(V1l}jq]lNٲ/ٲpȍ9b8"q|dUNE$-.`(bfL^Y<ɢQxcd&݁RcHʖW-R^ 7 oZ:ٗѽ벩WXxJei{^CV˪~(R{tGдlo/䓡,KUUe;J$G"lAkY=Y`Zd~0BHrn˜zF/YZ&͂cG3inS^^U>x{)P"| lD`:()#.j~4GUT_Me+"S- *V)ǩ&|h:(}wS_9 63wӮxlWM>pۏN;cRC-2 ]G~O.$$ޒ%4gd.S< |2?px⚢.g/p#!}C+Ɔ7*?x3P|K|bhz*NE&W~DSS: RdPQ]8Ey@ t~sP,hP3:몊jjV.Jju vt4Z\I;zB!\ʨ zc:*T*&B題cl t&zéP+|iƨ.C&/ߴZ] Dq](RmlYYȤ:0H@mXC Qṙ0D<8~SaO7epyW5(*·f|(ۖ;t8,y1I_Xu{, y =JK6k 62_ Q rm m1[=]Ϭ|h/phP=Coxx;^X]JE] YMqhq@!QJ;O[cR{C!mS}>w}{S1:{[ZRgU smg]OT=DU%k]R}δR@_cOY7iib>d+d1WIbBmW5pFo \ƩЈ@Xf ׋[UV[=ŠwzQ͒Qu ݜ'y.r9Ca*~7piZ:z5a' R#SkcYGUB J[{Rތwe-2/a"O:9%.A./5QB2 "S;:i3^,ܶ* F65{&] FTmoQns4L,ٜMOr*Ӌ)sb(5\cBWޖ*p~Ih2*E!}ͽ=>\˰ endstream endobj 839 0 obj [ 838 0 R 841 0 R 842 0 R 843 0 R 844 0 R 845 0 R 846 0 R ] endobj 38 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 847 0 R /Annots 839 0 R >> endobj 848 0 obj 1882 endobj 850 0 obj << /Length 851 0 R /Filter /FlateDecode >> stream xZ[~ׯ 6PsI;!F+QD$Q!]oum ܿ8"}῔8MS)s88FFXKb$Xy0#SJ7;7jpC'j+{>mNwcGO͈5H1'hSz!zݼz̫+_(o4TwjP:oH?sDwX_mFLl@jIV ^oKfnS^e靪{}C/S]֗Wg@es]!myW0T}qz蘨8Cvy]Tw>mc:覰CvsۗCT]/N.a^=o?}͏?(.rm_8]QxZ#{S/ =s!;lqU^{zf!1uQTVP=ȿ%$eӳ${˺:kFRIS*.y*-g* n\tS1bLPFH"LDvp*@%vA CUXޚ"XuU'+@hohfs:ԯ{PrDV,/YGmup%^/C53&C:J(5[Ĝ«Z@Fb2xhrhuaC ܌y8[@Z6!$W\缺<CØ[ioraGMOO kbQѯ8wI"%SNR) `m *@zNVX H[o0If3hzLIXfF!1I%S(TĠ]KCAvQAVB[E -Ph)dk2(.ϭҡh'un"^:& H$ )2a㋳\K٪JslJ_VCi**b)}5[ αUOTXzVd̊l),^-RXVWdU[k1[]V$o@o/> endobj 851 0 obj 2661 endobj 853 0 obj << /Length 854 0 R /Filter /FlateDecode >> stream xXKs6W`49Cx@':^4!ɁXSJr)ٞ >3r.>,+ iA(E$.Y!Eb8S#a2Bg -eT+)G7Vߴ=A5"XIqir0k25^c}cCltXPD)}pk DJB|-|n-.OǪȷxD_o_n(Rh̘&L(|$5hcM%FcMQ>)R8B(pQ_ e  ̚2S23!ILcM1<%k2Iis N,E'vTbEOOd"N"aI 6F#XHeR2:%A$.2ز J6VxwIr Q$(w|'|*Dȉh xAq)V^?t]bvsu_0\!zK";ܔᱵ-r7_._.,s5)2>*@诂k FP2m!@UXX@5 #6-V17K ~jS Kvx<5 |V DM!Tm Yz!GO|.)|< өԵ#@3"RFHd0gĆ4uQ͚.@]=,֝jwEstucF @Ʈ4 6dӽN;Vƭs,fS|[|(vE2Ѩ#vbpj_ ehs]0] Opn=7'dA:hN(.5ZYfUS*$( gڬ㐩Pq,[t0E !_VZQcbDv%/ӹ1Mxwo}hljli*M?N$BCaԶ#E,CN0ПK$ S>EDs~^qRLO{! IS#4*E@88KUs89M@. a_>WC@4 `ػajcע"%w!!ʞtWrnSk;]󣻼88MY}~ܻ|e쾹r+=K6~W&ixhHuWyDZteS11ږCpM `\Za妎^^ 6s0b1ge.6z؝b<+NI;Bv\[T&&I0uc=#ۺt~_bO>u A2r5n 09K?gԴrX^<*ɟ9MQ%Q]en>Vc=F2[UY~1v损aǾ~˶;%3;<; VĔL%<'C/] 0Ah]k endstream endobj 852 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 853 0 R >> endobj 854 0 obj 1536 endobj 856 0 obj << /Type /Annot /Subtype /Link /Rect [ 475.00302 579.276 502.52502 589.451 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/stream/IStreamPlaybackSecurity.html) /S /URI >> /H /I >> endobj 858 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 563.877 509.224 574.052 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/stream/IStreamPlaybackSecurity.html) /S /URI >> /H /I >> endobj 859 0 obj << /Type /Annot /Subtype /Link /Rect [ 476.884 522.088 504.406 532.263 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html) /S /URI >> /H /I >> endobj 860 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 506.68896 464.63 516.86395 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html) /S /URI >> /H /I >> endobj 861 0 obj << /Type /Annot /Subtype /Link /Rect [ 214.545 60.523956 505.561 70.69896 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/stream/support/DenyAllStreamAccess.html) /S /URI >> /H /I >> endobj 862 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 45.12497 271.404 55.29997 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/stream/support/DenyAllStreamAccess.html) /S /URI >> /H /I >> endobj 863 0 obj << /Length 864 0 R /Filter /FlateDecode >> stream xZݓiH=mlRė۪i7E (ňsE,>8?>%xOC(0kMdYz<.L}XQ:::Yk̿K{Yr݃srD0ףbB1 R *Wo0JQܓ U޿Ee~\ :•Qu-J~X{i_vŊ&?DݫGm"~/s?}֯3)ۦ8ЄiF=a+1ʹ8M/r%2su˰1q;[.nPТCYe˻ٛ<ٱWQt&Ci -uq&uVgH.8z8NEUU۬UN1TrԧË\;˝4<4ڝǦ5~4aVJ.M:njD4x 4HCOβ6'Hֈ|8uh[]"1C#$]ܭ@sc8|Ui:ؕR )wp6;6uá`٫ltȱ :Ŀ3﵍21]곪jݮ31M,6% fˠ[ n%L2%p\COM<og#B8x@(phBN(LO9xA+ç4hr 7ѫNh]^zA4?|,!wFh]] ~\%5 F@ +! a[೷01^WJI&芩:Xq !V#`[Ӑc' Rg3jjJxE* _w\ c么sY>aT4;d ۂy XJ6CX ?j%7 l'aʯłՐT89LYDv7~4?BБ( TԵq?!%2['eD*ق!u5_ny|)_$aRUO[]u2*хe$^_&i)]->\wኆxdg|gQ^w_Kaߘv% t.6/sΕVzø˪N\8D3EBdwESxKROr`]0[r颷T@z'KORj"<1;̉I f^Mzfo<nufE|kil[yivVWY٦ǃMqiRCXʾ q4|g%Zٌz(9Hh)w -eRh对@.n>G6o|̌kp++5=|o}WP4[Ɯs_3Cz9> endobj 864 0 obj 2465 endobj 866 0 obj << /Type /Annot /Subtype /Link /Rect [ 261.63602 725.535 515.978 735.70996 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/stream/IStreamPublishSecurity.html) /S /URI >> /H /I >> endobj 868 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 710.136 273.846 720.311 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/stream/IStreamPublishSecurity.html) /S /URI >> /H /I >> endobj 869 0 obj << /Type /Annot /Subtype /Link /Rect [ 273.846 683.737 528.188 693.912 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/stream/IStreamPlaybackSecurity.html) /S /URI >> /H /I >> endobj 870 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 668.33795 282.404 678.513 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/api/stream/IStreamPlaybackSecurity.html) /S /URI >> /H /I >> endobj 871 0 obj << /Type /Annot /Subtype /Link /Rect [ 224.368 652.93896 501.337 663.11395 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html) /S /URI >> /H /I >> endobj 872 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 637.54 215.183 647.71497 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html) /S /URI >> /H /I >> endobj 873 0 obj << /Length 874 0 R /Filter /FlateDecode >> stream xWKo6.)ԅ{h@IZeǖҮߑ(R/A p əofRDG %$IDrώqI"0aE! Q#&PDTiU#;?wՎw_ndi(~=Řd<=%>C8.j_ ϻ=EHPD8f !:aD_ndvѪ}E/u \xd͹w]eb Ѹf]BC@;81?D 3[R&sd?SjY6 dF\&<.gfDY ~9 "aٮ(, Č]*!,,;6~5xs{V䚢0um0se R!0Cc(. }9E7~;j|/:Cn~I+$p9Eڜ]R7'_o,_;uSI??ߋ:&k}6BYBH'ab}Z8_jNz|/1%r>=+NjY2$bM~Ԗ b$:-tғmqȤnSei;p{PSC= 8Q+Z7fэj M$kX/@R&ԥ>%3*{RkUލ.Oϭɹ.]1K? ƌ7&#l3{ n0S Fc庲;z ЅԶ@(9VJB TWk4fP T ڿߧp^U뚼dZXٮda/X -s]x /Wsڝoڱy?#7p鍊 Y]ҝY]U@lܘwv]ݘSnLi›tN護v)ԥ0V?O(l endstream endobj 867 0 obj [ 866 0 R 868 0 R 869 0 R 870 0 R 871 0 R 872 0 R ] endobj 865 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 873 0 R /Annots 867 0 R >> endobj 874 0 obj 1220 endobj 876 0 obj << /Length 877 0 R /Filter /FlateDecode >> stream xXAs۶W$Ix^_3=4=$ѥH츿 Lrv`a{KG92̢qϊ$baG$A$$E8K1N"U-cG:>Ãz_V/qԉ2^}@q!(ƹEl0 3{fQ22d$GfV߀DY ˼r#B9E)zLL0MPs\2qϐ!/SVLsxI6Xe<E!8!7g_Єǰi) '/"a 8?~$!NW $Ljs%,џo&+z_}xP$e5Xbq(JlyqYl=bZ, \. 80bfv^We7ћ~~\7v#Z+C`*0hh:Xh˷7n* d;IYxe|]BM(bv] P5tȞH'iĦ/۴/~/JE}:1=|O<6^˺o8,sb7)Tk/S+SAXYU5/cӈޟ ǁ}MuubB;1FPj߲L¿ʺkf  [1H]vD ZOՠX :%d`QD-ϮTeJ( "/m<_Yrd{o^uwUu%1 939uvlDZs*oo(L/ݵq -lG~)-xtNA7U .ϣ 1ъ/ xa$OIKM+vS;΂G eg㓼6Ŷ,}SKP k݋2 UWd>;Eh"N7Ȟ6g~C,f!uf`k*_v=7ǃfc5f # _u? Ȱn S5*7q~3! pD7$ a'i aJ&MM9J@@BL13 lYG寂!<KeX:#w]iJ])@'v!ص#V,C鈧 f<_S endstream endobj 875 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 876 0 R >> endobj 877 0 obj 1966 endobj 879 0 obj << /Length 880 0 R /Filter /FlateDecode >> stream x[s۸_SI;s6d=\A[-4}E9\7A$k(y^0V~>dda0ՎPQ*&I'ts߄^y!etav$nE_Vn\7SMZWoV($w!OXNѬ֔ש|.Zau55>k i N@F =ʹDT)u5}.ڌg-bFsi*_Pf:ATfD0M|߳Rj0s[Zޓ)j i:R;)3>Q[X;M:NDX%B*J-I,3j+ y(Mlq^d D%|'OBL<KBԚȶpwj5aTjXamu_Wqm'-BPnHA$S[?ܞd7ǯx%~$1MuNT^gKWM{}#S]s܇8E7#9nϠFhsƦ.i 3r (Ex?ʏQ ABiʺx9[ ?qPb/FJP?6|rdvpiʗ۰\ pW^6bMo6N}oz7+m&&Dd rq{կa3ɫ>խmܮwwE )Eua .ׯiuLT 9BC#C"p woקf}p^ ãݭ5U+8$gD<ŷ&\۩)\Fhfu0̰c.$a1nVFҮؓ`'3:ܪ4ߜ>j;n.#TO9$N5* ,/kN:~dQt+^ҌNjz>'٫iˌ EU5h,4ץ1UBl5{Ah^b=v8rW{ԳEr&߮E+O=>TƆ9eōm;9-|y=<L0/Ǜ|TMPSvw_ޒb9Қo-Tay6YK3\dvax|y*U4`Uq$T}, k>'O$XYHEk5%b̯_V &/m Vin><7R#j~MyYQҜf-ک$(C['vS`.g-.Mus7RrngH9lzfӶq"uVunfiURdžq-$5ӱQ :E5lL42S09ퟺSEa=< ,۽1Fa4۔WUeÝY %g7n oU&y9'6\Q@oVCL!w<OYby'ܸq}?g<rnHޘ8sM@(ti2X2Z@L- KUXXpv7i- ˍZXjȆ3L*?ŧ5P:zCJ5gAQPAʂCR  _:CU}.KEYy&z,4sF˜cBDPa$ELI$!/+ I ;\;J -jWHhTNH{.XAUֆۺ2bəa"ފ#_׳0jsѰJÊ!q+fb˖B`;uO;Jy:~& q, #=p!rtfKd߀^fjL ҧS5= A %:JhjxlorDbUF^bX f˃8#7C# ΀E1TME}RhL)=cu;ܱ*⒰ ₰,T*AE[1\t_cu%$yE׶p?Pn>萎ʢCRE "殂2]V>P5\YK9& =K,X#D {|eB 4qD)UۘGBUHq%Ͻa$ZRTYj%H&kB;Og"fؙ_ͫ<@f#[)vX pCTH'W#BY2dyW_]"dW:B #=05!0jL9й^:rtA+&ñx"U~ݬԆ5/^Q~렩5/ ג[g䴻ԾՃ^AB |7}C_AUԇc/C/$oa#^sJZ U婺"4כ7G?7wHA^$ThlsϋExϗhJxjgHS9z P@tX*zc ""D2UPS)=N>Gm`i,ӈvBˡ endstream endobj 878 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 879 0 R >> endobj 880 0 obj 2837 endobj 882 0 obj << /Length 883 0 R /Filter /FlateDecode >> stream xZoܶ ФHb hfs0Hbbx>-:*G(Ab|dHk䌠<ϥ'?S,!eL&dJ˥L5=ڽt@%?NI0c290z)|=!5p,ꐾ߮ߒvkl"9E)a>_|\X/ *W8MݽL~In߭~p4q*FSZXU6@ ~FBZB4~93@OQ&dC Di~Of/,('BJ \4XY!8!1&_LRZ ,x#)"&̏$2Y{aٿM4's2-\>8d'aJ_ZK`D(%bNT"66SVƶKWpp8VEsUZF;:j?}.i<.,0_Y 5F qYr)F2*` 5aI-0cQR;%zcunty> Di?_-32Xr?CHL2'мN!'C7?}C8xz|x Aя5~U6-4ǣLr,7Xqš | RǛ:?Yr6BޣEšD7A7Tdˁ0Ap}%k/~oF7g4%3Z#pu3Q$v45 z.aܥ ˠ|ޛqPqPK1hGi.ddVys ش6#3hHy/iUBz3-ŽDEȦ٤ި/QaP#t1ia6*ZtDF7]3Lsټ7^v)**cX_p:흁spX32u)y^5S@LO:&mf{j&ښLψh .휥nfުiERcy9ݷ.ndα}Xeg|#\x)îjUWo-ѫ~=AxZ.0-~?^OdJ&T :h?n5>LȰv>UgShPmB) bW?z s46ƜmHL;S3i=7v[O ]wW~ΉtT.Vv$;~"nN2H)OT"{١30{١g e/=zӳc^%AE`esBKن>^}Mf :,/\U}2WyT# ̑[2\H%4'Ras$@&aORH 8 (TR@u2f F18?j nQl9EU~dWK%S/fa,j` PH endstream endobj 881 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 882 0 R >> endobj 883 0 obj 2417 endobj 885 0 obj << /Length 886 0 R /Filter /FlateDecode >> stream xYmoF~ }U TQH~ (2Mbsm_B;wٷN6awyfC< AJ)-%^Y"Mq0=~} y#2{9?/ d7d_È{w}G3nPF,*c! oGw~UlQ>ps}>9 (-wnfc"(m?xWCD8SR ejī1Yu۠CUD>QqV -AE9dL- 1 )}d_uNSZ ORDjO*Cq(18cf:ʴ&`E΁Hxx#FZ3>GK%K>ḛ.gHOgżYIrQL83-^ŭ;e#Pk}Cw5"kr?5߇$lBSmb V gcM7ͳ&5Y=8H]?O78Q_myaH]8\V ¶RORy@SImr7K:Ԥwn"*G%~\>!5&5XOnxĚ{؟ LN7;@3:LQ+N9ݭiKON]qm{\oW B6OI)MJ8 3I-y/!ּx[jES%ʠWk(6_iznSels0cfبQwYT,b@owe}mQDEߎm&jsY_ nHbnLeIgvQ0' 恠}p {t<93^]Ѹ]OY>}qˌG bTtB5âmްIzc+K/$3.k3(9BagՁxPJ3L–IbBKAlr}(pz ]gMZ`̼].nd9.Z@0fE lLPEr{EwxW؟4/Rg u('EmwWb9YAwE^xW5GMkOR-{!W5%2삲(7o׻,Z|VN(8+g'HhL1f@~.{k&^mZ)Xr]eQ= 9Ut) 8--xf{y<. Hf NDy?@8w ZAk9vCRaP~Fxxצ|lҗZpzz]!bO녔5@x;~Ò\+m9e& gd*.$TJ.Q-Lz;dAg_cΑxjJ&0'$g~0ߠx僩 [1y{+w}hB_B룘у> ۘfDy|qi^k[P at=kĦyz;2d}Ylc*38ZC륄 O۹*$uhW7W endstream endobj 884 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 885 0 R >> endobj 886 0 obj 1710 endobj 888 0 obj << /Length 889 0 R /Filter /FlateDecode >> stream xZmܶB~9y$Ebs-#EjBSov9J|34<3 %^bUU%8E,~[# 03Jy1HJ&M*!u(&/ryɇ/>H{.pfcaTdP(f#RP+;ڧU1(5З7:)_>,^Ý R(gD0dMͲkv{2w4C}hweso#BiUĪmޗ7M!y7 Ɗ`*NQ)8rJx&YBa p%=i*…SQOf1Ԩ%42ì0q(#cX"JˇU 9bX-rW @SJYFa1yNoH.h%EP0 41M6|r7- 3 PT9 Dp!`|߬ ~7[x;vFͭB1 RJP uyK/(m2޵=jSO+LWF^a0Bx/ ȹuQH3JC#N,uXjT.Ar)+ѰpHO \`R]5.(9`7fh3ʔ@;(qhix9bae} ]4,;ȯ9\yfܬ1Jrn 5br>.݋Dssơ[QM(W^.Gw~lYj/A7a2zfvVh6Ó ۧvM`B`1hE (ee*wvGiKe]4nWmqzkPrm}׮lv\"Bzmñsh}ԯӫz}&덯;Özt(,Q֛ lZÓwn7wR"^ $u% u"-0:d  "񬴪4sTqXH7BIKqV1O (a )#Sx=y4Rld@'HLt98yӒ'[6UcᐍDT4.kgXOjRLü 6t,I AxhXe{ŹxsT۩ ;T6>Np ω!eDUgͿ6+l $.Dd38DvW|Rov]߮ؿ@'PV 'Q$Ep<Ҕ!_{NZU&9^"’zE6rIgSHkO}3YLcg\in=3퇗[ljr`6mu<캧I42NR`thĢ|"]Em'!rbv$LͦNLEnWiuL1L/ C3ls>RPeamRׇ?gwWruI2U:^`s?E%Wh dkY:}N\kxf\d2_nFib*:hn{F ]˽X-!6?O!$axfv&rBE=3'36BlW'P~JV_P>3AW"HHϪUZf0qSZ"ڕIB9, ̦0M2 ;Ƣ *J_lea0t>eCQG>guB%e[#)\#8E?rzA=UCWwĞ{ndOn=<tl SLU$Aťͯ̓ r'8 ckp_J"0gh7  23l]cFw)]נvwqB;%}FL:WI.@רf0޷HaΘ݀DDˑo.drHm^`&Sruz¾=/9̓҂f@Wg~U?0%4ۂAM툯`>Y[_K endstream endobj 887 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 888 0 R >> endobj 889 0 obj 2562 endobj 891 0 obj << /Length 892 0 R /Filter /FlateDecode >> stream xZmo6_!l+CRH6[vE`bӉK$9ɶhQod9ӥPJȻxw#`/R*!0wY~$'S! OCXx3p1N&rfs^L]~ii7ίh;wU9{2˪w&[$rm6nu9G'!9ZtˈR>s1<'A3t9 uY0Cszf3( B&[jP۴o8#mZugEYo:EbdLy 1 .JS~jvlc{9,J$P\4բFmpZ;ʔ VgZ4܈ Ka# "6d-&NiL&dG'rhČPܗG_Z^֩PR.-rg}XQjѣ)2QyPeo`ɚ.K0  Mu]tP!u葖! &z͚35%"R*s$0$2>||Cޅ*|_G!}mۡp:**O'[K1>ƃ%%2n`~@BIR겮$AI%%{/j*8xQX߾ug=x$G9Cm*I(7cfǒFg#OlT0qC!`?Byl<@A %A/OoPq)hHtH Gҿ'ֻ~JnRT'yKH\e꫒9dZ&9P'S3'Go^P`LzG َ 8Pg7ei]ah7d0OS p?[h }<&'#+ٳ5Le%0u҃)w~a+?-k&H[tbjS~zwn[֓MyHTJ Pt@yͱa(pe ˞{y$aX~MQϖt_8ϜVݐ䒡"1KdKrp5G wo};'_6A(uQj֩Ӝ <聑Ne _L1 endstream endobj 890 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 891 0 R >> endobj 892 0 obj 1994 endobj 894 0 obj << /Length 895 0 R /Filter /FlateDecode >> stream xZ[s~@Hn+OfVS#M` I d,X.D3K10_'(%%|=ׄ?O)GD'#,}G^s.P[y/{_/,Iyl&q0äed\""(Aus.lV!l׉&}&#Ļu "C}X~\{O/r,73ԃv]p̒eٝyO\DМ ,\26uJĦ}D>c@GmNs*W-k{ͬp  Te6甅N68mr:lTfcJY8Dnb٤}xR\e qB׽{Y[a5$>ӚӢ7Ze=k)>]Мv]lٲ#*cS`@oDoMx0m `+UG.V]AƟ8bLVboTJ2ْƬ%t [+c7{%g>RO Ƙr/[X R:asZvF:+6ᏬsKrJ!&~aX8sр iԹ5VhǒJJ$s3NjT_"@<2+Y_FP %G,h7zg-nW:z|r`$@~rGJk65_ggh**]Q'xpkhAPƕA S˥^ϒ"׳d840FH4A[BO+A C&Kp &A(iHrm:P Gd61]'lB%^[bh.Dh ZEd@RA FlD8o&-϶KrmGaxmt6Zv91WƠx7PqsKkzhٺJ& ]-ZBRj1%~jNT{n( Ixk;]QuJ2$im24 fʧW-ަu m?Gӳ+ 8[DIcC+ 6GNc$i6*a|_Y-wۿ|-WUx7}{UsWq]PeDWKD}\ñd=H=2ZfNgp2=:]9./R_gz[ȪeW{.:5l 1ŬFSrTCsDJ^]&:[\[8M*hބT[Y͏$H0N_ J6vs)}+ LͨnNh['n?tq j1!T & x9? p' !'*s IXl4UFAkOc;#MG]P 29%q8[_ ئ]zzn2zhhw[ۂJ uU~g _[pkzZ}uȒR^d&*/ȟEo ~ȐՇ<.ج εzZ拧5^St]7龥Zue0%aLS:^JSǎ4?2P)sanLy4~R)_ЬTEJu"4c-5GAElBrZWo6,#ArJ'IFcjIEqk\$#Rw8cG)}K὇kT6ּ#]Э!*+R '/?¯W-h?\{_;SyN_{qpy!`}[EKSLujZVcJj>tVd+*mP[,=1L&wzW3W(;( ?>1Pw'IY3~\PzT)e}ڏZnY{ɇ#k lɺ>~ͨ?5G[vL9jKm×?k7GlLMmٯ.ZsĄ>9bz9͟fz7GDmǎ=3m>v|)" }l$-Ebxώ-O{wHWȞ8qm]cM~C[$Ub8 "sTėꨒ!c>EbK~P-jNAK|D]rՍ$v~|x@&4J$Gچ5oC%Ljp7Qb0Q"q Ĥn|f8 endstream endobj 893 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 894 0 R >> endobj 895 0 obj 2500 endobj 897 0 obj << /Length 898 0 R /Filter /FlateDecode >> stream xZmo6Bȗ[LJDP4`_ .VO+v_ޡDRD6=#v9p^83\c~Q]J)"8n^b'.|G|EBE!BFsREl7o̥-"[ An<,zL"[׋'!6i"Fkk  v0vn` L}'1>;z]&Edwgҁw";qYu|rnx} u="/ 4jٕBwT#6!0vF}7 !E3$$& Kl %Ckn8'ƴQ1r5i̲mplbd g@ j!Njy$fQ6,!C(r#"|<%A 9 'x- k MO!9P4\}F.6Fcq%ṽLyd |AvQ@ u/\Vs  I^偗aD.] ~'Q'z5gN'WAax!Gs< 3D0:'tJl D1={{b@ǂ0ۦ튇F P 6dp xnS 0b$]44 M#g?4$QY4X̡" T"PƑ#MR^]Ņ[rw6_GaLϲߎC(b J c`+{~i6^lsoemFx5/D-p!ѯuHEe+qƫC(6DĐ8Bڼhg J.y/_Pc2QX`3eF48=gt KE'q<4\b/lAI5bZ!qBI" u]v=6/wq\-k7 'uD̛\2SFAoLKz-7yٜ_]?>J&o/vz64fU !9UPO|?@ !@yDpG-Bx6nbUaZُGL+nRi5 Y}f֖hgld+q ǛWMaPCpm!w+s:H t$ILCͮ]/$rޤh|#iwȩxyH@뤹7ُDu>LԠXubE3c0#lzȍd/ӆvcMi]@cْ6dƪ@\E@,>=zd''Ry!0 ]:s~)xwi%72X]-]_ 0I+L|)W4k#j홗 L7QRD$ķ)d n u76M2dˤ/^e*OSp}DSi`g^74? A !O6cAnigy1|Q`4)٧.A8hPrɻ;*lsm4:U'jPrp+Iba]$40QD5Ќ􌕁NlS 2pI,L! Q̷*]jڷ$Uغ1 q\Rqnr~;6Ԟ+]U>/m= x\$Bǵz0d2[BH`׶wcU (G]BheuVgwWvV[TfԢ0$)at,,Zasν5BY'{%jwEj?OU36",=!ȓ_k ^aɻ߁HMy*yұRGPҠx8$گfD ·s9 endstream endobj 896 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 897 0 R >> endobj 898 0 obj 2454 endobj 900 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 726.084 519.014 736.259 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://static.springframework.org/spring/docs/2.0.x/reference/dynamic-language.html) /S /URI >> /H /I >> endobj 902 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 699.685 283.053 709.86 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://rhinoinspring.sourceforge.net/) /S /URI >> /H /I >> endobj 903 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 646.88696 456.05002 657.06195 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://java.sun.com/developer/technicalArticles/J2SE/Desktop/scripting/) /S /URI >> /H /I >> endobj 904 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 620.488 278.77402 630.66296 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://blogs.sun.com/sundararajan/) /S /URI >> /H /I >> endobj 905 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 594.089 249.426 604.264 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (https://scripting.dev.java.net/) /S /URI >> /H /I >> endobj 906 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 567.69 476.25702 577.865 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://today.java.net/pub/a/today/2006/04/11/scripting-for-java-platform.html) /S /URI >> /H /I >> endobj 907 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 541.29095 463.948 551.46594 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.javaworld.com/javaworld/jw-03-2005/jw-0314-scripting_p.html) /S /URI >> /H /I >> endobj 908 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 514.89197 511.699 525.06696 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.oreillynet.com/onjava/blog/2004/01/java_scripting_half_the_size_h.html) /S /URI >> /H /I >> endobj 909 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 488.49298 345.995 498.66797 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.robert-tolksdorf.de/vmlanguages.html) /S /URI >> /H /I >> endobj 910 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 435.69498 248.172 445.86996 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.mozilla.org/rhino/) /S /URI >> /H /I >> endobj 911 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 409.296 338.031 419.47098 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.mozilla.org/rhino/ScriptingJava.html) /S /URI >> /H /I >> endobj 912 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 356.498 234.147 366.67297 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://jruby.codehaus.org/) /S /URI >> /H /I >> endobj 913 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 303.69998 233.52 313.87497 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.beanshell.org/) /S /URI >> /H /I >> endobj 914 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 250.90195 253.07799 261.07693 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.jython.org/Project/) /S /URI >> /H /I >> endobj 915 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 224.50296 401.061 234.67796 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.onjava.com/pub/a/onjava/2002/03/27/jython.html) /S /URI >> /H /I >> endobj 916 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 198.10397 240.879 208.27898 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://jepp.sourceforge.net/) /S /URI >> /H /I >> endobj 917 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 171.70499 234.763 181.87999 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://jpe.sourceforge.net/) /S /URI >> /H /I >> endobj 918 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 145.306 246.379 155.481 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://jpype.sourceforge.net/) /S /URI >> /H /I >> endobj 919 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 92.507965 243.321 102.68297 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://groovy.codehaus.org/) /S /URI >> /H /I >> endobj 920 0 obj << /Length 921 0 R /Filter /FlateDecode >> stream xWKs6W譙&f:$LICK%"Y.A"!nM,~D5?SRlWnDPDXPL!<e\'d.SZ'Ebk_dU"շc$jbw9Z}) F:ke*9$EQ8whBir}r *E)ZC`6ɷ7Wf_wm&uan_Gri\!a a.SBj((#]BrYHpW g(LGe#N $_eϐѡ /w|VRTj.srZbrB2HvX4؜t ( y>,E\HB\ I6gv_M"ڮfL/ݻXlX\S .Jlea._e4%p:Q"4df 7Mfc\nG+@[ ":PiMVIPc35Ѕ.Wxـ42r #}غ;zgվ=֏߷ (dUݜmLl: O$D4!`;c¯ }]տ`G]̱jQAզ n̝iL1xRf]S~oЮ;S%4#rКݾށRpVG90?R*b}(p_!w}*Ѧ:y6EUwf+ O=ʹ]UIe >ۢoGD7yː/FR(ި/_%uAr1IӐxt\8]_Ζ[B /ÄcJ8P5^{]ywR2W~|8&O:tPL+p\t^ģJxj_-f6:=F g)uK+f_4E5 E#פ(FOm-i{?C+dnf?ti'0Dxj bXplSHiM'v* ͆~ab&0Vo%ک\L]/S/o*~tNkÅPL8eM2UBKGǦ}) > ,~*julLY ق endstream endobj 901 0 obj [ 900 0 R 902 0 R 903 0 R 904 0 R 905 0 R 906 0 R 907 0 R 908 0 R 909 0 R 910 0 R 911 0 R 912 0 R 913 0 R 914 0 R 915 0 R 916 0 R 917 0 R 918 0 R 919 0 R ] endobj 899 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 920 0 R /Annots 901 0 R >> endobj 921 0 obj 1337 endobj 923 0 obj << /Length 924 0 R /Filter /FlateDecode >> stream xYQܶ~_!z<EH $iܦi: (tkOol1DJM祌GЅFkF#RyJ(|nF|곦UC~_zѶmjNmakhEX|/]Yj[O}ٽҾzץrDCPT"Sq0e>jwu̡z켲x 4)1bjG⫂mMD)EBS2:lOj)dx=OʻyYٔKc?B3p<>b[ͰD4u}68u=f7]e€/]ߗV}w kZYS{V2*?*>T Hgaa7AZ<3mqig)djWi 1g] XN͡/ lDZ~.]`? :k/1Փ)&?C+)_xlh~Úa4?Di;6$q`a&=vQui[34&1GkBe9ڿͮ.a": drwFd JıxAQ2wqMƠ.zy.%\.ᚧr!<ʼnFChׄ&q⇢>âï׮˦' S{ʰQ.bLꛟjB~|2,Z0Wa֍ /n^T|H6W+£0O`f 34A6Dôq;` 9S=L^X|\3.U#qA569CXyP@MqY&Qg,+JCIbx%o+/Kq\7. h a |~:j+1+r{,ltUcMK's T H*LstR8Y<_N8ِA^8_ws"B3w,ϖQ;<~Ki/$7& p|- h֒uI%m^[%A^[!/a$V3lUu endstream endobj 922 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 923 0 R >> endobj 924 0 obj 2265 endobj 926 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 786.58295 290.889 796.758 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 925 0 R /H /I >> endobj 928 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.71 786.58295 545.942 796.758 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 925 0 R /H /I >> endobj 930 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 771.18396 234.962 781.35895 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 929 0 R /H /I >> endobj 931 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.31396 771.18396 546.54596 781.35895 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 929 0 R /H /I >> endobj 933 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 755.785 284.501 765.95996 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 932 0 R /H /I >> endobj 934 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.026 755.785 546.258 765.95996 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 932 0 R /H /I >> endobj 936 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 740.386 274.867 750.561 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 935 0 R /H /I >> endobj 937 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.912 740.386 546.144 750.561 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 935 0 R /H /I >> endobj 939 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 724.987 240.678 735.162 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 938 0 R /H /I >> endobj 940 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.424 724.987 546.656 735.162 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 938 0 R /H /I >> endobj 942 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 709.58795 239.463 719.763 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 941 0 R /H /I >> endobj 943 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.436 709.58795 546.66797 719.763 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 941 0 R /H /I >> endobj 945 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 694.18896 213.646 704.36395 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 944 0 R /H /I >> endobj 946 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.494 694.18896 546.726 704.36395 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 944 0 R /H /I >> endobj 948 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 678.79 208.793 688.96497 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 947 0 R /H /I >> endobj 949 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.534 678.79 546.766 688.96497 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 947 0 R /H /I >> endobj 951 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 663.391 214.564 673.566 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 950 0 R /H /I >> endobj 952 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.271 663.391 546.503 673.566 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 950 0 R /H /I >> endobj 954 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 647.992 260.315 658.167 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 953 0 R /H /I >> endobj 955 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.031 647.992 546.263 658.167 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 953 0 R /H /I >> endobj 957 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 632.59296 212.43 642.76794 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 956 0 R /H /I >> endobj 958 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.50397 632.59296 546.73596 642.76794 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 956 0 R /H /I >> endobj 960 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 617.194 273.066 627.36896 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 959 0 R /H /I >> endobj 961 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.923 617.194 546.15497 627.36896 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 959 0 R /H /I >> endobj 962 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 601.795 278.742 611.97 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 777 0 R /H /I >> endobj 963 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.641 601.795 545.873 611.97 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 777 0 R /H /I >> endobj 964 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 586.396 213.657 596.571 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 777 0 R /H /I >> endobj 965 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.494 586.396 546.726 596.571 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 777 0 R /H /I >> endobj 967 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 570.997 234.34799 581.172 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 966 0 R /H /I >> endobj 968 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.318 570.997 546.55 581.172 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 966 0 R /H /I >> endobj 970 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 555.59796 271.223 565.77295 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 969 0 R /H /I >> endobj 971 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.93896 555.59796 546.17096 565.77295 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 969 0 R /H /I >> endobj 973 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 540.199 271.234 550.37396 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 972 0 R /H /I >> endobj 974 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.93896 540.199 546.17096 550.37396 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 972 0 R /H /I >> endobj 976 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 524.8 285.463 534.975 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 975 0 R /H /I >> endobj 977 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.948 524.8 546.18 534.975 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 975 0 R /H /I >> endobj 979 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 509.40097 283.043 519.576 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 978 0 R /H /I >> endobj 980 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.97 509.40097 546.20197 519.576 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 978 0 R /H /I >> endobj 982 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 494.00198 270.921 504.17697 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 981 0 R /H /I >> endobj 983 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.08 494.00198 546.312 504.17697 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 981 0 R /H /I >> endobj 985 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 478.60297 310.907 488.77795 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 984 0 R /H /I >> endobj 986 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.719 478.60297 545.951 488.77795 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 984 0 R /H /I >> endobj 988 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 463.20398 370.461 473.37897 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 987 0 R /H /I >> endobj 989 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.912 463.20398 545.144 473.37897 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 987 0 R /H /I >> endobj 991 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 447.80496 303.63602 457.97995 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 990 0 R /H /I >> endobj 992 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.785 447.80496 546.01697 457.97995 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 990 0 R /H /I >> endobj 994 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 432.40598 291.525 442.58096 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 993 0 R /H /I >> endobj 995 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.895 432.40598 546.127 442.58096 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 993 0 R /H /I >> endobj 997 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 417.007 290.303 427.18198 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 996 0 R /H /I >> endobj 998 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.904 417.007 546.136 427.18198 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 996 0 R /H /I >> endobj 1000 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 401.60797 314.449 411.78296 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 999 0 R /H /I >> endobj 1001 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.511 401.60797 545.743 411.78296 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 999 0 R /H /I >> endobj 1003 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 386.20898 254.448 396.38397 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1002 0 R /H /I >> endobj 1004 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.148 386.20898 546.38 396.38397 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1002 0 R /H /I >> endobj 1006 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 370.80997 227.04199 380.98495 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1005 0 R /H /I >> endobj 1007 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.38 370.80997 546.612 380.98495 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1005 0 R /H /I >> endobj 1009 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 355.41098 236.177 365.58597 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1008 0 R /H /I >> endobj 1010 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.302 355.41098 546.534 365.58597 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1008 0 R /H /I >> endobj 1011 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 340.01196 265.792 350.18695 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 840 0 R /H /I >> endobj 1012 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.805 340.01196 546.037 350.18695 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 840 0 R /H /I >> endobj 1014 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 324.61298 310.202 334.78796 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1013 0 R /H /I >> endobj 1015 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.547 324.61298 545.779 334.78796 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1013 0 R /H /I >> endobj 1017 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 309.214 264.558 319.38898 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1016 0 R /H /I >> endobj 1018 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.995 309.214 546.227 319.38898 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1016 0 R /H /I >> endobj 1020 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 293.81497 304.782 303.98996 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1019 0 R /H /I >> endobj 1021 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.593 293.81497 545.825 303.98996 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1019 0 R /H /I >> endobj 1023 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 278.416 351.907 288.59097 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1022 0 R /H /I >> endobj 1024 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.132 278.416 545.364 288.59097 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1022 0 R /H /I >> endobj 1026 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 263.017 182.358 273.192 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1025 0 R /H /I >> endobj 1027 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.588 263.017 546.82 273.192 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1025 0 R /H /I >> endobj 1029 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 247.61795 254.85 257.79294 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1028 0 R /H /I >> endobj 1030 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.07697 247.61795 546.30896 257.79294 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1028 0 R /H /I >> endobj 1032 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 232.21896 332.84302 242.39397 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1031 0 R /H /I >> endobj 1033 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.451 232.21896 545.683 242.39397 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1031 0 R /H /I >> endobj 1035 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 216.81998 338.877 226.99498 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1034 0 R /H /I >> endobj 1036 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.397 216.81998 545.62897 226.99498 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1034 0 R /H /I >> endobj 1038 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 201.42099 269.731 211.596 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1037 0 R /H /I >> endobj 1039 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.833 201.42099 546.065 211.596 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1037 0 R /H /I >> endobj 1040 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 186.022 348.292 196.197 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1037 0 R /H /I >> endobj 1041 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.099 186.022 545.331 196.197 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1037 0 R /H /I >> endobj 1043 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 170.62296 280.635 180.79796 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1042 0 R /H /I >> endobj 1044 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.796 170.62296 546.028 180.79796 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1042 0 R /H /I >> endobj 1046 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 155.22397 335.129 165.39897 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1045 0 R /H /I >> endobj 1047 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.212 155.22397 545.444 165.39897 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1045 0 R /H /I >> endobj 1049 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 139.82498 316.586 149.99998 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1048 0 R /H /I >> endobj 1050 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.599 139.82498 545.831 149.99998 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1048 0 R /H /I >> endobj 1052 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 124.425995 319.581 134.601 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1051 0 R /H /I >> endobj 1053 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.571 124.425995 545.803 134.601 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1051 0 R /H /I >> endobj 1055 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 109.02695 320.008 119.20195 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1054 0 R /H /I >> endobj 1056 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.402 109.02695 545.634 119.20195 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1054 0 R /H /I >> endobj 1058 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 93.62796 327.211 103.80296 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1057 0 R /H /I >> endobj 1059 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.339 93.62796 545.571 103.80296 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1057 0 R /H /I >> endobj 1061 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 78.22897 192.09799 88.40398 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1060 0 R /H /I >> endobj 1062 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.51 78.22897 546.742 88.40398 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1060 0 R /H /I >> endobj 1064 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 62.829987 277.28702 73.00499 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1063 0 R /H /I >> endobj 1065 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.887 62.829987 546.119 73.00499 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1063 0 R /H /I >> endobj 1067 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 47.431 301.20502 57.606 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1066 0 R /H /I >> endobj 1068 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.807 47.431 546.039 57.606 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1066 0 R /H /I >> endobj 1069 0 obj << /Length 1070 0 R /Filter /FlateDecode >> stream xO$qyǧcXfGHb";C@9 djAr>@fLp3U5է?5[r>7!.\ b%G[퇟~g~Sz?B/?O9~?Ɵ~8nͫ_r7n0rsG^嫟zuw}oqov?8+=xDY]8soOدg6G孟ZWt|-L ު+~6~?k=_՟ÿqZ6c_h~.>;?kFp|>[r`)ČƷh{ox^{qZz}o{} 8]`Y޸7[ *;R3˟W˧/_*v%[:^[[ryϴO>쉿qw5ztkkz_2{sہ? g6`{Ew|ㇹɝO|>߾851\\p{7? Zqzp;a{ʞ`fd&ͻj#-^roپaJ[qP+al/+6S#?f8je3Tͷ\qVۭD-H-+wVo7 \‘lUȏ/=lUcy؂+7 {?ne 9%w/||ڈB6Vj`kz} rTZ%Vٲ`| p%I[>A*9j|X(vPSps>)9\pcf{Ug|ËRԘJElVݢŦV5b[_6lsh r>`Wfv{yveE[8[{gxHI7"L8f3=hۢ[ Te-a`;_ ٮLv2Rj)v_h.n׊Y*ڲ˞FJ(L, ^T9,d%ےl]˵'^{6> b 5wx׋8&&?_~:7w|*/XNw^t9Μc !7)gO`9,/8[,pT#2GL8, [ ezb\]vݼ--0(`%hKAF X bkE[ FOhmpBM慵č-p~/8{݁9ŢM8[ ክyVb۲c_[7dF5G3眭ݭ$n4 n`f3j},G/>'DO9{jpě9W,0}D.f[[f 8fIY߲ r9Xt+_Kl=# lD|}7EGt)E8legkoǽ-Ujl ˷gN DϹoKn) yV+mwx+o[]Y7t (6؋p"֌09g,:?lfyf+`-̶3!>S&oE\+5Zt3G.Yͩq(p5zQڄq(/`ޖjA~$ZQ |,Nx &܂Y-[p",(Qa[+ BC6."Bl.]qk.c< / tܨ8w@OYٱqb-^j7,U-xL](V1a!3 &;ɪH>-GU0ґvQxh 7lvas.O'n]|.&"q:B !#W3uzO?W׿؛Uǫs}:qգO8 q~g?(c?-9G?'*9 qgH+9qԜ({>oGu;wOU/8Hs:Zt(fe=a~FQp;I!EqdWgiGrƩfLQqy\mѬNٱ񦫊U!g)U9gUSPO;S?M(re3ϜcO/ܨϷ\"GۭC*?-nϔ xg)~Y$D4ɪ8=s,Jz'YG*^X? E٭%tkr42<  ܅b~ zV>1E2 +}zbzWWg[n8_ϟǷUᥡ|cK;eo-QEDP49pA/P42~'oh2Gh[(l.ސyjK-U1IV h=KER4;^mio!K_v(Y5%7qIH"6;(Tʭ%ҋ]!8ެѶ;(Л8V}G-̽yΡ7qڶ;8W}G˪;V}Gêh^mޯ^;(ܪh\-X ywpJ<;8W}G۪hiwpBI0ewPawp2UAQExi-UP[W}Ghtnwp4YAIUѼ;8V}E_MuwP4Yɸ;8ZV}E=1;8V}Gh[awp4εUAQf}GӪz|ROcx:u9 h{Ⱬ8EYǔC.Ŀ,=Q[Ɣ,$C=\? -r,$Evm3Wtaѳ z@故䨭!+VXG^ѺZRW,{($BLh, <5xIڙb1/ ^Gm1GS\7|*,#ф(.pI AyF0k#8j8H&KhXf[q*Gy߇b1"a VkV Y)n]Q%d޷S"W G[p-5tM(sb׀&nl.GQ !qBQt?ZxP1{!@K넢)Wq4.[-/E!ndk%U-KP92 7P@h6IV5ýjK UI6TQ80 FayKa)p4/BQa6S(LhZ)K9-ƥѲ$T(ѰT8 GےShSQip.]fU8 GXhqKcqɬp$ZCkz^_g}O=0 㧿<5ȝ nz3kn֨(؊N P~m,t >/eQ:6z[pf:Nz՟ Y,#ƨ#ظDb- }zIT̒{MԨ1؂HЫ[o 8T@F6'KQX`/\G1gQ5J6XRz{yT\6/rO~:4u lFr9P%5RX`35JseRX`eQ0}GԨ<X+F1gQ-5j6&bPR(*X`RX(yfنĜ& MES,ʜFTJuSʽhj lmؽljH ,m:i=SClN`msv9kKYO͉NmSs.e! jN,z佡x9ni6ܜنhq4ܴ QAEGesyr(%J9{˩_΢LWTY4kFoy2EQٴZeQp391dMl)9貏GCmYQ]5s63Ekj,*`Bvi&F՜LYϡEǽ0g{d_9J.lhw6Sv[_g6 F20Qlo S6VeG"j-lB7 3s6o'm;~;M lN0eN0gr9ZLzl'a9- l;ٰ`sm'HE-'i; (cc>r9[LYl'a; lN0eq]X lN0e#ndb&HFq6 =7ڦdT]X nYH nVg nfߒn}p :oMX5f5V4xiG6 .JQ.$F9!哗 T*;RQ!WEEkEڥ"v AcP7,CJ )B5h в8p(jh&%ɨ#"Q5'iQ>hQfg|<8䢢ssrh&.絘&Ӈ˽(>4QfZW.B]١' _([ /ޕtW׾{ˏ?B]hx.~Փ@h3xX 0s&Qp6X Gg"aFx) (.3Z?'l@f`,mkg-@6q [<Z?h\A ذ6 X6lA E?GlZA EM"qزp9 D`Ú"ygpb9$D`غƄp6'q ز&pւ)'q زd8k" `^B->Z?'lZb}[Z?6.> ވc ,fTz;-/>mKh'mq'i l]}H h\}[xg-}|'m q6'iJ h]~Ez lڑ,gESO`ز8kذnM=S#>4MvL*쿓W?%  /O_>v!oxsw~w:c{3tO1x;P) :gN)fT?֌ӻgXG3O183)Wf=źw'GG  DӘscaE#ScS.^s>J`6#3hϿhYj0b25zXXBۇ9Snzu+ ;<<Ǻуg:؟Xw.z_1NϞbp)<5(ڃǘJ>l\cS OvKO 5hT)}=l41K#NۧXF,E^ 3?=ϱjbǨf+S,Bɷ;Oha19vS,gX2rtVgX若2}u>*y^اXD%5桯g9)xckȶ)vSgX)vKSn'2F֧X=OWaͬէXMOUbm>ü]OTbu>p7RbqW?nF}o>.} ^&*ӧXO;Ma8ǛOKbu?pp7Jbq7>4L:/3w$< 8m3'|e$[7,%~o?}K*tύ= kK,gvd)kf9KѺZV[rl7ؾ.gvx9ٶ\_|M l]0E0g9[cLYlaȜ-OYlX{(Gv9۶LٴhJS6Os6nexv9ټmζmSrs6mm;ߔuyM lݾ8e99[kXT/a;Sl:e߽M[uRֻ8z_9X e-][eRւٰ{_9w+ghirWf[_9w+gn}l9v+gj}hW"]³1"e8ON=8n} 8ꇲW"'vEԨB9dw ?]/_~w ˟G?}x1F3Ϩ<='ޏ'?~3kNj%g!j5@)!j5eBx"g6ZWF|0dX,9 QqBYZcRZXg!gE=P +e Te@mr9,g!g-KBjrVsHY[9䬹琳д笌ET|̞CB ؍C}rVдˎ8̞CΚ:{9k^9y琲{=H^>{)m=U^>{)iu^F9l琲5}4 Yh(|wږ8Y!HOشu /Gj(|Ap RGjdd*wQFj{!2vH&FdcL ߏ C~i!+eɁe!K;S C5hcBǫf1ɁC{Q1~E8)b#Uy.iƵؕI;;b>Cyf_<'b.X1(V͘ia(\˟xyk5r+\剅 KE`qW;m]4F<6-UaOp#BXN`-w;UQ"}ؼdQ"Q2px;Bal'ގ(8w%"Lqx;BKE`s5Cx(ۧkL1BP1&ގE`!r4Cx(۬}.hE`!r5BӸ(nm( pBj;&ގE`!r4 cP8#@XV˜x;#@XE`!qHo{x;ȡecmZ_q#@X(^zSc(nӶ>v( æney#@XH^)8PnC[i#DX:ignGYt~.8֧̒栙juv[ѻBPCeh&MAr[׏M2pvd>&}m16QPjZvd>VpЏ-N2qv7Nva>R}>jZv98}Sp)I;{v;Nr[j}mއݎu8GݬNpoi=4 ߧ<ͫi3TB8 ;CL^ x3C5 ׎ڍ^>=T_`E;O/uoFϹ4)= 8|IYtyA^X2F{)H ~ݳ ?E=>"HI\OSX Qo"gY QK,gY gقU!ag1Cy}-x4#ag흞agQo>>Κc5>"aG-agͯaeYͰ=&`lgـqq<Q 8k8j (|}M8aQg-ae-3E3,JGGYD*qqQs*ϰ竚7m 8[o (|}+7{}E33lQ 8k 8[q*3l񪴽<+:>Άv/ϰK̰gY({=>"aG-ag-aeܷϰżv"r#>D@-N8 1D`-N2nApq;cډb WڳPm9S|uPENW0u}M}*ūۢ?/_PbݎY bݎK.^]1H@ƥ,¥$qwr:U3qQO$y7r\vY˨gˆGC.E~φ\Φݐ{+BS,w}!ѿ8]#h2ѯv_u"wYyC9˿) >ρ#dFG 1g!3ZYȌ \X[p38kېUJ ׆~fdUKY[K pC[`m,5~wsC?־C[`Q2z)S>'g֤lCNU20pgC[`mݜu n5~w C- n-7?9̥/֯DYs l4-n&~bq lc9afs~GJБ*}8kX磶acfݜRRE1 tn5~&) %,)d.$U% .$S L s,bm:œ5~$) 3)YHis7œ7?œ-0”:RM3qב*TL ,FRPjTؕfbHIͤ0g9Nߡخ ZRE^J P]ơP=}l.qhC8L?]/~ˏW@1[F;.&NPh3 `9Wr9ٞ+)e1ivs'Rٞe!K1;9ۓT,T=Id(E)7,RTQ2`z =i׺oLY`Y3pè1e8?] Ťټ;8I>;8k{lhlݝ W$#f] -ٲ;(aw6p6"ζ@wgglhݝ ٸ:8Zvge1~v6p6ٶ;( iv6p6ζ@Q̉ Muw60ύ ew6Pat6p0ζ@Y̕ Muw6Pbٸ;8[vge۝ et6PCgggllޝ mΦٺ;(Yqw6p)R#xB]Gp{;|Xܶ`qY可.{3^&o_pQ1qxp1q:~+yX{bo9ƴ ,_g[cx`gcذ l^c1qńQ%yضq֎1&N@'usL5&N`GYsL5&N`'mkL9&N@Y8kL5&<61q[֘8Z=41qט8msLG1%y} lZc1qzظ lYc8[5&N`'yl=֘8 kL5&N`Y 8MkL>&8kL5&]1q֘8kL5&`1q֘8kLgbܐ֘8kLg[c61q[֘8&!cff܄F^3nFI[;oEy`E%i":f0l]bZp M#]8yP#gz_E+]H{^GOW|{/_~w?V)_߳SJ;5ׅ8 APeZpJj]E."@Qh]CP`W(b8Bt|*L0K(`,r64uzBi0wǔ:oECw[(PI) 5Y<#}H8,̊ #6@As_h@dWcr^G5JvE1V]Qu8ɮpJ(1mnظ| lYc>){+f, a9S`)m(:1GW5S`Ytb(ķ5擳J;"3iAx1֘Oķ5擳]Q֘Ok'g{#f6xR1[O stE lXc>N_ _Z2Ɣ# Si+8[Y}PaW#/EỾ~ٳ{a]{3;-OA ny5U`׀WMk5~8Mk5gZ 9 lY^9k*aؼ l[^)Xrx4 h]^9k*q xزr cҏFdbE1釳I?Qlaܨl0.JF#ǤEn,q{5 EiEnQrhFoGCf¨I0jgQ|;(,tpfb4J5i6bIh&F Q J&?9Gͷ%skKk$d-#NY僡6iG!1)j#I"\QOf`*%C(XҾ뚁QSuCwhFaVn5hFa@Ġu!9p%kj ] YԄXu;a$rG=|*q`ǒ2:k?Ǘ~^<oE-yf3VDrފ oO+pEd`>W}bMb "zr "ǎBOhDƎ 㾣pN3q^%<gϭX8#Yh8V "ϭX"Mp+R5 "}nmӍϭX"Ml5}nI|(}4VUgmda#V lV lAۿdb?Gs6_21BŸp5H<ŸbbD?=/Abs6_31얨8:(H;P?#vc7(&Te^BQ!мfŁCsu#S Gi]K;YI2Jo,BDLq?. 2VTDLg|EL!gRJ_y(?W>kM{7zb {z)y) ,TdIg&{K!^r9 ,d,kDsQ;kTYQ;K6yHޭ3L`*=l8VUz&y l[ga h^gVg_gVUzVUz&eqL`*=غ:vuǜR|+yP%W9ԕE |O/G\8]oYX6h@/~7EQͯ M;#B:"tC(w:egCoLP4\EN0;BѰ!;BѶ # B4 ;!y2^kV]Sj kW^k?87KqVɨCGM;AѺS 2MX]s$>(Zwރ]3*+p:ɬ袞I S4ExPAÐTfQg]{3(vڛ^kʛMyCƝhyS4,ENrPHqP4 ENp0mJpZYT6,= ;AѼSm;.)<)3AѶ EjP4Ei0Ҡh $/+AѰ;AѶ u~2(v*ug2NdP4<ENc0XGq'1(Zvh) h `(f&)NTC9ske5Qgaq_n@% eCeЈMV=Kie2c<]_>Ǐc¶ٔ˞j.n1}]:v7S"c5DW7~5:|wՃyԹ-r6h2vksgJF{solѳ`9n>0G0@Yq8wHΖUYh#Ĭ9Kr6[X9I"|h6>(9nuֱURsl i0cvYsn~bJs,6Ȉ.sm8smEN$.sEbI˜Ȋ.sj.s-k.sB|t le.Y4m\`Ŝ/77EZѻ:2t Q۵{dts\`k]|ts6$6J;|']Xk:9 iبWi\`Qݽk.s]bt l5:K\ϗ.sEEې6oɕ+.sEElܷL>92X4VHeYH.sEMS8]朅22Xf˜']C31ɓG6y J ZֵɫtiX5 #r$ik9jF;{Ez&e!dR)S|]zFp#L0NNJ CL?}/_߾>Զ1ږxrW c$;?9vWHdgne{Rw;EZw$;8[0MEb+S^7/gݑ,d,h6FvHWߢ ݠٸ'xig("QVCO&$upB7rmylޙf6+%ew8oh`>D\, QPda[]ؼdaZ@ /P;C",dA0-J"K$ CڢX-%iM~n:8[oGڎʚU?Wf4YLc:8l~iƴ2; 9"-Ha:8kE6m[5%hKwy4$Fu7 l!$c#YdǴr~n l3/I;;$?X$FuGSֹ[Gw4g kM^"AdDzd`"i΢gK:-V4g!ýg3Y;e*,[9[% ~b4{8gw8E˽kq5W}ص $_3 VℯewuǗOzy_^>|}>^ۆJx3n ǘKslFF59v>Csi6!|8_IV44>F`v+9k;|si61F`y5k̥,NK# E#5lEY1qph?si}.Ly\n̥X,\b̥l@z/X!(,d䘻Cن;m}.khDpm/3hpK#hF3\E;¡8ێ(͍4k!ŘK#G \ڮ\M8%iƔr*(fVP.=N}5}X&x8="˜E*][D=z(iM bb}lpLa/ #:i{irM3qdɃiIh ^pB,pUfí(9p8=m5H{,8:$.(Z,l:!r:~gҮqꄯ ګoq\:::}w=qٯx'P8lXzެ6}ã,ԡf*gz)gқlp\MKoV`|;n ,o9پJYDUΆ%8+y l[ERhr6-Y]pPmKpV`,f'+gزg))SpV`| (MH.KFPx( y{gQ0Z)P4{gSaߡ,ԡ[{gQ0[);Eho p޿CYCWw8{o}޾{g;mw1}}ʺ{g;p޾CYo}}޾{g;w8{oߡlpvp޾{e}w([;pV=$y aR}:]v֧cq=?+O0\ǿ}x} Rʏ!h.>cVFg; Y ƍBKԼY ō\g!(3: ּY u^笹!t2jK*%$ #hK,-.Y&מᬭ%Ĉѳ?kYj5W$#nk%K&FzEh^21ZbOqGOp9i&6 'ܸxh&F+B57.Ip'8>4ZVBOmhƬآv{򇳘f`4"zw^DžCB I`-U20b9uU`#+!3 "x'A[ Mk>ͷ2֢ғ?`$OzkLtdɁC1Z5a3 , ctLEg`!LN$F?gщ06Y5c6g,:0h3 V^}{E"0Uf,\QÈQ _QFVWb]WW?|/goO`_?6%.>-ScPI7 KeN`X FҍO }#&кI7B}'¾tX FҍI7o$^t-q$⾑tXKf(hH l2g'ւt,FM`-I7 Z74sVpP]Ŝa[ʽBwkhE|C3G`-9E{X9kzKC3΂# oh:p[C3G`mp—amhp[C3G`-9k޻[C3G`m9kA_(tfZ74sb*|'[b#yg9vfm".WG;t( p/.gtKᗯ={ə#Tb<噵('ՙ䬅9u-65G2+5 )^2zGY{ r6 | r\30qx%`-L^2`?4#fVڗ,=,a l^2Gۖȇ%s$mq CH`Ӓ9غd8ݒ9ظd,#Κ34e6,#őlڒ99CSH`mhYqK爳 Gn^>t.#ft6.#-K爳:GΑs$mqs$i l]:G4t6.#-=imCH@9;Αs$y l[:G~ lZ:G[[:GΑsx,# KH`9ضt89ش霭K爳qsZ:G[g[:GΑsz,# KH`9ضt8CH`S9t(s$q lY:Gy lX:G[g1u4,#KH`9lKH`9غt898u,#blբ5ͽ+m lkBU,,m͈,Ɏ!֔Xmפ ruC3nEo%WV_E~κV!4׿ppf}o?gw TtŃ?Go5Ecdl|@.w h{ Egw1m]@`貾pw>. {fG7w>*}Ǿp}Q3p}7E'}lY([J[փ΢݃-[صmʗG;O4M=pEdJ|Z)p!V-S ڂd`Ehˎ#g]?+7{c8C20pg=gp lyg8P6I9R#z)/&J~ix բ&㱇 Eǣ]`7<\觹C3pi5ڬ=\yLΎ.ki|hl==2,zfGI&~ZxS> | &<^ȧU" I Y,vTEغe9ظeLAYc lX%(Yȧ AYMfF`lvKPV`زe9[)(+q le"FJaɟ/{L)8XJS*`do5 VV>uV!ߜ..pݗ_[H1 }yvo8{3yXg־3mDu6xg [ܭX= gІ0Gc6 Іp!W,'a6MwϗP4C΢DKKx,E|%#:KFhY=_&tІ,qW+ΒE3,ZKbf(pt}%Q3p #Ѭ<܊C3pmCb m8Z{yhjtBa=Tx_ ;RxhEF|!?~W?|;*({ysng-;2!h,C:a&s9!P d42ELh7FHp%SeC-q%s,dcI%s4,d%u)IhZ*K$/d%Ѻ)ZHh\-K(  ]syi#s-id6902GEfh Ke"SCqI"s,Edp"s4,=d%ѶԐ)J!Ѵ9Z2EQؕ92GA(JY 2GRAh^"mK(Sm Se,Sisi% ;LY .p8b:OrYǜ\FU˷kmO_~|ӷ.wn>?1$<Ɔ>h){-,q/ǜEKY|'6 siQٲdʦoټWeζ,S6.s6u̔-n/͜{mlً3e1'|Μ {yl3e1.iBs6%m E-ܔش$.zbXTl\[D=g$6LzK^`ے,ƅO,Φ%Q/uIs)Q/isvz&$6.z-KMpS^`ض$9[X69Ʋ(mPʳ̓e 1,ќE_aCM,΢I;JᎩXS-KN,΢,HE-jYŐt J8ղ(U$-Ygeq"ʩEpP5%}eQ3p@_S?vلJ-;meYrqP wL,΢i&NZe3º" C-e---^36;k8j!L+!&b쥺sCl+ոMug|x)7{_~|)\O]3W[zI+ql\Jp+!a+!m~+!L{t9+ۨY8X:FpEec4Z:Fl6iFQYd!"fd!.Dxb1E`-fQ81E`-fQV1b1E`mQ4"(EU"i lR D^]1E`AX۷h΢l l6KAVQ-DYhMKQ`-fQ82遡lFز1΢lFذD6[91E`A<@mK()Q ׏77=u)Η]{x?ΫF,^TO[M:|~xyN/'^Y؟{T,Ƽ8gSozUو\iogӪغ190mlZ՘[W5&g[՘W5Uق7L`.@B7q3^jg1 g-mQyr_e8 %ŗݏ_*^w?"]%~#ݏ{w{&CB^٢d`D!ܡeYK[,UQ.b 8b.NYK7D101!<\K!y.(DVoFvHCY {EfN=?x k&FMfuDž qƠٽ*Ee&c 2Em&%fmkS؈!{}f>wL&h,pc*$飡Fyn}r{mkg1eވ:ݽwL78pRU¨LErzǔQKYC{fmz#I\^31:LRwLkGqBk]G˜qS5&>`W<`qto}V}o׏kn|g5u/>ٓ?0N/Gm ]W` i͇\UokuY[v}o,joX[v> Zo, Ro؈ڊK, 5C9} fgm=F(hȽ]W`mfa4&}4\ȚQВfa3ޮng#&jk&ζ , jL\@Ki&.栧z_8A"^F| ,oڡfb l"H8FLg f Hq6%bdoolE%C-'lɏg?E!c #AقyښqN(V](R=B5b^zN/jZ؅1Wx}LdWFec/X~u}n{"˷>4zmfw pNl f1Uݽ@`Qխ^[6X49k1LDK{+K1L$m%(n'A @`QН$^5 (,XE4F ,*f^5({&X9M^;ܽ@`-DE3I3?i&؆P)`{o6!R 1h"=b&rkc4e{3F lz3Fq'c4ۘ(ID+I;{h"MzNhgAM$bYO״(j%yZ l[VQؼ-i+΢L{h[ lZV[guy+KJ`k5>=yy`=y&)w`0v~xyu{nLԋOLTK1-TS1U@RL嬅5S1U`RLؼS)Ú*a) l^ۦb*G_b֩Qbƥ*e)rԇbދt9bދt)ۋt^r^K^;`8{Fjt9{Fjt9{Fjt9{Fjt9{Fqr^{.e_r^{.g5}U{.g5}UY{.e_r^{.g5}U{.gw.E_r^{.e_r^7gzmf\@ŔʽLu :(+ם ^Ͽ|}Ï|cG>駓v1YhdMurPڋ󔃳qrpS"Y &*+S}ٴO98[)eۧerP6qrpSO98)g>lۧ trp6S}A)g:h٧ grp6S}ٶO9([>lާm딃SΦ}ٺN9uٸO98[)e-Y yrpSBVxrp4S}AYr)g>l٧1.> h?/ "mg/5gmCH`K-RSrq( lD',b-l(wy( lXW[E"M胅*P">XX$}ms"hz(qv0րX$'J N3mwy( lBlSnv28kfEkuczxmnh&'J"4'եIX C Q@@0`XL U9lz|LT-h>Lr1 n#P],:z8kt7Q4Y8XHەkt=XL}TiwD}LZL=j&D%kAuhSAdl1uJ!yFl[!ǵ{i?{Ewb_Wgޚ+=΢F gCvCz1Pbi׿_:~D>aU0о5al4HL4uޣڳee^,:EXV(-ԝ= Ayv2P">BfS(%`sq2F g(je`^ lpίOz> hald`Zݞ Փ>O:< }6C0{; $`򫥓ifNfOaW'8yN :8 j$E̅a5m20M}l~j20CեD}z?^!T\ ,`9ՙTWO&j$$yb2# iKFMp}`LJ9 :$yeOH>yFqZ4> <~wcAb{bνtlOQh7&BhQKO׼?^h-uvuю1C˜HdFYc,bұJSCX`ͳ[W{6g:$!j_9 [v؛3$X9hu,HK&a,KY`ou=zY`R ;gf]%]uf8v,򜵨67v#]EY( $}4HFYҮ, TeWW4 CoB57vǰsBX5 CGߜE5 C@蛲w 蛳7g{Ia 0ؾ=@ϒT!A(Vo]# ` wwHdZ״kGZH=P7li mRQVAvm\ 5xHef2XHeךXb @juwˮPw742ZYv-pdKv,5UaJ@b]sϖε)mW}Q6a4 endstream endobj 927 0 obj [ 926 0 R 928 0 R 930 0 R 931 0 R 933 0 R 934 0 R 936 0 R 937 0 R 939 0 R 940 0 R 942 0 R 943 0 R 945 0 R 946 0 R 948 0 R 949 0 R 951 0 R 952 0 R 954 0 R 955 0 R 957 0 R 958 0 R 960 0 R 961 0 R 962 0 R 963 0 R 964 0 R 965 0 R 967 0 R 968 0 R 970 0 R 971 0 R 973 0 R 974 0 R 976 0 R 977 0 R 979 0 R 980 0 R 982 0 R 983 0 R 985 0 R 986 0 R 988 0 R 989 0 R 991 0 R 992 0 R 994 0 R 995 0 R 997 0 R 998 0 R 1000 0 R 1001 0 R 1003 0 R 1004 0 R 1006 0 R 1007 0 R 1009 0 R 1010 0 R 1011 0 R 1012 0 R 1014 0 R 1015 0 R 1017 0 R 1018 0 R 1020 0 R 1021 0 R 1023 0 R 1024 0 R 1026 0 R 1027 0 R 1029 0 R 1030 0 R 1032 0 R 1033 0 R 1035 0 R 1036 0 R 1038 0 R 1039 0 R 1040 0 R 1041 0 R 1043 0 R 1044 0 R 1046 0 R 1047 0 R 1049 0 R 1050 0 R 1052 0 R 1053 0 R 1055 0 R 1056 0 R 1058 0 R 1059 0 R 1061 0 R 1062 0 R 1064 0 R 1065 0 R 1067 0 R 1068 0 R ] endobj 15 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1069 0 R /Annots 927 0 R >> endobj 1070 0 obj 27909 endobj 1072 0 obj << /Length 1073 0 R /Filter /FlateDecode >> stream xYn6}߯ u&ER"\Z8A-7ٕ:nCWR@mĐH9?S,TEAޯYn"A1ӂ!cRpDιB{cR)CBnlwúCA>~7`W[ x~vɄ[M1ͲNkL'zu"Je! 0GϞU7Ogsb \,$+Ujŧr1/xIʰf\`9PLa!y_N|n<2bĒJ)c*Y):)7F-(W CPo3TbS\N%Jq ĨJOzX&#"= gIt7BF[l54<İH/Gk 8r:T),#p1) 2eOUm.5uer+&B2mEp,p宼V57$I~&]Q'Q('+8Qn8E6+}0&BZ3]j+t TI郍hf]SmA"5,"\*%z' Ehܙ]/$8yh_aen \Ģ#E"2d43K^t0FZ|#rk\^5Ȉy\ p!"-Y3#'_l*sX,t_({v{vw?4ٛh몺sq}W֎\ UYϚ`輂u񡑟>]x.|zH޶~XT?wqԷcǡ s׫g Vİ`VѮ5Xo+ܟ!hvUN8őfBP9ȵ8q} gN`v 4zR r 0t *S^4f)KنoT /+3sXUCPb)щI/^TLs洌$xl{̛r 4b}*x%xJIJ/x.gWpc ^ ~I\Q=?Qz2sHkI aHZ2tI_8}N#F# +  wGv}> endobj 1073 0 obj 1719 endobj 1075 0 obj << /Length 1076 0 R /Filter /FlateDecode >> stream x\ko4"ra`p8k5>$((-%KnId#8Tԛ(a/ xD}*drJ<1"ߝ7aUiMy֍]KG48%!B$B9wބU5Y7ve t}IӉЎ¬ȡ1Ms, ӈniދģE{I7ۣZ "!Hlmc`Sg:&1oԷGE"Aˊ49k* :57bBjUqpu;BKJ(ҢJQ/W/՛W@Rfk&çVmhJ.Y bv U򣽙K7cKX`\!NCRq a?T[/㱪T^P\C@0}3l>T/MܻVng-5E! ^рiAx -l|\kz|U: p|$MḯUݗazݮ;Wm7!çNOekN# ŷUYwߨ] '(u.lA~<| WMߴΧߵn+:o43mڃӌ%?VԦ)GIOW*uV(pգ cnRMEX9ԉ۲=0T!]!8yAS1z.2cf1}֑Fes`TnoLop%S*9u!|4fmYnǁ)0h8Q@hH,,NiA#}PN%|('zQTX TXAM(ktO?\ż!/ ຺U.TW& nO(Q_WAGWQI\%quVpؽ>}J!bx!㧘pjjߞ*=Z :7*%7ISJTF*(oF*8OF*s]: WbtQ-(_FS&Xҭpɭu9\cgg'7e:b*|X)C))<(C$2~%%xZ(D,02GFyfEjg3t:!E43yGxTj"OJ*uԥSAysSySAI }tD9\*(po<TEFCV %53JR ~yV$?/LXԱu;NZSN}:N㞝}B~O:VbjOh}l킽tQF/^ EfؒW u4߸5֒'sC)>KsYW@hcn ?cZXbk$r`!γ^ ^E{UԴZͥa~ub^E-y V'-#5D¼9U0bcj^^C4Ru2Xdub:~aziJ"h0^ FET!PyNBr6h9-qkX^ QWes"b1{۵1"deq~3MCi/O~7UOũA=% c(uF3qQpGA ̗ÅwsL%l5FZU 5[m8&mgU.ybS& [d".K#.Շ ʛ Γ j".}ƢY֊J{ٚ&Ń)o3 xʆ \[Tު(_ު8?ުo:-9]g<&j+lgflMO][jg~6 lX_OP눪a Ik(3{Fr.dla԰fp#DvutuɭaB`̈́|vl~`ߍbu`=W.gJ+(Y<'v^bxuJ<}M'.Dj"%~*^#.Շ ʛ Γ ^q~\aN͈ bd@Nq]m~11;U)\j ۪:-?N7OY3?NJ [][Kn/8+~xmapWYbQFǙby,<  닦A)P<͓ O%MydfyVgo.7myunu!;%!(kx_Eɮd Qm3 'ȻZcX\} l+s&2ءĢȄj~_DސZ endstream endobj 1074 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1075 0 R >> endobj 1076 0 obj 3230 endobj 1078 0 obj << /Length 1079 0 R /Filter /FlateDecode >> stream xYK6We4 )"yC 4}&)i[-M}E"uf,573!G!  !d{!K0p%"3cr*sӄ)yXCֿE168~K0bQ279(y3a)bi"b9FVQBy$${HP g4 |{(Ϊ^%$?m{(MNdͧ1ڀ*樯oX.B}'H5)%RSD18hZdN= 1Æ ̹XY* \l6hi2*S-9 CAGWǰD,W IIdI!8ƦZxV NRFsZ&x²"L6s2\ -,c:q\&[ >~ɗ &3HD,0DD3 3ڱW],?fLnaTka;1hjQy#+wD}ѝ6"QY/\Nmr AU):}SGۮMR7$bvY,~Y$~GMSYk{8өF0w&)L]pbR s@O4u,>ͫٱrhZwA-EAK%Rʌwlk~.ptp3nWk}~żN($!|юZ\xV(Za~?J{g{od90\1Tr6rՕۢ+j 54Lџ)}y66ą[ɦeST[PoJAhOloh =WƩ#mI/Je}ӷwE{L1T+nvZO5Ih24<)H #(p>򄦧=PVa^'2rS]hu{REH˰90nԋ_vW\%t=H ėK4GG] O\Ku o|aNr*n^wzr\/r}w ,zd\+% ,9g8]qHCC'N'|K8]qR0Bݛ3f/ً-3*پg s*vMEg?^-sx<*{TMBK Z @L8'V;PL@&=;SW;^h3%.˲:Z.`ɉ_h}ms^MzݝRo^&%geC%> endobj 1079 0 obj 1932 endobj 1081 0 obj <> stream xYLA񤘨1 F AAAZJ"1_Qh<#*F<+(&JAt{mv[&@Cħ/0O73$<;=6[E }q|QjplprǛ,W+{S)̓[O/zv|V/c8h}-r.0/~TB"+(L ($ՏeZ㪔[pWk74fh٬^vcl?$:6ʜ|qȖK_߇QO~錥QA@ f%ЈToB L9:%$|Η-=>+5c j8qH"M۔IiVgMhg'7*A uw/'3t|. ׯ65 ]i(S#wYt2Bc}וA!/#5rPLUiT=eC*ߚP#ʞs@ v\nH6^iSp@PD? ,S1r\0eoyii)0~LcccYYYEEhI&K endstream endobj 1082 0 obj 848 endobj 1083 0 obj << /Length 1084 0 R /Filter /FlateDecode >> stream xYmoܸB8C \hR$E){)qm \n-{j%@$FÙ3C$&_d|ސ#I8A8 a> aaQƊd(&yy"G:}β]ۦ F|ϦRc}2ҝ~zc4S~U UӘkc<ףɥ_SJ˔+T%QjL6Uُ)S2H78Raw `Hxw/t~޼]H&JV|!hzقVm|qJwJk}7V00vexX(,4 f/-FW_}>ֽkҦʇ #C`y ;0{%juWRza^ǬO>*cmb3*&e3h;U-ap{"mXwSS9>ՈA.&ގ͋vDeCŐC|MȞcFw綩7spKec8[}ΧL*O3P~(ȝ 2y= $s $țIIb8Z 2gvE P7eqL9]`98 NSEIBrB~'+'ex.%X4J7 V~$G DƞWҩ /ޔq7U{:1{uՀR E.kg6ʂ(4 /P,w;ښ#l%>[pXB,hJ,Iv)?(f:юPh-rwNDZnQ+Ӈ]}4}w?]P[-'άig;juK+]1 Q>uaL7A_չӃ۱L=]CzN.n?obE"W Tr_&ˌ7 #tÛ3Ńp(|1!;r.qxKm9Ya5ČYBK\d'Vm%$U7:s 'Ӥȫ+!!J/VBJU+zI a)Yj v{4[7]> endobj 1084 0 obj 2291 endobj 1086 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 662.884 453.333 673.05896 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.onjava.com/pub/a/onjava/2004/09/29/tigerjmx.html?page=1) /S /URI >> /H /I >> endobj 1088 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 636.485 420.608 646.66 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://java.sun.com/developer/JDCTechTips/2005/tt0315.html#2) /S /URI >> /H /I >> endobj 1089 0 obj << /Length 1090 0 R /Filter /FlateDecode >> stream xVKo6Wh!I (nS hMc\[ڒ+)Jԃ ďÙo$E~o(ӜbQ9&%ݤHPLX(TenKL$#*icXXa;ۡ"!gE tN&J&;O#̸T0B(c:`9uZC }}YⵤؑyQV/. 4HDA'lѧ?5?Es>C \c4ajc:@X]t>%eia]ΰ4 T+1'a3?#'6CJ[̥;ZXSeL:>f.]2e3rA$$; u:=<<%`$)\l 7F a.![v A`)nj1ʋtvg襉הEg8%B0b2Aj YF" D|FW>}>&w'&Z!j0;wټWn|E~VIܧ!cF|+va\'ƎX?Mo.wڔغKΛf_U37{MY*Oyz 8.TIݶ1 ) l+mP{1+ho"6c[ZڳS233 ?jv aLqn\=kvI;$`@ fq(b 6TҷqnkɎ!МqNGN=CJlHp8a m;tFxR.ѵۦ,w͇W\ n6?X݇?FBL7%\VۻNƔ5Q@o[x[i+TVMVlZH0ݦ3W&{3 "cX1#yfL,1̮iN|>㲰0?:n26׼9~:-X aE^L`gU٭RiӐ Ԗls endstream endobj 1087 0 obj [ 1086 0 R 1088 0 R ] endobj 1085 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1089 0 R /Annots 1087 0 R >> endobj 1090 0 obj 1034 endobj 1092 0 obj << /Type /Annot /Subtype /Link /Rect [ 205.415 761.77997 344.818 771.95496 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://localhost:5080/installer) /S /URI >> /H /I >> endobj 1094 0 obj << /Type /Annot /Subtype /Link /Rect [ 512.667 677.57697 540.189 687.75195 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://red5.googlecode.com/svn/java/example/trunk/) /S /URI >> /H /I >> endobj 1095 0 obj << /Type /Annot /Subtype /Link /Rect [ 112.223 662.178 336.601 672.35297 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://red5.googlecode.com/svn/java/example/trunk/) /S /URI >> /H /I >> endobj 1096 0 obj << /Type /Annot /Subtype /Link /Rect [ 352.496 662.178 537.758 672.35297 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (https://red5.googlecode.com/svn/java/example/trunk/) /S /URI >> /H /I >> endobj 1097 0 obj << /Type /Annot /Subtype /Link /Rect [ 112.223 646.779 184.36101 656.954 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (https://red5.googlecode.com/svn/java/example/trunk/) /S /URI >> /H /I >> endobj 1098 0 obj << /Type /Annot /Subtype /Link /Rect [ 512.667 621.976 540.189 632.151 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://red5.googlecode.com/svn/flash/trunk/) /S /URI >> /H /I >> endobj 1099 0 obj << /Type /Annot /Subtype /Link /Rect [ 112.223 606.57697 295.032 616.75195 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://red5.googlecode.com/svn/flash/trunk/) /S /URI >> /H /I >> endobj 1100 0 obj << /Type /Annot /Subtype /Link /Rect [ 310.927 606.57697 526.758 616.75195 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (https://red5.googlecode.com/svn/flash/trunk/) /S /URI >> /H /I >> endobj 1101 0 obj << /Type /Annot /Subtype /Link /Rect [ 158.082 119.53 335.985 129.705 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://subclipse.tigris.org/svnant.html) /S /URI >> /H /I >> endobj 1102 0 obj << /Type /Annot /Subtype /Link /Rect [ 116.755005 69.92398 476.246 80.09898 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://subclipse.tigris.org/files/documents/906/43359/svnant-1.2.0-RC1.zip) /S /URI >> /H /I >> endobj 1103 0 obj << /Length 1104 0 R /Filter /FlateDecode >> stream xXK6 W蘝|9iMMIMȒ#ɻHQ%w=u2IH?$?IHP$"16ŏi?) HH̺Oapa*1!xל;Cڏa0X}iQ,pn+l 0}\kMZs{N1NP =:|`f'"#L,Diilt"Б3`=a:}?ABaGS,0U 8 %LzN=x>b4A `SաLx\ۦc苫} ImD,r& ˻-  vk FBB2cP8*xsR vba>+6 v6[늹ƃ$l(6`8-6; %_&Nl9A"ah L ̷ *xۣ,4 'HmMC;G+N8+:~cy[I z#ɀqBipX-j+Op'CTcpn<+dh'aS;Yb#r'POn8C[(|t5\mN$*S]l<h%W'x[\TBKww(z%!tp6V|]5 F9|FuݧOkP}䱬ʣE82?ߥ&r2>Cqct֕(UZ=~ /"OH[}\zsj#=-]wPQ82+{AkjTV9}s=cLB%:}m(zݎk т9UMrsR쩗Gː1.x\.JKWϢhgMʕg>Pեi[ԝ endstream endobj 1093 0 obj [ 1092 0 R 1094 0 R 1095 0 R 1096 0 R 1097 0 R 1098 0 R 1099 0 R 1100 0 R 1101 0 R 1102 0 R ] endobj 1091 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1103 0 R /Annots 1093 0 R >> endobj 1104 0 obj 1941 endobj 1106 0 obj << /Type /Annot /Subtype /Link /Rect [ 150.371 729.19995 362.539 739.375 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (https://red5.googlecode.com/svn/snapshots) /S /URI >> /H /I >> endobj 1108 0 obj << /Type /Annot /Subtype /Link /Rect [ 230.22 319.279 258.34702 329.45398 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (nullchangeset/3197) /S /URI >> /H /I >> endobj 1109 0 obj << /Type /Annot /Subtype /Link /Rect [ 264.463 319.279 359.855 329.45398 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (nullchangeset/3197) /S /URI >> /H /I >> endobj 1110 0 obj << /Type /Annot /Subtype /Link /Rect [ 164.187 303.87997 192.314 314.05496 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (nullchangeset/3197) /S /URI >> /H /I >> endobj 1111 0 obj << /Type /Annot /Subtype /Link /Rect [ 198.43 303.87997 293.822 314.05496 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (nullchangeset/3197) /S /URI >> /H /I >> endobj 1112 0 obj << /Length 1113 0 R /Filter /FlateDecode >> stream xZ_۸}H.-(殸C- ]%GͷP)R$Zotpß <9cq펛oQ]6J)=$!&q6-hѤTB[*j\/o88}6 c| /}2zw屝>=jW U//?6ނSR$(lZ1Gh}:ŷG.Dy1A)$q"Ə2kE4X&,i|NPy7Kn $91㜄hRMV1LQYrKص 6O2-X܇ţ$A4TDPBMYOQfh"4iOi풜*z .E@sk4VÏa`SP9G)!1(S;̃f=wr[-%ĉRƩ>EPk즇1^ ~i|PTmEM &PfH7cE4")€66Hhԕу3 m9m\XX0˵P*,YdL0$"3[8Yl.' 1dd\x3fz8hF:ԶDq̖8&ʳ|TqL R;=~wЄuO|H5(X=.cG4Sr'M2kUB)y zfZȒ;,܁0-pqt?;3آ_xgb.IaiBi_yd:Z=]@IN4XS(iV/Ft7"}^=+Xr* Ǫy#JAY9 SۿD0}TaILPq@px\.sc 3Pv9*QS'l~v,˥Js}6 p!,2`R`, >f8FODY""J\n5nMj;D`p$sLaFqOu[Kv] eV?V6,]g^tS 1To8 |h뺽^+to6c9 ќ;\=QE0Qf3ngV7m ht|› mΎnBpoxdr 5W:X,9xsyC3Mt#I4'ndߨH]gcTyӎ/#4&5uϔolv0%g,7/ BVC =8IeéLٕPt)oU5p[5PԵ.qm ])©??E-y NOFṶv 蓮P΃طl͇uϱ@X}kigrtΫ4,+&0}N#cxs&R#s!Hu/`~v1A!͹wyIu8G9I|~"˸n[<nMyQgOep]%&0 J:6Vv<3[LAwrϻ?9A&.~qBS5Y-yg5Vq6d%P+7'xnq<1L۰%إ5=͠;K5 B* 6N;[+ 3̪ٔ2e)LtFsE h1k31Vc6[ b`&9'S rś0;~t Lt x;p^~G Ȅ{\%FgF`Piys&;Δ0xD]3Nm5gyVU0: dA(YQ$r4ҟ#\s?^M1Mr<.R"-rE7jv*R9X'M;uO,ֽޗ.P|q"3r[虗#K [O~:@ݧ{ueU[92u$ Zg.l|f} gdN?eۆdr5Y".vckUEmqT$@GMjqҝ7(αF%|/= L57Oe'kRK6'<5x,mjp+2Bvgަ,a6 _urj\޷ƙ-d)2 endstream endobj 1107 0 obj [ 1106 0 R 1108 0 R 1109 0 R 1110 0 R 1111 0 R ] endobj 1105 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1112 0 R /Annots 1107 0 R >> endobj 1113 0 obj 2578 endobj 1115 0 obj << /Type /Annot /Subtype /Link /Rect [ 177.26599 558.825 522.094 569.0 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://code.google.com/p/red5/source/browse/#svn/java/example/trunk/bwcheck) /S /URI >> /H /I >> endobj 1117 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 543.42596 152.813 553.60095 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://code.google.com/p/red5/source/browse/#svn/java/example/trunk/bwcheck) /S /URI >> /H /I >> endobj 1118 0 obj << /Type /Annot /Subtype /Link /Rect [ 172.987 515.144 519.036 525.319 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://code.google.com/p/red5/source/browse/#svn/flash/trunk/bwcheck) /S /URI >> /H /I >> endobj 1119 0 obj << /Length 1120 0 R /Filter /FlateDecode >> stream xYm۸_!_6@C)׻\S\!!Z[Ζ\^(;$H{/ $ rFPR̓aу$a&!"ae c2&Cr)}ًm^R=.eO/z>}#\V&~㏫0eN1Χٮ,h]CQ5؃{Z' !! H Þ0xH>]?fx6ũju9/rDiP<`XH֣ 9o)!N0ǜ!!ANQ&l*jC "&SK|o m'|ğJir"Lc~WW&&-b Nlğe2e차ɀCXJ'I )b\`<ا')eVoX7qq6vޢe(X|j1.6\1|͖ʅ(%iR"e=<~lbkvrS gcnƵe\Fk;K}wDJsta(ЌT #DdnE09$Ttb$deōVM`E[箪woOOU7v-4 41p4}sjBuwԲ/qބp}c["I(sd4mQo/4wO淹ُd)]rcYU~=ʸr2CP6^b꩹uMh}Hʌ,C)f h3AZVW9Av׵܎T5$6og|* 4z*CU+.O8ږ>Tv*bvKDX"Q'M*Tq-Eg8w&i}7_n QFf z0Ѯivmnם6e6\ X_q_OmSeж E2D%:{فn?,Ҿqy:]ɒ:G'}dJ!c3Bu7Z7 E]ċ6b@hȬShC+á#,a&WLԸS=a}6){-'jgg ERr1L^>6a\*2WrUr:q;n I603(;{rd #z &\5G.IH#Lޜ3g[&&$8Vk.kj>_*˄̝ Ep̢LLZ .gu YE6 .Ҕ}D09U>$`VJ٘ PHW)䡚)`{!EgHuX %3Mb0GaNG^[Fr'"16`uQ<-79b"-43ެ`iN^F$FLB2-rUsҌ3;OrO{:X)Zi!} Ur,fua;fQM^ɑ1|`NpU/$@$/"WǛxȕxj.j S WΔ;NMTb9ϵp}W>%XšS,E;.տ?k- ϔѮŐpIO!KM%g|O r&_HdBQq}f'^VSs IôSm񍴡4a!rZ% gb w ̀[ٓcxmK)j[s sX$9VΠd) JIN_.M))tíSq㩭rs[SSEvxggkBXp 1Hf_5B/_ "Bnv۫h1K&?SsxH~a?7D endstream endobj 1116 0 obj [ 1115 0 R 1117 0 R 1118 0 R ] endobj 1114 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1119 0 R /Annots 1116 0 R >> endobj 1120 0 obj 2318 endobj 1122 0 obj << /Length 1123 0 R /Filter /FlateDecode >> stream xZmsܶ~OFB$4}d\ךPwyQRL{$JwVj#]V1!S3 W O'z4G 7 ȼ)GH!0 039l4,=k sAf J7ar99B"f4,3#>3:coR")d`pLi- $8|3v 7%jM% a(42v ΤNˇ6CR-%Yh]XHex,odz '_2˯7#ifT?S||?y~,!w+בC\ 7 rzzAK㭄y]}Wh: ÅoE@Jg|6teyCSsHXT>; ou2N!tba.ɘ2}i[@_tmks5G/Hm;eóLV|HmOo}`NQd3i r6s+eCePgSFC)pd(hK3:->s|vҕxUU?u~} ;sgY~!w,9#\ ݖ?MK;s]I+TzpረY7!릩u0d)K!rkIfk뇮ڄN>ˠʨ(8Q޴ĄflX+t&q?=Jj1`Jcƒb:2 (9RLPJ2YkXe}^SLdָ[>/oVYl2%H(vPcGe Tlʼ{/u@><ƭ8`Qi->gT()MecKHZ2Y srjyvFKqHXbB5%/֛%6u7n]{dWBs{XI3(4/g{6ǂ+lLt_f-lD #;ܞEAu"XcyT/ͽʻGnI ,C @S=Edu ~!-E'Et>+:͜ \Qd`6˟b#7:Ol|#b 6`b!{ S~'E"c{k}>lW9p|`rYBˌf[-_A9+6",{ikֽ{O=D̲Lk^9A:Cv~?" endstream endobj 1121 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1122 0 R >> endobj 1123 0 obj 2481 endobj 1125 0 obj << /Length 1126 0 R /Filter /FlateDecode >> stream xZ_oܸd ÿK 4^{4F yWr wP)"%5&҈3pf8$>%O \f?'}HA,!xpb"Per\d<btF>qY;M:N#ܟXB|'o "b]ZuRC]yCC8yII.5"9HDJ>Ȅq%˿huu$8EQc (\ZX֡ 7i!vFy3ǜ0$x@(h/9Ԫq b4d;ΐO,FsLJuR] LisNHME'( V-:If8<%$A >Mz/ %*0Lj~/;%ֹ˿)C*{T}:P9YעA63G^e 7J➴ȆSSe#։氦65iG7Tb]؆}S'x]L$ͯb%=.6>^k6Ӝ6 Qha6OePgd_L¸:ګgQf]2|7Xd2(TM3; ey-儨WsipIwe2yIb1Z{~8?=Fp?ߖ g?ar K14!ʢJpo"vt!!+ko]\6%DRz%:Bh~Vmmb_\ao_ѼMu@2mOr-G5ԛ^S{:`<)X?0SR(MByg&rO,'Z$8y_ D_y能ڦϺ۲хD&CW#8We4gt=X6w{ݮ&rQgC`F!p!UCٽkQx0a`sfiw-=펲`8D-;р>C\.3.}d]`AmUἝ@M|GhmK0 >PS.L$.wuWw}SiM:/{sH ߐ endstream endobj 1124 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1125 0 R >> endobj 1126 0 obj 2729 endobj 1128 0 obj << /Length 1129 0 R /Filter /FlateDecode >> stream xYs6_=$nj榝LO`偖hKD$:n'$@$@їjⷻ0$kS dwF$a̾)2Ř'Dd4uI^ 1Xf7hM[%f '~#<:J[֊?>@%"bZn;hB_(ꐿk7ޒDhDk0tmr{ky|?"+׻x|Nn3"B*Le§a!Z6_ߨSB1BaxaHp{ NQ%9&j)G2F3"}p3>7} )"f1ZէICpB,s@f&:=X8<%I~=mb8+-#Esn/.Emj(ߣp|Ny<.ar mF y i0PsZ'g!jF\cC܃2$T x" P]f"?k-ɕԘ͆vmXL0o {psjdQbCC5w Ev5𜗗CUiuƓ}a+AXEo>rXfq~}~>dMqzKI6YH$6?f dv+.?]2E9xe^GE`nJic,薮v&/~&fA=x zڈFYU፨9+bMsPC{(ބ_1hNV㑲a&oX.B0=̵:!$t $Sfebϗ-yjV։icRbe$Rl8ɚR$U 1_L)$%~_ڍVE TjX`yuѽY^s׷}vȶG]62KtC>N:@O}"ی3PLγU7_vE2+]E~"D*;]r>25gfվ,zK[*v(+\'{:g~6Xs{i=\Sv\Eqp[e?q߻Q-=aX?6y]y//wn%w7㐉dq2 ?60vl;LrXݼϚ4/ Ɯ_aԙ`FuF4q,n"&=0a]myus[i<3t23.h=IgQ0n4H,dȨ)}UQu 6Ѓe# \z&=+}#"{[n? gɃڍx%,!VhB yx({n!{'LrjXKK+BFޠ^a?U endstream endobj 1127 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1128 0 R >> endobj 1129 0 obj 2244 endobj 1131 0 obj << /Type /Annot /Subtype /Link /Rect [ 511.71002 629.719 539.232 639.894 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://build.theyard.net/) /S /URI >> /H /I >> endobj 1133 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 614.32 183.40399 624.495 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://build.theyard.net/) /S /URI >> /H /I >> endobj 1134 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 87.267 235.33499 97.442 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://build.theyard.net/job/red5_flash_selftest_trunk_flex3.1/javadoc/) /S /URI >> /H /I >> endobj 1135 0 obj << /Type /Annot /Subtype /Link /Rect [ 241.45099 87.267 535.558 97.442 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://build.theyard.net/job/red5_flash_selftest_trunk_flex3.1/javadoc/) /S /URI >> /H /I >> endobj 1136 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 71.86795 139.987 82.04295 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://build.theyard.net/job/red5_flash_selftest_trunk_flex3.1/javadoc/) /S /URI >> /H /I >> endobj 1137 0 obj << /Length 1138 0 R /Filter /FlateDecode >> stream xYm۸_E/n$EJSzkq-Pv֦Jlɕ}JHyr!pf8C+(Dc$ Lӄ0Dtz2 c`ʓCC<'W}o%V '_}7 O+;vdf,GS #C|04,# 8i 472وN#ُ$EM8Eaᑱ\0cB!sL r>.wt&mKRZBK8Ȓrщ9x32¦eB,@$"+<<%DWn' `Bc8$}%m@S2ZybYzakѹ\ [c:v\ *wxb8Rv~](9k9bL,~ݗNlw0*޻^%?_uEԬCy|^…(D:]s1Ȳz@M=ViX43MtUw[U0ڶA>5K fSm+~~:7e/7z9j|TWU$:Q:JXvݏR7gX0hKM 9uUˇ쭡/2]ٸȦYX<$f/+=~לv}7 |`+]uj\X&KUT ߚ<7P≤P?713C"!Lzw.2ҥҙ)CTDpұ69^VmԙrPkK!g80L{FP/u X`Q><]Й>2Ժ:P1G vbJ. ~:y@A.}{HF1FV:0l7 `It]aa_T{2DgU, )n4`E!Y!)|5VA]vaR!HLBdH#LIP~zxS[(urj[zP%`ePp!;UMmPեYQV~0 G8/i`>SBeattl@ٝsKl9G\w^YJ9 Bp{Ҏ:Ulkq9[qo:\C:܎,>:/L` R0jq3sT;6pi\wǿk'NOm봳}˺9Ht4pe2Zv;&$P7SJ6 jʃl˰'K^y֘ auW;w節U?==9͕=`Ĵۓ {ZA{),SsW,7Ǡ#P'DtxRZdھ1^[J] !qv*9кR!O_mO2ߚUԾk%wsHkOL [XۉT*%6+'ą)?8Z?M=_>ύz endstream endobj 1132 0 obj [ 1131 0 R 1133 0 R 1134 0 R 1135 0 R 1136 0 R ] endobj 1130 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1137 0 R /Annots 1132 0 R >> endobj 1138 0 obj 2494 endobj 1140 0 obj << /Type /Annot /Subtype /Link /Rect [ 491.142 333.84097 523.537 344.01596 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://asunit.org/) /S /URI >> /H /I >> endobj 1142 0 obj << /Type /Annot /Subtype /Link /Rect [ 529.653 333.84097 557.175 344.01596 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://asunit.org/) /S /URI >> /H /I >> endobj 1143 0 obj << /Type /Annot /Subtype /Link /Rect [ 431.841 318.442 483.19998 328.61697 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://asunit.org/) /S /URI >> /H /I >> endobj 1144 0 obj << /Type /Annot /Subtype /Link /Rect [ 468.515 110.254974 580.418 120.42998 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://build.theyard.net/) /S /URI >> /H /I >> endobj 1145 0 obj << /Length 1146 0 R /Filter /FlateDecode >> stream xXݏ6߿Ic;}k.jըIiryv}=(٬?clC( {73?W>Èc<1ݿ;{G8= ?O$B80&OQDwks/(^n_G+v{`=ẅ́*w`Hbc6^1f Յp)o_6/}o?!pLx>=݋͊gS%{'PP0ēsZй ^t+&6 l1%#a=@ADHH,D0#qLK@<{ 1?<\[.׸äM.8.5cX_PCZ$\d.M.,%CFCP/1cְh%M!g&xü[xz}y*]_D1>/ NWp P(7yҤꬨz|}}6giDUmb=s+\$eyiy >68h82D>~I\71z@\cVC_B='B*QkZ=j[ .9p&[+0vhf*iyԡP&GhsSU_$ˏ'Diʓ-VDqfmne.ƃMyߞ rB #pW޷n촑]ܤ}+=j{ŏ;e!JCpBX+w#N69w\1t@&+ 'QC#$ly˳IJM p07CDյNZp,WAHP5+Ʃ* QLjE/0i9oo$8EkcRY4Jc9YB0]P )4!@{Zk,?)>': -rD>۩ץ1QaVBfs{Sf0`^4.t1\|2-ޛ8H$K ޛA׺XF}=L4٩-XCKzMͼ 3j(({/B=A ZzM9H>S_řzW6NSEF9tVN($Q3=9",}PNNA#tzBCؓ)KK߾9 Sf&T5Z]mg\%^ՖF缾p;g̒8˱eR'{?C4imϟo%r.idQY?XLR~ w:KZΨW^AĚronld(Wmy%iuAu:H1Gp=X ,6F{{[U>6,S(Rț]0s!v_yyc\wU3 endstream endobj 1141 0 obj [ 1140 0 R 1142 0 R 1143 0 R 1144 0 R ] endobj 1139 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1145 0 R /Annots 1141 0 R >> endobj 1146 0 obj 1930 endobj 1148 0 obj << /Type /Annot /Subtype /Link /Rect [ 169.33499 606.29297 329.506 616.46796 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://en.wikipedia.org/wiki/Unit_testing) /S /URI >> /H /I >> endobj 1150 0 obj << /Type /Annot /Subtype /Link /Rect [ 335.622 606.29297 525.141 616.46796 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://en.wikipedia.org/wiki/Unit_testing) /S /URI >> /H /I >> endobj 1151 0 obj << /Type /Annot /Subtype /Link /Rect [ 173.009 488.48398 198.067 498.65897 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://junit.org/) /S /URI >> /H /I >> endobj 1152 0 obj << /Type /Annot /Subtype /Link /Rect [ 204.183 488.48398 273.89 498.65897 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://junit.org/) /S /URI >> /H /I >> endobj 1153 0 obj << /Type /Annot /Subtype /Link /Rect [ 213.346 242.87997 238.40399 253.05498 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://junit.org) /S /URI >> /H /I >> endobj 1154 0 obj << /Type /Annot /Subtype /Link /Rect [ 244.51999 242.87997 311.169 253.05498 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://junit.org) /S /URI >> /H /I >> endobj 1155 0 obj << /Length 1156 0 R /Filter /FlateDecode >> stream xZm۸_!&^?₦\IPheV"$CI|Hy79 p{M%(282|$ALPDhDc%`N u;/r~/#78c`dy883s6rI8wUj\GloH@Hp.($b28Ox >]_ևwKpv[0BL3Ss꜖yF| ]5N\G#|p/ tr@(a))M-%Q k4eIc:lW1\=HXFịU}\= JYH_F3hxUr,C#f1ahb!v{+tƋCWg-=_;m:Jsf./jVv={pv95(.\K .u6-g:Bw\oƪeˊ,Xf2Q٩!THtˋc-*qx" 08[Bd{eދ}c^ q wɑr_e A0DY:*+%,ZdATͪL_秲*sdVB(Sݹ5:wYB Bfo]}^hzHJhoM"wscg$b|5Rqkc 9-tjr34JTޕ#F Il&HvI HBH!8#A˃"XU $L{nP̓ 4vd4zL7_o&T#gD/cd!$V|Ee ۪u6 =Àt NR&m}~-5q@OpHזV/?^1E!0Q{[ZEEI\_A%o}_Cc{\,ٝ*С Znu+D6*gt],yЅޮ0WଇÀ& %d끷Y;]`2:+57ݚU]wPN{4ni4qy!L)lo]Py3z3uą !TI^2pfQㆯ8m>졉jf'OtO!*o&"u$ԯ֫zXHT[\ئ? JY (/|EfFK>~J|*9cSY XY,D [@F:O "T7{!N;Z ԔzBSW _}sVCQȟ'Ͻ"kĒDĿyshG]խWL[ɕ>?߶ endstream endobj 1149 0 obj [ 1148 0 R 1150 0 R 1151 0 R 1152 0 R 1153 0 R 1154 0 R ] endobj 1147 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1155 0 R /Annots 1149 0 R >> endobj 1156 0 obj 2688 endobj 1158 0 obj << /Type /Annot /Subtype /Link /Rect [ 195.614 340.41098 385.155 350.58597 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://multithreadedtc.googlecode.com/) /S /URI >> /H /I >> endobj 1160 0 obj << /Length 1161 0 R /Filter /FlateDecode >> stream xYY6~_!XR'Mbgc$1#2yHioQzu*ꮯm`ј J)2i /I( 1"Y4S8 Jc92WI6ˉknQ@O,134F15dIc6->coܣYQH%cm:1K6񩙺y YYKe-zIy<ܴgGz#Ơc PdO]C%8MQײ iu풜(n<{Z-.ۊNmN%_V \QAJ@"87dpDޟy5o)[jRJ'#oѻ+J/}5JϨ??"b_ !&&&$K] QgAKE1Bb r4CY7xL0.f?(LOfEQ,%Kꆙ%F,2=GϾ {0Iᛌajӣ1μ< QqXgmģ)pRAI\3ه=L†ef@u'LI#)"2Sˆ7~g^TlLEv85\7];I~ &BY2C!(E RKW_Uf+MG)>MG^ŹZgn  Rx|QԹ=ӷW|tg꣮VxgMR4,ʇDzL xF0.ed`T$?۾QGOѺ֯ F{Qji$m𒌱dbg i bF~nHZ@YXNߔ,D# xÑ?E,p/'@kӟaQA#_F ]*X_ZE@&מK0I@`?$Hmje^(*AV֯i:}4y;L; ?g }b TuF5px"iwձͅF] I}zb(0Ef~ ׀X˅ˈ"ẆQs5Z'̹ ޶*Z:CGTP>8Qi -%[9Pxs<Бdt^ ĕG;7"︿TUd\UWyUuNL3/^K`TvnN[rYУ`yϼT=o+nȽ/80PiU]1'WC9\/jJH&G{lX%):Ft 1"N#?Ay7ذQ4 PǟPF;\X .e_W+J(P.o!̺Iڟ:CC'պeeƧ /aD^얲]w~}}}ꏝی]冂tR׸t6+!ǖث( g~g!il?On&zmTb%S5o֬2 ԋ†? HPح«lӔF Y㗙%ư(̷ W RL2”ufFfXY'Kޞ<7%8८L!y]ʟ :AZY`llO:]}k .}Q;QWA ňF]kPpf_'řPt2~׋,.jUʸ^r<,_ؼ-L hDJ3iE'iˆ()K+X?A|ד4`1ܕ\fcQ\҆_dz$PŅetۊOVj_n/>T]D!J*K*;~eao-*hU[0NB_39Lj`|;3(K1%ۯSW"5,TO aW^~u}{{s$ endstream endobj 1159 0 obj [ 1158 0 R ] endobj 1157 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1160 0 R /Annots 1159 0 R >> endobj 1161 0 obj 2266 endobj 1163 0 obj << /Type /Annot /Subtype /Link /Rect [ 226.458 359.722 367.676 369.89697 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://en.wikipedia.org/wiki/Integration_testing) /S /URI >> /H /I >> endobj 1165 0 obj << /Type /Annot /Subtype /Link /Rect [ 373.79202 359.722 505.23102 369.89697 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://en.wikipedia.org/wiki/Integration_testing) /S /URI >> /H /I >> endobj 1166 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 344.32297 189.52 354.49796 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://en.wikipedia.org/wiki/Integration_testing) /S /URI >> /H /I >> endobj 1167 0 obj << /Type /Annot /Subtype /Link /Rect [ 164.704 74.147 240.505 84.32201 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://en.wikipedia.org/wiki/Functional_testing) /S /URI >> /H /I >> endobj 1168 0 obj << /Type /Annot /Subtype /Link /Rect [ 246.621 74.147 467.325 84.32201 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://en.wikipedia.org/wiki/Functional_testing) /S /URI >> /H /I >> endobj 1169 0 obj << /Length 1170 0 R /Filter /FlateDecode >> stream xYm۸_(.w޷5)r@Ň ٦mʢuwhCJ(H5gѲ{ٕ1 Im"oI*kqVe$L |dt-{ai$4D7bf߮koJ?=U)^:7sm{}[6ԧ)ɲ]u7^WRvV]72JuDi 1!KX2Exnt ȲXvf{w,*٠1k)N۾5oD}_`|cz.FVֽ{:_ܴP>|#p/Je ')Pon̂|fy ] f>.P K(Zl\5e)SM-4η}'!km㻦bSi2RUe+,uQ7kb=(lcQjVΟ Ʃ(5Ph(Mb$[WXJ`@K iM3x*6Y$;D6r'&HڸEh[ i"=i,Cj g*F&iA7}d%9Hk(1R ȩY}oͷÇ}QECq>VsgJD4$bct?>EU1&sXUveJP֢oO+k:֡sR& њbؕ'I˘D4)  Gb8ģ h5EbQ6yzS[105F׶$%k|4Eakm0wP|7/ܩQg\h2K4Lg ] O!Z>!Pc}HWIJJl^dk 95FwsN✩/&׽Pxx> UQ-910X>dω'Qըr R֦y.{z Zprnr{+«dFP>N=_`8l&۟8R"R_\ 6O' endstream endobj 1164 0 obj [ 1163 0 R 1165 0 R 1166 0 R 1167 0 R 1168 0 R ] endobj 1162 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1169 0 R /Annots 1164 0 R >> endobj 1170 0 obj 2276 endobj 1172 0 obj << /Type /Annot /Subtype /Link /Rect [ 353.34302 750.70996 469.316 760.88495 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://junit.org/) /S /URI >> /H /I >> endobj 1174 0 obj << /Type /Annot /Subtype /Link /Rect [ 475.432 750.70996 502.954 760.88495 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://junit.org/) /S /URI >> /H /I >> endobj 1175 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 735.311 141.20801 745.48596 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://junit.org/) /S /URI >> /H /I >> endobj 1176 0 obj << /Type /Annot /Subtype /Link /Rect [ 317.846 735.311 342.904 745.48596 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (JUnit) /S /URI >> /H /I >> endobj 1177 0 obj << /Type /Annot /Subtype /Link /Rect [ 162.603 691.74 283.031 701.915 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://theyard.googlecode.com/) /S /URI >> /H /I >> endobj 1178 0 obj << /Type /Annot /Subtype /Link /Rect [ 289.147 691.74 440.177 701.915 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://theyard.googlecode.com/) /S /URI >> /H /I >> endobj 1179 0 obj << /Length 1180 0 R /Filter /FlateDecode >> stream xYm۸_!E4II~Im=I>^yD|zR"E׋ i4<>3I-?YBPesFQIi0g'IKDt\Y&DTFiHm/A~[U+{ 0JʚdnrHJ1&mW,dì!|QCn~K"B%18`}+P=n">}}ޯ܁$Cfɪ+ t]tB(&> i2& )b1IKPa|I&eBqe34x+"^ 2XE!8!3̵!jLbP4D`,$H1iDcql8a&xB9^cTkcm1l [cZ~\ 8 /,\0A"JCA"8"80"j|XͶc;1'\TΒ&(ũɃeآ^4/, xwJEY#My 5PVW v %Gs 4:GcU0ΨZ;܎Dvq|&GPr'~joSܤ!)b ~kuwz=yXϧHT)O:5b>d#gE,#yCx fsM z\7ߌCˡ`<2Qꐫ)c(4.dJ0sulyo}U1H+Ыd}(ʐ*ߴly& !( 7˝{|4ys(Zu1E2I)I ;s| C]?Ŷ/ж>zg@)LKXPD D5 RMi&1{&TW.m]U$/rMD2%16Xhͪ?4IJ'e HLw0X9{؇ɲFom*zSX+ 3ED1RjB\}jr<i GI~*t6񸵭Bnܾ)\{Ckko&֎uە;Lax iq6Q '?6&CvyYۄ΢U g#̒ 䶄=MA A쏡S8T%/)gP[lfXn[ n;˳*.bgx8.- j(0|c4ַ|_a9&sOrtHc`!a<`u%{9"`Hy S t c-UgB[N+m^vk]6@1g>zԜ-5L-ˮ.<$V-~.WљTЕ/"Īձ"c2 6aHE7,zb;M&ٵFXdķ:[n+Եs* }ˍKpm6(\|53 " ǥxk"B`q@. Ȣr٢wo`}{„(2Hd<lcԺUwMSb-^2֒lH8hF`k׍p$Ps5w:Q7ä㻪+]nSe) 5nF|mDbw`%2a|Ez{iOԆMC#?MHO ӣ߃3zJ5{>T $iĺ~ykR4S#lrdJAx^}mM*1I++/7"EŪouu4tMS_ȅj՛I^pePcuLJK%M :%/ $jM u j@3(A2ӧVqUC r L]ɍKxG* {')[C! Z0r(O/'JUDEDKUkRGzP%oz0[uʾm>l`C'^{usfmn؝Ч3ȻY"encɝVɚO5im3Țno 18P' /yma;<ױt'g.!v:Y $A>J'BYI9N5Bn=LnUSvtJ~ }T7EZ[}bEy ݝ뜖'oh(5teFnuw 1k?م<;}ˠ,Ri/NN&k#!1(%VTJ9yj,<܁hO\ȯsp%z9>'YI9ނ hpT<[pŋLB3[p{cq1uUs]rԿU}DE2{WpF;+iRU|UmU/zm]`em~jNIjsQݩ)Jh _Nt5~Xr endstream endobj 1173 0 obj [ 1172 0 R 1174 0 R 1175 0 R 1176 0 R 1177 0 R 1178 0 R ] endobj 1171 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1179 0 R /Annots 1173 0 R >> endobj 1180 0 obj 2624 endobj 1182 0 obj << /Type /Annot /Subtype /Link /Rect [ 146.103 337.56897 391.282 347.74396 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://red5.googlecode.com/svn/flash/trunk/selftest) /S /URI >> /H /I >> endobj 1184 0 obj << /Type /Annot /Subtype /Link /Rect [ 139.371 185.93796 418.584 196.11296 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://ofb.net/~aclarke/theyard/flashutils-0.1.0/api/) /S /URI >> /H /I >> endobj 1185 0 obj << /Type /Annot /Subtype /Link /Rect [ 424.7 185.93796 533.853 196.11296 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://ofb.net/~aclarke/theyard/flashutils-0.1.0/api/) /S /URI >> /H /I >> endobj 1186 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 170.53897 230.47299 180.71397 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://ofb.net/~aclarke/theyard/flashutils-0.1.0/api/) /S /URI >> /H /I >> endobj 1187 0 obj << /Type /Annot /Subtype /Link /Rect [ 432.862 155.13998 515.384 165.31499 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (The) /S /URI >> /H /I >> endobj 1188 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 139.741 171.172 149.916 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (The) /S /URI >> /H /I >> endobj 1189 0 obj << /Type /Annot /Subtype /Link /Rect [ 177.288 139.741 196.241 149.916 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (The) /S /URI >> /H /I >> endobj 1190 0 obj << /Length 1191 0 R /Filter /FlateDecode >> stream xZm6B$@W&%Q-%.EHB鵺8 ;*Rn/3<#W0seWx|CNBQ(KJL4>m9A\|՗x|bOlUs^} 06 Ip2o9-|sIb!Ѷ-ME qj[qpAC `XoY?T݋y6E5[pI0rezWۖ{M|;ߝ''|t/D أ0,1~LR dK6>en8?.7-:d>zGyx6jۨHg1Y<&4[Ky,zMӚzNxgIrR C(!$b3KP;Iho,O/ܹ\& [~\6l3Y.l|Ґ1#oFp`x̉ VPW!IHQq.˺o_=8 r8v_ۭ6BMK\%/*ɡv\m%%"POE8UM?u6gB̝)&<ݠfxAooAj/>fŗ/㧎sM?K54 IdmkdAYWQv:Vmp޶>^y% BE?,QcšN PIM+WRKvGﯯ9FVIDi>md\Ҟ#feq왋f)۞$JXTqtiga c<#E@I$r8hLtY5ϋayh81 zY EAa X9[եRjVݖŠT5/uu` `qBSv8zdec t=L3vYDFAў%A~Se"R#B{SkdÏ̚j 1$*\8# S3pBv x]g\BlqҤ_m(Đs4 {FOxKImjNK xuqTJsh sgPu+wn͎hHy bU588 G%(8l4t9*qbZިrX%4U7d}_(>4i٥=P=s&[˖sgT$deѼ/ ϯUǢq \1>0vkKza+MSO RwoalN1Wbn`D&_!n<k7 {»YnXXlh5@ݯ4B{8Ν|uʹK~v%!b^=ƥXl쯣t%GFh/^ U:Uw;-EjƂfg{H8r#@V~08iEdwǾC.)9RCJ0/jv7얚06e~HSޓ#PNd0s'ys H  d7شIvr2]tޔvKyPp ,SHA>">钒#1273\ݍTdjM˳_>Wd'HȑSE 9YtnjWu=*he#V+^fo6J|́c(d 0!(SrC;Mj4{j-QJ8ű VrJ A=ߖ02^v6lX3gK~&I8LCB*3g4Lxd:_寡0Bii(M_We4jcs=XuA*Vz'ӛTy혴7y?y Cxgw>%;.)˞ͦyCGZZd6֕*8!gm7V8fJ҃x^f!cZvnkZ FcqD4zV?s(,uE礃賃~yF4j,ꕒ׽Y{BΙ:r#hKr1$H\sa[MvK "2?VɌuvZDLR@1C > endobj 1191 0 obj 2765 endobj 1193 0 obj << /Type /Annot /Subtype /Link /Rect [ 195.614 232.30295 346.644 242.47795 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://theyard.googlecode.com/) /S /URI >> /H /I >> endobj 1195 0 obj << /Length 1196 0 R /Filter /FlateDecode >> stream xYYܸ~_!Hl6k8{X?%H{ߧ(GT$zRdU}usw~!Ai$՛7dH  IS#PR.i)^彋"EV/rD+6{?n}1r;oC,6A L|S:8hө. /ϻ* /[IoGwmI()p!p&|ooy?ƃ<{l>Q"Ohԡ6IR lb8&pRMlY C'dz,WOb~RPѦS/iԡU]Qc}Y iV/:Iә$.YL#&L1"&Q57{)cYxa:] N.ɑ\/V˔bb{d3]V\anAB)CA ("8oƤ7]{2>VgN }qJG>V/^ޝx7<(}1)R'vUgHf_C u] g"G'q<Ңg|d]ǤMv,{Bmvo3gAFء/Ѩ67u|<0r3vިh3<E*$$M ?IJD E?XDHǽh`øk &(hjz5cqоX4$f!{˪rW8H]@W4Y`քb"H)-Z{z5M $V<"Rj5ӥK+|EzL%y E*h#*%A bW1ve|KaH"m*- X"M,R M2iՙ%%tADNR}+~=cEem?6/]מ{݋d;tij/vwٶMcؖ*J"Ϩ恬?Ue%{U"kZ^d.1_8q86l̛f7v ee]y&Pi%='Շ_؉-]{TW(="Ͼlʾ,]q>w1ٻ˦*+mխR6:\T[8@6{۪oji{[?}_9p׆*x+a79Uâ;+J֥E"H>"sZǚ5J0(J)fc$ʊs4I#;XVMi]|R\5I \H˸. dy-B4YsЅPN"[5_ &.UkG{VVK\U`6{N4b:tޱ7Tu\u;%aÎ6rLp t6BGAb]Ww%~Ww0 4΃:eRwsf1 ѯ<2P=?8Ha1&u^`DunUF>oM?&SךG$.͏bN4 b1d4K̘㺞 DuX\<2rBV1jw*q ʘK83W\,{I-͢?+շQ'˸ȔQS~0PY#w)Z3x#tNP m6M^N1xߛAE2.PJ7PI*+xS8 ]Bn~||ܨEr/U͌QGdlRS9N6Igei3]ITFRaQAn] [mILp9rcD_s岗䍼͎N_ٷE{ :)g:%Ik"% mCIӵ3UZv7O]->Fcz(t4D~0l~N|Is5:GtZ;HYH|[iC)Eqi:˚!TXu.H Ph.U[!o=޻~G(>MPZ.b+ #>R/AΈIHrφq_Iu_a\zp endstream endobj 1194 0 obj [ 1193 0 R ] endobj 1192 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1195 0 R /Annots 1194 0 R >> endobj 1196 0 obj 2440 endobj 1198 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 786.58295 289.087 796.758 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1197 0 R /H /I >> endobj 1200 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.727 786.58295 545.959 796.758 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1197 0 R /H /I >> endobj 1202 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 771.18396 396.806 781.35895 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1201 0 R /H /I >> endobj 1203 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.602 771.18396 544.834 781.35895 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1201 0 R /H /I >> endobj 1205 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 755.785 383.181 765.95996 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1204 0 R /H /I >> endobj 1206 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.727 755.785 544.959 765.95996 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1204 0 R /H /I >> endobj 1208 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 740.386 292.69202 750.561 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1207 0 R /H /I >> endobj 1209 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.694 740.386 545.92596 750.561 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1207 0 R /H /I >> endobj 1211 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 724.987 274.596 735.162 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1210 0 R /H /I >> endobj 1212 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.848 724.987 546.08 735.162 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1210 0 R /H /I >> endobj 1214 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 709.58795 206.725 719.763 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1213 0 R /H /I >> endobj 1215 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.394 709.58795 546.626 719.763 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1213 0 R /H /I >> endobj 1216 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 694.18896 240.899 704.36395 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1213 0 R /H /I >> endobj 1217 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.195 694.18896 546.427 704.36395 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1213 0 R /H /I >> endobj 1219 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 678.79 274.266 688.96497 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1218 0 R /H /I >> endobj 1220 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.913 678.79 546.145 688.96497 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1218 0 R /H /I >> endobj 1222 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 663.391 269.413 673.566 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1221 0 R /H /I >> endobj 1223 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.958 663.391 546.19 673.566 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1221 0 R /H /I >> endobj 1225 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 647.992 260.919 658.167 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1224 0 R /H /I >> endobj 1226 0 obj << /Type /Annot /Subtype /Link /Rect [ 536.01 647.992 548.242 658.167 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1224 0 R /H /I >> endobj 1228 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 632.59296 283.34302 642.76794 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1227 0 R /H /I >> endobj 1229 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.698 632.59296 546.93 642.76794 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1227 0 R /H /I >> endobj 1231 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 617.194 303.035 627.36896 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1230 0 R /H /I >> endobj 1232 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.788 617.194 546.02 627.36896 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1230 0 R /H /I >> endobj 1234 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 601.795 315.146 611.97 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1233 0 R /H /I >> endobj 1235 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.678 601.795 545.91 611.97 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1233 0 R /H /I >> endobj 1237 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 586.396 339.496 596.571 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1236 0 R /H /I >> endobj 1238 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.39197 586.396 545.62396 596.571 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1236 0 R /H /I >> endobj 1240 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 570.997 201.476 581.172 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1239 0 R /H /I >> endobj 1241 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.596 570.997 546.828 581.172 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1239 0 R /H /I >> endobj 1243 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 555.59796 265.194 565.77295 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1242 0 R /H /I >> endobj 1244 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.809 555.59796 546.041 565.77295 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1242 0 R /H /I >> endobj 1246 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 540.199 473.492 550.37396 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1245 0 R /H /I >> endobj 1247 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 524.8 186.256 534.975 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1245 0 R /H /I >> endobj 1248 0 obj << /Type /Annot /Subtype /Link /Rect [ 536.12897 524.8 548.36096 534.975 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1245 0 R /H /I >> endobj 1250 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 509.40097 451.298 519.576 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1249 0 R /H /I >> endobj 1251 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.109 509.40097 544.341 519.576 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1249 0 R /H /I >> endobj 1253 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 494.00198 447.15002 504.17697 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1252 0 R /H /I >> endobj 1254 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.146 494.00198 544.378 504.17697 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1252 0 R /H /I >> endobj 1256 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 478.60297 298.145 488.77795 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1255 0 R /H /I >> endobj 1257 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.648 478.60297 545.88 488.77795 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1255 0 R /H /I >> endobj 1259 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 463.20398 327.829 473.37897 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1258 0 R /H /I >> endobj 1260 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.336 463.20398 545.568 473.37897 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1258 0 R /H /I >> endobj 1262 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 447.80496 348.866 457.97995 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1261 0 R /H /I >> endobj 1263 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.15497 447.80496 545.38696 457.97995 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1261 0 R /H /I >> endobj 1265 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 432.40598 345.221 442.58096 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1264 0 R /H /I >> endobj 1266 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.25 432.40598 545.482 442.58096 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1264 0 R /H /I >> endobj 1268 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 417.007 352.161 427.18198 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1267 0 R /H /I >> endobj 1269 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.278 417.007 545.51 427.18198 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1267 0 R /H /I >> endobj 1271 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 401.60797 209.086 411.78296 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1270 0 R /H /I >> endobj 1272 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.316 401.60797 546.548 411.78296 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1270 0 R /H /I >> endobj 1273 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 386.20898 221.554 396.38397 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1270 0 R /H /I >> endobj 1274 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.426 386.20898 546.658 396.38397 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1270 0 R /H /I >> endobj 1276 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 370.80997 427.01102 380.98495 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1275 0 R /H /I >> endobj 1277 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.249 370.80997 544.481 380.98495 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1275 0 R /H /I >> endobj 1279 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 355.41098 383.983 365.58597 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1278 0 R /H /I >> endobj 1280 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.673 355.41098 544.90497 365.58597 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1278 0 R /H /I >> endobj 1282 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 340.01196 286.675 350.18695 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1281 0 R /H /I >> endobj 1283 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.747 340.01196 545.979 350.18695 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1281 0 R /H /I >> endobj 1285 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 324.61298 274.596 334.78796 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1284 0 R /H /I >> endobj 1286 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.848 324.61298 546.08 334.78796 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1284 0 R /H /I >> endobj 1288 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 309.214 235.458 319.38898 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1287 0 R /H /I >> endobj 1289 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.246 309.214 546.47797 319.38898 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1287 0 R /H /I >> endobj 1291 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 293.81497 249.811 303.98996 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1290 0 R /H /I >> endobj 1292 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.342 293.81497 546.574 303.98996 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1290 0 R /H /I >> endobj 1294 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 278.416 265.634 288.59097 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1293 0 R /H /I >> endobj 1295 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.198 278.416 546.43 288.59097 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1293 0 R /H /I >> endobj 1297 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 263.017 280.612 273.192 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1296 0 R /H /I >> endobj 1298 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.992 263.017 546.224 273.192 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1296 0 R /H /I >> endobj 1300 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 247.61795 306.906 257.79294 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1299 0 R /H /I >> endobj 1301 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.687 247.61795 545.919 257.79294 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1299 0 R /H /I >> endobj 1303 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 232.21896 361.226 242.39397 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1302 0 R /H /I >> endobj 1304 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.06 232.21896 545.292 242.39397 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1302 0 R /H /I >> endobj 1306 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 216.81998 356.428 226.99498 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1305 0 R /H /I >> endobj 1307 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.101 216.81998 545.333 226.99498 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1305 0 R /H /I >> endobj 1309 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 201.42099 340.183 211.596 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1308 0 R /H /I >> endobj 1310 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.317 201.42099 545.549 211.596 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1308 0 R /H /I >> endobj 1312 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 186.022 343.197 196.197 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1311 0 R /H /I >> endobj 1313 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.288 186.022 545.52 196.197 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1311 0 R /H /I >> endobj 1315 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 170.62296 267.601 180.79796 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1314 0 R /H /I >> endobj 1316 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.969 170.62296 546.201 180.79796 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1314 0 R /H /I >> endobj 1318 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 155.22397 249.811 165.39897 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1317 0 R /H /I >> endobj 1319 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.342 155.22397 546.574 165.39897 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1317 0 R /H /I >> endobj 1321 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 139.82498 252.43 149.99998 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1320 0 R /H /I >> endobj 1322 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.102 139.82498 546.334 149.99998 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1320 0 R /H /I >> endobj 1324 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 124.425995 249.811 134.601 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1323 0 R /H /I >> endobj 1325 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.342 124.425995 546.574 134.601 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1323 0 R /H /I >> endobj 1327 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 109.02695 232.53 119.20195 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1326 0 R /H /I >> endobj 1328 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.334 109.02695 546.566 119.20195 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1326 0 R /H /I >> endobj 1330 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 93.62796 253.652 103.80296 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1329 0 R /H /I >> endobj 1331 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.092 93.62796 546.324 103.80296 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1329 0 R /H /I >> endobj 1333 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 78.22897 280.016 88.40398 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1332 0 R /H /I >> endobj 1334 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.802 78.22897 546.034 88.40398 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1332 0 R /H /I >> endobj 1336 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 62.829987 295.961 73.00499 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1335 0 R /H /I >> endobj 1337 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.60297 62.829987 545.83496 73.00499 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1335 0 R /H /I >> endobj 1339 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 47.431 346.483 57.606 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1338 0 R /H /I >> endobj 1340 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.11597 47.431 545.34796 57.606 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1338 0 R /H /I >> endobj 1341 0 obj << /Length 1342 0 R /Filter /FlateDecode >> stream xO$Grݻǧes1+pHQF4g-Znј1~{Ȉ̛DTnVyeqf)=J)5%W{cY.Bz,9-Kx#7_Vj}x_ÛW˛O,_=O7!?\\|Z׫;n:b_|f #եV{{Oǟ|.͛onO/}}ן^>|~~WCykYּӗyZ,vYİ<վlok60,kkq__ygy#o˯Q\տZ/_nl_tPY-_Kս\ןP#7xl_%_Kmk/A/_WZw8^fӷ/|r쳼rɛG~ׇ[b5S_'Ͷ]~)ˊw8w0}OQ7Ͽ˛?~?W_W}7]WVװږS^[]M;fL>>__?/~}~qX`yo_~)>ͽ,~*X|8Y.`Jif ۬ [S:O0[5s>XKőK0WpnXusn)UGsyTk,l& ߛm;5Zȯ{ %ő/O"\͵J~û#sZ Rmٱ_ÇX{켭9gb%l\Wf%G[+{)_"YvG<1ok8(3KYͽfH-'jU7pfu>h[mP∜{xo̅Q[%P-?.c#_[&% rz7T1 _[YWfbm[/D[GɷVݣ:y[ku.Vvc%<\TaɏvO䘩ŵ,ELy-؏`1jVaL[)ej+Q[yg[WbڂG'Vj2OlQx,ؕ@m9|}8Vi533$h'c,H|!;s85TPZs[OjAx|ԥ!Ý(,o_3$}os߅pᮌ3ֽzyaj™a?&k l F>=}}T߅pV!i:}՞/l$pOgp9G_ 䅚 @4W @,-E8smscfCፓ_=<@,\=g ޏ}}T5pn5$}B_sg1JXǏ9)³!yVc5ܱ\|+jZ|`ye__B0!WwCH=WvϙJf3!ll{2oO_G7W]?-OVW`ÕO~0< w?]_ί+x[ێy߻O齭$xVsDm1(s['ηrA"XR8jO (|zm %z/O&DGy&,2uDS%[j*5j8ɬhQ>?%#r*Q[xp%|8wfMdmU88jAj Ym`ְX5EZp1k>BQgklJ8j[g!lv]- p(BYkڨ59)9aM\49KV E2Aj@j-HP"L?q4ZT$ZVF-t#CX!Pjᦙ_E^-GmD^vyU=r(ʼټxOn~|[eK5<<{ŕ9ʙs@"pw7iHG䜰s4aZRý5(Vb- X$.W lBa?BBŨ@ѰU7K0!H0Rp<~x2B+ ZvESMTeF=$BDC6=Ujpؼ Ūi5G(;6ż aFjwXV BxX](VE- .i|*{2#_OSsl%h5ٵ"mnhEohΌ8jnshi(p@6"5+VQ}+Vh~%fATDtNkۼHvEI (E$'N8 QO+vEbcPssRQl*՛+BUmťqz0A+"b_ZEQŮCmo59 ]+(f'ōQ\dUT9\**-t—5`Ոڢ,&73UQYK5GlhErͣNerZi+d5s(hs-x9QBٕFQF!Gèht]~q4:Wpxhv-Ǝ2;ҎyQގ~+dUwM(wMuTQԀqqXu{/:y}S#k[@ݫo>ѰCmC{4Õû_~jI?\s,4?8_ӗ췲 rbQsb p(ߊkGg-ƒEb>Co;h@VjBl G]pW?  N ސP4#&tb {n[s*Em)(_ IuW1ud/gBUZ{*Ej-F޼Q֬C؅PQz-Gn[\{-G>tT=Zt@([vpe#R&Ū(X!KZ7ڌeUdfX)KU-QS Ԓ Vm-8iKpMI1jX[q)jaQ0$\͒]}A⇵ %2ɮ(X ٨P+qŮX∡:#%'"5ErHvEub,Tg$*\c3~Kj&2.'HOF'dLxօ9)[\å&o_~y#5z|? Ə,Vc!Deq꺨e=UmCgB <;5B]2Btqh\2(\|j,Yf`۠E10Լ)gNZf]j6_ cQsSfc|OqĉkJWoX.WFP72 l6o>j&NyZvZ/KHvl(Q@-k+NtoHVl FytG.Yp?z·nRot@{׿͞-$ƫt@CkE+_fQ:Vv7o SA`gw ;E88qة SȁN)Zv9s쓞vA;%8k:uة]A`a;vj;pvwة SA`gN:Ev}ة CNݥvj? ]Agw ;% vj@pvة!SN!->S o;q3 zɈd/?~{53!+Ku#kKo57Q膳8&}g}L gm}eqLz.V@[C2E$X_Y[S6= !˹O,I|Y[k c褯 $O=^l~ĵ,KY?T4A`T,J\>:!BYf"=$]SE`K̪<]UE`ÐUNڋncI-c׵1&?å{-~t~)$N26_nzuaV?5_e EғrMh{5'tTq6b|Y]DـlEͳh6'tq6uQ6iq"Bf;IlE-"ΆQ^<ˋ([ O8,lnhN8kvX%$h[$ #[PIEyIg2~ȿl'i5GtN8n;IyIe]4Nq6!㧙*Ie $4ΖGN(khN8ѼQ*N۴-(Ig9uEn'i5/tN8kAg Hڦq6>$ᷓ4V)4ΆGN8q;Ic,oL=}1/ Hd #U ŃC7( j+F#[Ps }:ɾ`Q81^f$.@te]5t`a/ 5k&9A1/9/ק p49!YKLQ31XؖQٌfⲠmB_GWL+N ;92 Lob?Ǘ3SҞyxz?PlQV[3_|#V-*C37oG{٣<--5_`~|ci(|cu{b𓺲==V-~ušuMjP?PPP0vc~(vciucu(ubaL ]X\ܚušuuj\XJ\X*\X\ [&}sZ"@ uխ[(+8Զ2n18%]e CaC]k^H&+oϚ[WԺԴ1?4T:n1(9*{SκPͺP)fcaS˺Pʺ2T1?4Ա:nuXXXN'0'oI mkhsKjЃ|TPXؾ\d> CTќz2Ґ^aJ RlKd;3 6#J|H -V@#qc+αo\C0jFTk( f`^S0p_oxf@^w3N]FΦ)(SQ`4#gf)(Se3 g)(SuJ4 h)HYTЎSQ`ؙ(ܞ8<6*b"ж[q-i[s_81ΖQ6q4]ynmpm㬟g`ɚQ T11X$Z#C_zW싩/kϑq"@"5|ʗ/XȔ{+1֢J+#8V;X bY?X c%sIV sYV8Yq6iV;Y g4Z h%sVs]9\v8?zv<{s`D;& 5/m]~ ǿpwcҷrt}?eᦇ ,WlpvS9*/(#h;þ{mEmXT^`Q^%O_/ho;짯}XK Y ^``vxE)B zsE }Xtط^`QP5" ,*f{ +h_5^`34W׷^`^vx5WkV) =^@; AoHl^gKϽ@B` MhL $8kt0lG2GD+9Hk@B` 4{i&_ $8k~ztG37= M $bڎ-{!^;nW~e T!_饟@ZpujDS6k}ljNfu|tINܫ+,fscCamƁk~ gP4fczA6/dŘ,±E1ڌڌ/xm3*Y ~b~ Z\ ܔml[ζ1hI`1` 1d`hߺz ,(7fxkrध· -7 9Ӿ!K`1` ܆,ӎ*TchSf6堕yqM9P޴8he^kOf2/Ō8X5cʼf6㠕y ,ioCf` 9P0̍nU^m[6 Hmu*/V%ogݷ^2o'[!V6 in 6ݠp [#?l mڷN|oHk92d[!g|$yn7h [F!g|E31B-[!G F! E F!QBYȶBD`(s[!Q"ypv]F!Q"ip/D`(4 ABΆul ABF7 A6Bͣi G!Q"p0D`(SN 1WK.ǿ&D\)$ߟ;icH?阪?_Ǘ95l]n?qwco/$ W#[!M0W&IĒq4 lMv7}~m ۺ6.Bw l]Gg3?r>F`-n`Ԣ>Ţ>F`#FIOE-ZX֜͘ ƶQ}ZlkvQ xEHF" }bk1;V>L310 c0kE#c0k1vڑ4GWmnf:]iq}ZE}6G/"[MFX ,X ʶa} gR}ZpH#]#_0EOQ#_oEHv럶_ߜUVm9=|-tڑM :cg:f l3tX>N`A'Pl8)E*CSrm/g)4 cf9d,Ek!<%Ks9ؼφFFY 6rA0e/Yr8_, zwYyGͳJ,)P]]f񂹾CZ6{x>~ZNOr#p}.3}֯/sTBe=NU+3|mO ͣŞWgGBe8~~/h]5_ l-EB;8:N31Bh&nSrY+{^`Ѫ}4+{΢c l%ze m)q/,O^;FW'Xi=s?\? o?~w~Ͽ|J<.P}5tDq(9Lne9@n1y94nQ~=daG(Zqԏi@ Eaqԏi8YGCQ .臣q ~8YFCՍЇaD>#_FQ?pnA%͉bpkprIdW&mKp]nIQy jF(5{E&awq֝%uɪ'^j)l,ExX*ιec$Y┛(}mǿTdj]|1B*jݒ%| aF6bV+ζbU<| nU,P6ld"q]/ IT[#C$$ IY7q]%Fg'a_C2kEyQ1F+pgU0fɮFɮpn9oJlz!eJ5ƹK[t6K̟7?_|=;nl듻G֏>9M3l}r8>9em}rG'YF''yqv]F''i l}r>976>9ͣOq}rF'ٴl}rG''uq6ON`28[06>9e 4>9O8!6>9Ȑdb [%t% sNqBе/P2AT`1H;RjէE[yȥU ,&WPE0zߺb}wT ,I\XdhB l+7w^zY"P5"pii`VWgE/{7>Sӿ|g9cO[vkj0a ll"es.Vg(lu ,V{Zjc[~Д&,VErLl.VXYhF8#Q_h¦,=k+^XpL|Є5B2q s1pQ\L MO) MX|l{Nr!ž8_b 8kjZ5C%! ʗ IXflBf`Xm%Vn $apj+ ssmV]B`W`(щP`d&dV`e+r ~֭lB}> ʢjl-B(J48fg,Ҡ, * Q448[geQ`UjpiMR<^v>[T 9޹|p/}ʼW_zoEQuf >_[w^|[w )Y7;vw )uw )Y?;vw l;;vw h;;vwr6MN;;9xNN❜-SS`xNN❜SS`xNNBqJrvw l䠛;;vwrv;;vw 䬟;;vwr6tN;;9xNN❜MSS`xN❜SS`x+_w$pz}~21&_ݽI}:;ɵ⬭K*%Rj~z*Y,}"KW&=>TJ`QC8koC֖>TJ`SoC8շ06sd M5?46>TM5G:69 86 M7% CkS`OC8[)dW546B I21ϛ֦BhaUL y Wp: Q2176Mήnf8Ԧ9&)YqgӐXaR 8*K;ϛԦb] y]j : Q3pMjSl^Ԧ!)Wk/kn3Pvw|OcGvhjo^~yxzM}>e__}w_N/w?Ɣ>TG|R޹iq4Qj!JMQtQj!J1xwي<QlHMR6lIII=5=5=5Iٴ&9&9&)$g$g$$e˞잚잚lSSS˵&9&9&9&)$g$g$e=5=5=5IY&9;SS {j{j{j{jqOMrvOMrv&)$g$ggjyOMrvOMr̴op mJlO\zoxdwBG|xdPs|Mh7=\WOO>|&k]_LZ6 uXlEYT. ~霅ui) 6]|B׺|>@{m֥.5} BYDi$Ч|p ,\>H`d5%ʫd_#*#R5$[zפzkgI'zkXszפ@_,{4)К}%CԵ۾4k- moHL5E5M ly6Y8DjP*=pzפ@3Ub+g+ yqR`2G+aC\/fm {}[L#&6#nEiӥ:v)nݯ>ĭO?}iuZ<:(o맓YwrN/d/mlneQ#!6N7e9Mn9 lne-p6M7u9lngts([ts8<6lnGts(d컛Y?ΦpN7бpt7(Άp6O7Pp6M7u9m2U3p/Ғd770hwyŁUa!V=)ٌؖ,4JXhc6yv ,Kئh'wyőU.c_7y!6:T2qS/!Qޛ}ଅٹC,1.Ywy((wy6*9p]ƾH{[͟!!U0x8܅.-`/U{8=19-rW%{7y{}xn{s}1 p<&Q֞8U q ~8n%eq{)g=NۮY{k=rP\|^d\0~qVկ p0?vCY#zdTA30ҐR l.~ˌ8JC6¥ l.=ӾB)'.3Fsf`eFY OmU{6߆i6pΎʚ?Zn8g gla,0놳p0Ͼmkl7ͳ|4o8[g eqVRFgKap6&bNJ6'el}88H8MuPּь8q8[kv6'es9~S9I> yq?&لdZ͓۔Eixq%EŘMʋ(ƤlR^]QY))gQ% cJ oD JqZA)޼)yQ6C!P`Qչj&Ơi&6(eEArڜHg(_oHj&N묚1*e,:fb[{DBvbJ>E&BM*L܎<^'W+mM;5;^_^Ι2W%$N/Ȧ!-uW")h{[=e(EsmN†-/DPOGfnwe 6 hC)hI1Y{~hgeDs @`ЉؼDsVM'Z`ЉشD h:ќxz?8t hζ, @`Љlh:Nٖn:N-uDs=4/}[wEr4 R«f`)m٨(k(lK i9-%4G#[;FhOkm傝Ɗ6C{+g^q[:X۫[gEndE:+pUԤ傽丅 ^}U*mۈm"Gl l#6o#9ڲc-i:Flsef ^4#Gls 6b[@-ys`ͽi}}Ķ1b[`ٖv<6b[`Ymۈm#}sd%r蕔rY)%q`OIM/"%тZO~>?=7zKlBui7:33zBtK,*ۙg-tch{9 ѡʏBwȷgC.E3E1$ CMJ`!:jNjjU=r\gǐ:ԪCMMJ`mN _֦Vي%#h? !{v Ԫ:*I20"wY$#rǡr}ԪZl{NMJ`!9J&F^JS-ĶHך5{hiAGsMJ`QH&6p5'MrQ3qLCkY`!H;"x;4[{B=J-C]۲^(P,ҷ`{IڎMJ`6/QGM*ڼtB=HFmQ*{I;JBhB =(9pc/q,sGiG3G{#g-~/Q`#FJ;K9Vf͛C1okh^(*mđi1o^qP$9pC/q؊"˵hK~8҉ ao^ v=?,? F_BTzjpI . t܋<8vp|#[I #\H-#E`khEx8z!g#Y[F.g!Jp6l:]W`m!/!g,D BpK`qC ΦG鳹{HAY[k%8|ѱՐ8 Q>K`m賹g \3Kgsq*bU"3!g.C Bi{6Ns%Ql.ʶS>K`ã\[KYq$7UUYQRPa Ψk $MEiwG*9pMX *1f`h,AqHP$Xf`t,lŘ,툺.k$vY!I_DA1*J;BmlA`R+m`G9=gpm~pzs^= wx^z~:oo:]g&vTz-5gפּ$5)4^B2fMqsJBXB"zM 舋M M`5WhM ~Y5)4PRBXsBV']˵pp>Kp&nbB,\BXhUh[BC/jFC\P0t-f&Ytù8BCI ,4gEiF;\\4 pkB؄JEY 11)_o^L\ԎX5WV󪙸BE?q*zQ1OMA%cbAEH&Pb(mh[.5H&Frʓ`#jBD/K0&޺og BWzUr00"fY8(68 CQp^,P'Xhi NrеAqеlafƵz܅R>^J Ylx OaV|S귿JqO~1?՗o|}"ßӑ#,Sl92#`92֙#_gq8[fM8fy([~8zu(֙#l92Ζ#,FSl92ƙ#l92Uf8^5"y.ʼnwSXx''Q21-΢) g94e!"4e!ŁwP,Sz8E) ,daH,) q) ,n, Zpޝ4 xG!,MYvMYH`q]4hmq94'?[8v;I ,rKe\ejuwW~OϴMp?xo`IxЅqsJ:[C=u6S4>sfP G9El2h= bNQ;)f9E/g( r]N2 ᜭqSrFB7gk,h}ͳKܺ)gS9E)h- dN(d -eutS4fr":z)g+9E$g(rFrGN4)ɒN1k@(fEo};f(4ribzi;f(ri7MS3%4E1RrU m\o8(8ۡ4E1L);v:N}Q;:o' /lBY}oqS^W!;Gz9.ke;܅p׿~io=e.޶߼S@,[vG-=X1%n 8kq֢-XCWx8kq6cH27 zi6XEW"PP֯VF/L싅k[S(|0-1';戻MU3pDO u Κ3Pp64js?lFO8G1&CAR"L. MuqּM<(e(8p'%nହƛ e d(8k&CY1"GPp6`rdb&CAY̘d(8E21Z97 Vsfb$K6 FLt&CAYtsn2cҖ.>R& g%yEdMiӾpR]{ *[.k?~`z+C3>^Ŭ=g}bs*R6wo;e;]wu2\w.y5.i[Y]`p םo `;g\w u<\w﮻ lsI.q[Au0\wu,  l;e?\wMu:\w﮻ l;g lsuX?\wM.u܏ lsǗu8\w-u, hsxs]`io'?~z1[^qN3p+NU-zn+K?ӛ6sc?"8]_KzHg4' Dg:8k^`]sI`+4HY(%űT;2:8 ئAlKGg:֏%M[璀ѹYh%sI`\⬹[ѹ$yt.qsI@\<:( ޹$~t. lK[Gg:6%-s nK%ͣsnKGѹ$ut.qZf?Wyӈעu҂:M57mF)[XVb l.Ytڦj5;" l:' {ΖGIچ;Nܡ݄RܡݴVW+?$9p(k[싺5}Q؆|++ BHQ/yo(mivԶN10R.}0o>jK :eC}7ގfh!`O)ɒ&f∃E3qZ1DQ]>Z*w"yo(t ^P֕/Wi8]?wP!1]8=>^ C+ԡwydcC9=9X`cCv=9cCv=9cCv=>X`cC9=9X`cCv=1X@cCv=9cCv=>X@cC9=9X`cC9=>XcCv=9cCv=9cCVcCv=>X`cC9=9X`cC9 =9X`c> =9X`cCv=1cCv=9cCv=z,sΡǜCt=9X`cCv=9cCt=Mz|z .}s)S1-p痟ojtn {,W+$@Jr,W}9RvD&%Hc6(EJne=W5XL4'ES1p@u2QN+cgh(iO敦ل = +^o8æ$h^}3Wy%h;ӥYt7f*}ޕYy%jh^} 椓w$,LCX*" U1QadbTEX'Ue(9H<"} .QQCLKKl^ ekKଇbZ<{_gmIoxXe*"d8Y<i{GUD,YQB 1R`-"HfJl@4D8 lc(9[EqGP lc()DC)a-q lx>O`qT1X۱1mdž名lZl,glS6yS6eR\M6ar6OXerOXΦ):ecC6rLXʺur6NXΖ)KMXΆ)r+⬃PQz]&sǓdaT|VWrda^W$v"-^W$P='[]g6]pdtb+XN"">^8IA۴QQz]BtRy E-ҵ lA;b (Nj62  lF fຌjd+X(NiGf!"" * W ,&dހN^Y$Лtގ+8N^Y$ޜ$o~5t:^Y$ɜy7EEv,XMΎEEv,XMFEEv,PHI P{eV55W lª)n%\'K~s3p,yJ*T(HNC{AKӬf=xhvpu|jB YL& vtY(AߛB'DY7>O`H&nJ }gG ,\EޛB'hDI ה?E+*YB ,?E'J, >(^ݛЂy#>[\̡ϒׄP٪X8K΂_= ?כ"fH\ZXAi!pE+Llpa+nL=E0Q;C.~gl1 _[ xۯ/痟 c@̬n5_ cM> (n;%sS{5#¡Ὗ/pD{@14"g D{?P16 ߮' ,D? lrD@悔Lk)/|OQ0`k&5"Ǐgķ=n>Y>{zx,غƳ`2 _3{Dx][xNQ/)B8"MJK)B}H]$uG0g"ZK_6ï{_N?_^"zz {ya,GtK4R-C R CT`,嬭ߛ`!X*i l|,ظ h ,8K RF7K6 RCiKRMCT`&XQhptRCT`4eCVA9kNb&+'.=Jjb ,\-/=XmYUzp]y]tD`+ $Kw(jy 텟9Z9t}"f- AYsrXoa~ ʷ4{(gm$8keX%ѼUly]tɶZ5WG*͜#QllVue;^EWt B endstream endobj 1199 0 obj [ 1198 0 R 1200 0 R 1202 0 R 1203 0 R 1205 0 R 1206 0 R 1208 0 R 1209 0 R 1211 0 R 1212 0 R 1214 0 R 1215 0 R 1216 0 R 1217 0 R 1219 0 R 1220 0 R 1222 0 R 1223 0 R 1225 0 R 1226 0 R 1228 0 R 1229 0 R 1231 0 R 1232 0 R 1234 0 R 1235 0 R 1237 0 R 1238 0 R 1240 0 R 1241 0 R 1243 0 R 1244 0 R 1246 0 R 1247 0 R 1248 0 R 1250 0 R 1251 0 R 1253 0 R 1254 0 R 1256 0 R 1257 0 R 1259 0 R 1260 0 R 1262 0 R 1263 0 R 1265 0 R 1266 0 R 1268 0 R 1269 0 R 1271 0 R 1272 0 R 1273 0 R 1274 0 R 1276 0 R 1277 0 R 1279 0 R 1280 0 R 1282 0 R 1283 0 R 1285 0 R 1286 0 R 1288 0 R 1289 0 R 1291 0 R 1292 0 R 1294 0 R 1295 0 R 1297 0 R 1298 0 R 1300 0 R 1301 0 R 1303 0 R 1304 0 R 1306 0 R 1307 0 R 1309 0 R 1310 0 R 1312 0 R 1313 0 R 1315 0 R 1316 0 R 1318 0 R 1319 0 R 1321 0 R 1322 0 R 1324 0 R 1325 0 R 1327 0 R 1328 0 R 1330 0 R 1331 0 R 1333 0 R 1334 0 R 1336 0 R 1337 0 R 1339 0 R 1340 0 R ] endobj 16 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1341 0 R /Annots 1199 0 R >> endobj 1342 0 obj 25273 endobj 1344 0 obj << /Length 1345 0 R /Filter /FlateDecode >> stream xYK6Wp]Zs[l&Q( -mD$@9[@ 'HY4%W7!b h4EO҄ȣD;{1űCdu;y7x| 0c1,?l>0J}dz|.sDˆ8SRo{l h318Lxx+[[﫷eq $QAFT:Ft.nಉ q$0G|',0Ri$# ksrr 7t ~\= hX67J1J71ฎz\=XVK/:F)&r!eg "&Џ┐)jXhF 0JcM׌ir:Vתs(V\l}b5x\ӱ[opu R8 2 3ݐ~z>)d[9 8cWy{R{y̛goM/q_jG]Eg>b|PVLkdV￟ӏ|v%*.*K-Y.{g.jͥ|W)f~l:OLQUӰ"GvyX:S^!*rM:D6˃:5'W 糑\$TlfcK1iW.i>Dh1{Ww҇l?/{-Q%]eBMl͚T}k iVNjwpWJ!464uf*< Q=lЛq5a=S}v:Y @+FyYD n[*J+qEĄ]ԭR}sEs"0.VH[!H4zpK![Eiiu?F(].fV.MZt>q35%a+}M)km'\`$;6bSAx@[R# 2LS=+EN̨[Im^bRSBJ)jZ.ujxGqAF3f~d,ؑ&9oʬ=ҕxNgEOQqBD+/F( PYWt<Ֆ˴X\J_ .cb&ʍ\:n5:$旤C>lŒ]_V{W]}. ߗ GO%tj~ˏ\i+0O99ٲď"#%y-cd`!B.Nx=z燾\=4e\9jhCzh[͌Yu&\ph111jX 8:\hh v^MENJ֊AH4_+ΧM4[ZI.Pn7EƮ?WmQЈ}_h dˇ:FG@lΟdt67QQHɋS-*q|hiJy ןv٫["$\h;YuX(.ԩmz(.#nfz J}m ߹ΣS`mMv)% M9/!P\s4$dL3:uEEw@!^4YI60l0 S#f1#D~ًO&?y0ݖ! o?HOjkUoӼ~F6'01̧Y&!"![I7!ӳ7`7\Cli$W> endobj 1345 0 obj 2352 endobj 1347 0 obj << /Length 1348 0 R /Filter /FlateDecode >> stream xY[o~ׯAlxy:#7NEAS+5Uy3+򲔋@S ofƶ(wa"&QaH}+~Ǐۄ:e{]  J=Iˢ8rG/bzq_?me[۬QϿEof%-[z!}H"&YՄ$j[?f+۲mk19KbŰ :lŪ:+ϭ3 ޱnb>+pEq"z׾,2bLt)&c|O T=/Q oYJrFIte&]MI'yNWρ:OγdWlIqȇdOM+L>Uca_!DuJ?lqmeM߸CV[.L $YYR F_9Y׌|’7{b;D:o CSpmxn= )/7򗷆ˆ>UIr8pW)8ǭF~KyuLy лIV|||I @>?04E(i$9r)2Xk0 :U ]oG2 z4eUira[mAR "qJ֪-4Pqvzk0@6AFDB Ngw0ʅr+0!TvD쀸D?ȧV;eJqR+)`o;/7*-Ӽh :6ۡޜwz*;T%8+ #;9oG,f0RW3+!EHQ=N vQ핏LgzZgE3퐌{sP"CBNj6kY:Id؅Q.t\Uw%b̓ ٲ7[1֚uO%$ ]ۜ9@-]n>FL# Oijū+%Wl~oX5x1%&AO$oݝ=dB1\\pN^&Ȑ-ˑmƩ9Tֈ"KBTwOEť+&:UuYxJF!8 [#pg)* d=sZ/0R*MYPT/ζeRf^Q}*bhNv _lEq(Ms2Ksn&#EzhtW(fX\?iè+lX8oՆUcqKu+zG#1 1M&Dqt*SВ϶z. ą8~(&itv,z,|,ذ#8D@,N'Z2:js˸D[OؽK?y;;4֣?~ N"} ;Fh<aL`]cjxroG+vrD:D;$i(%9#wmF읃# _:X3ZQp\ i51׬=Y i PՉ^o^ݺǤENa+ K݄n+  ؐT\x~bI4jC|a@p" dv)פÇ3#v(/_" !)/8$Nס놣 H8IL)C3ot23[ZPN2?/q endstream endobj 1346 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1347 0 R >> endobj 1348 0 obj 2131 endobj 1350 0 obj << /Length 1351 0 R /Filter /FlateDecode >> stream xZm6B(HtiJ$2.ɥn"Pd[Yr6ɯWQm^ ÙCjß$FRV8.1$b"M$G1&Qh2X.{%[ܮl/p_eQ=^XM\))P%S)0BwCXGq5J1LXaLhF=mEO#/go (I(N cՕщLtSv;ꄩ5!NxdD  )* (B2e,c6ͩA[4ciH6Ĕb3eFf2ª"'EØM(),FC(FAdQ"ˬaN,$" tX,ř[0l^hbmg>5 ƌ,M1lH)C1+80]Ozx-oþrm sbQ228iS+՗|{{fG$wMz4^S6WBސ8."K>P0) D)F$^3 (kLlrX ^c<K%9b ǞrA*4 ?9 ǹ6#_M/-Qf>)9 'MUe' ۖz} fp?z\0Ha 08q2JyjԒJ2%/*˫>7Nn|#yYrT5ŧzmE?ԟv!e1V;r->o>Ro߯^}~趻Ca'~ƺ7v ADfŅPJY!*y73xFKp=R>!4ѩS8<JnCցlmˑ!|i l6OX쳘%;sN @ S\ qpqK!}h9E7ƪ=Gř\u8ƺ{+g *ڕ$]$94ʡpLYN`Yr'vqBB Y "bBK#83<JnC>'mˑ!|bU >3oZ3gpF[;:QZ] S*SNد߿ܛʛkP \:Juy9J]TArX|QXdڽb2CP%ʘ2M/eؚ!\͋fe;':92WT!4b!' f20$1)w xm:W83ؑuro.AIcItB!s#U8Wssg2<1Ž) 1Qq>Ci.\L{AzUE%>9Uw7:oixOӴJԕC>6{s,š[5u.]כ9AŕDs?˦~}ksww I@5U@܌x͗?߇VԜk^Q}{'/޶# ΍Oi\?m{Sr.ɿ5Y>UםAG\^ eX r~(zS"8G)lj'ۖj]so v{Xr{]Uky83C"*H{~Ul3*r{x&$C97'nfFŭ[aYrF'G<뻤|R>Q2:D#8x ( nZѶkg:XXHSKn>; }Vx9x&Yk{MrRP i%3ljQi,uKh;V.~ū_^_\ݾ>`(+eut i+k&j@Н%o(͘,{-ڳڃkXlvz]?:4d)LCCf2Ғ;5]*:iRz,'cZ>Q{E+'# frޡ6i帣o93ؖvf;ȝCJ;K֡%;uΡ!$ȘF5׷&;z1Q3xQڹꞨLO@e,TCӨ_/y9jU~aH~Ѕs|(G |չ#Ĵ 2<Űq( eђ;1o lG# }γķ-iD\O1#pl&Am>p*3ѷBlg;YHcE3@iB`ǫx9|&NM'(a2ym?7>uXh]:@?"_ݕ:֍1/4e_UUs;E=/ML BKpƈ=cPIޚriol/0ۚ7Vl-{s_r endstream endobj 1349 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1350 0 R >> endobj 1351 0 obj 2730 endobj 1353 0 obj << /Length 1354 0 R /Filter /FlateDecode >> stream xZYܶ~_'AXr\XvbWʉ-w˄sh#Y> c%h_7%o8AJ)-%z"CR0eH6>%²Ę1ŶDo.ܿ^V?SAF>ރCKDXٱs &$4lD>M  SiE"Hi&48>Ɓ" >Z %cAPq]fl&r? Gn1"Rk e:EŠhGfh0L^~W}$cu@Jm3HϵgK+Hm5`A`!yo?WM[=fZomxQ?՞~izݝ$ގ7~w'wOͦ4'湳Cp@P#% Gc\ZtQmfCmvv_=ՓƩ0t/n47;p1'D U L6 RYb3 6Z%4Ě|wRW¶Ã}$†`N;%CR+gz=4]m&m`YO$iius;TǓ?N%%FB _Mn/,$# :ەb801plbLD@̘z%m//MٳDh ǀJK eg[amEO4W1}>#Ə\ mB UƤ] B{iy()b ]VnO?O>2q>$FNrs3Ϫ''>y)Om;tvJ{.c)3:cɹFi ˡSq[P;>+UT:[t-Y]W bȩy##&QoRR7}H_G綝𔱇 μTӃitU֣6mN4&iPnO)LGBNxd+ S&&&R[ecfh_Tdob؅){˨b+*6<%ܚ)q8H$5bsQ,bP87t`DN@4t6֥0L,*Mgi[wg8́f<:iƁ{Ib-@z~XW;˒zPj g G$b6٥N󔵣͛`_&\͆{.wYk$нkSʖE2q 'Sގ7Eŵ?>#Ohiwp: I }AejJ@nbi]),gRbv|u7֝({Dyy "l.n0 ·.r /n0Nm zFn0nIuڞۮ9ÐJDբm*EN>/"n}ⅵXܼ-T+ eZyTotدС |B.9gQ U$JƩ^ o*߳l:q%\P*xJW l%vvj7AM>9ZŵN2@S~5M%J׫Wo'8кR6m .- D5_>n 5@=D/GfrWe"M/"q(!fקZ&`ڈ2+wL,g2WHƸ1pcԄQ-ZWXNX*9r3Co 'f[=s`%%_,^lx % TB/к)aqpCh! רυaXug'pσ󲫡% &2#۸ib&`WY0Bt*#~yd0iWU-,KTq^XY{;|N%VGJEdAG\3Mt޹vОsJcUxɠI\EF9s6xKtAa-n__,+TH໩ 6`0`ٯ[xS55bӶԀ>*HѶ'ݑ9z> endobj 1354 0 obj 2437 endobj 1355 0 obj << /Type /Annot /Subtype /Link /Rect [ 62.023 714.34796 274.785 724.52295 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 692 0 R /H /I >> endobj 1357 0 obj << /Type /Annot /Subtype /Link /Rect [ 62.023 687.949 193.495 698.12396 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 950 0 R /H /I >> endobj 1358 0 obj << /Type /Annot /Subtype /Link /Rect [ 62.023 661.55 256.437 671.725 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 777 0 R /H /I >> endobj 1359 0 obj << /Type /Annot /Subtype /Link /Rect [ 62.023 635.151 244.205 645.326 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 840 0 R /H /I >> endobj 1360 0 obj << /Type /Annot /Subtype /Link /Rect [ 62.023 608.752 162.288 618.927 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1025 0 R /H /I >> endobj 1361 0 obj << /Type /Annot /Subtype /Link /Rect [ 62.023 582.35297 249.09999 592.52795 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1037 0 R /H /I >> endobj 1362 0 obj << /Type /Annot /Subtype /Link /Rect [ 62.023 555.954 172.067 566.12897 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1060 0 R /H /I >> endobj 1363 0 obj << /Type /Annot /Subtype /Link /Rect [ 62.023 529.555 186.752 539.73 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1213 0 R /H /I >> endobj 1364 0 obj << /Type /Annot /Subtype /Link /Rect [ 62.023 503.15598 243.59999 513.331 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1242 0 R /H /I >> endobj 1365 0 obj << /Type /Annot /Subtype /Link /Rect [ 62.023 476.757 187.97299 486.93198 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1270 0 R /H /I >> endobj 1367 0 obj << /Type /Annot /Subtype /Link /Rect [ 62.023 450.35797 158.625 460.53296 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1366 0 R /H /I >> endobj 1368 0 obj << /Length 1369 0 R /Filter /FlateDecode >> stream xK8 :[u-:Ln `;^iشAȏE90(N$0MvEĻhN+ʍ23ZФ K&9y50!Fe?p0X#:N:s2kX2.E;tHJ?##+V 0a&ݥHcX`0udk> j5 P)0VTĂ#k`y衟ts~{,)pczKudv ռz{Pe%lZlG\# kjQkI6BAo%_}+%$U>n fvEa-Q-fSxJ̿fb/<,X<R-%AZʙ~ξ[rCa9]6dE0&Z+S˸6g0ya4yW4e\^Bs):COUjnXRp1.M, ZSeSy͐;:fPgӰeV6!gD#pg~7[ >O¾CP doIiyIf*G?5UܬlYڌec䯪|Kw Rea\)4S"C6+zѯR0*Odžٱ.@ $T6 9h/]3Zd>?M2&޹Yl endstream endobj 1356 0 obj [ 1355 0 R 1357 0 R 1358 0 R 1359 0 R 1360 0 R 1361 0 R 1362 0 R 1363 0 R 1364 0 R 1365 0 R 1367 0 R ] endobj 549 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1368 0 R /Annots 1356 0 R >> endobj 1369 0 obj 948 endobj 1371 0 obj << /Length 1372 0 R /Filter /FlateDecode >> stream x[s~_Kf?Is6ŞC%R $@Ot3b.>,}῔0MS$n`KG,Q#Ø`eA|Fnhdn,~`0:Mv,>@ʒsP[e9Yq'Qύbo=0nU @!O }mfW ~n]<, 1"653d9/|.SIbr$E]%241 L2ѶCҁ߰9im'v 8d]cq$98sfT<[w@=/Č'a1&,ELNBCT9KP(cMpD{7iXb޷F;gr(&)b>9_&BR!F\@M?;uySebA "{,yuWyn~zf̂}FW'S:?qy~e!5fv*)]/YáWJp43u}^57p7a6nniכe֊RYU+me ԍ,cV\g 8'~Df0 8L$,M*Md | Y*(YʰT6{exΐ-!ᓘIMIYO9S$ְvP^5]9܍#ĀLz/3OPnqkc\PM(uO|H""&o "{ ;A*9A&}8s}g;5 SRP ޜa09Cl%0w4Qm CyKtUV!pv-e7eue |iW'l=!Mc@?D_9*mךl]~RLL²2˶eD a.kW]PWn)D\c|ЮNK]\[I&Pm.ai*a'!Ouq j!,[}VK3[--{l.[-lwV5IޜfθklR9JղBpY6Od͖g6[ZWۼY_'C~YZ3R<囈=E|-?M[^`͸闵,U ˲v 'k--וּ{ j']Ͱ ~+O:z*hgV}㾌Uތ f(O:CxևvQCߌ' D`ґW+O68@NƝcq'ni9C&'] cUr.mCAB+'S?i߮3{#n]px CDһ^]nu PmQٱ,wMke8nEwuY9d#"7 SUaNTmpQt6sCƘE,$)oC1/};B'jA.q[ aӕW7$.?wS=t3hFfUwrPΊ*V}ww0UU7PO kI,YmoȚ!!+i;2%%XpI3asn} ۆ14"AV#Itɐ<c5읫5m'HdĺX5V"*ĩ䂞ëծ@&)ptt퍡t!6C,m@ΌV+M QLG}*N,mi9SClչy8r4{v,|YpYnq/{"QSv~/FsVEbc2NtOWl7,iFo}`|_HkYVUl~UT*4ML'faܢޗ5/&!W`$?&0քQݚI6΃VQJ>3g]x,,q1m٫j?Cltz5AR M@ȪLe;clc;?u.>=`j6[X)7_+ endstream endobj 1370 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1371 0 R >> endobj 1372 0 obj 2705 endobj 1374 0 obj << /Length 1375 0 R /Filter /FlateDecode >> stream xZݓ۶_< @n.3njԭݻ<(Sn{$H3I%vX@&. 'a%I"` Gp0 CE, EL%֋\ݿ͗1kK,v 70b T Y|!DfB87/b o$ $ݨ@(M 2cŇ/߂.܂%ckUcZ@\VMZ t g*NQ$b<2D 1 >d1iY@Khmsu + &$"Zcp4ǥF\e"El79" ]XJe`Lh1V"a4,e6~5ɼ[Go(RcO5m)[<=*$B vP 7o/>۩ǛX2[.1 R gc"=l;ެU0KMzDR{GT){йz+^n!q<,8\H`% ,RiMTYA,QLҰԪ_,Ar$ٓ}D:D#$D`i L^zj iZ&^*Sj l@懁ە-&_7Eh F4]he*(BthV*N%fI$Bu62U}ܪ,kCӺ+ܺtVO_X_cZSWyWi%e~+фaXJYEԁnmcO*"' |N\E7-^ORsȗbwxWS) co G+9 tG@]$1[db3FragPM,=3ջ0{uy7.% 帏h{ٮQ.2k1Aaۥ>"(0{ҥ.~8V־)|w֐kUu73!!A`eɶ<-rx\鱗w:_prjlDrk S.z&UYU{ #s% OQQlz<cS]b=UkR,n~Hۆ$zw^ek{ןd\J8¢Cmyc_P!Ł(bL$jN  'Uǟڄ꺃}= o(ܺSQh}:U֟HRg;ۭ/#rrU'w >jP5 QAWw6}ؽ N Sh:6.*z[Ĺ d \dKn>ȕVB#hRՒ#:o|m8X)*c9G\(ZLc@G{@mWԑȳHM07r}bS/}!71-qV 3ɽ'fzif!B^:ڦ5ܧɅjpZZN`psZ['4erwTiһ}!ݴ׃-]m![|4I7`N"L>̣`Rɹlw-8QMBAv-e0FKYihpOg}fں'9LS`g6ʼvtwiNDbjϮKDϊ=?ڋpoU~ܽ^@?Ly αcorF9|=wu(X7uZ2QQoV.xW.$o 齓ivuv|7C 9VLX[`NV%mp,vyipPxV^J,g%ɛaĹi ;ҐJmL S*}^Bڪ/nJawLP#+SBjwzshesL7'~S qnʘȊVNdE#DޥY>+xNGs(n3LI'˫yTSW*~L9˛jGi`~MOCaCB{8dE7SVYٵӓXن8&"" +uOٝ*߸~eoR2pW}GLCŇ"z."E_3y۬b*Ĵݱ(&1f5KQN~Or;z7?MY7Ba?0/O2~sQ8ݽ@PU6xs? endstream endobj 1373 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1374 0 R >> endobj 1375 0 obj 2666 endobj 1377 0 obj << /Length 1378 0 R /Filter /FlateDecode >> stream xYo4޿"ڧnv$B;v0$n;V !PfkX4n w'q^I6vڭvBK ۾sCZgp[ ۈ86umQ 3ۥ[=skg}Xg!NW 'ҾZm_f Y~XfADeY}٘t{pTu٫+b!l[[ B|y 4m~;=DZ8\6FīY|B$mzFuXh :;6%`.DROƥ6E׷'{QOb9D{;}{רdY'M*'BP o4[[\Qr,&aB}dsNEǦC ΛQ,PW<heiZ)ET6ؿ]qho3Cò߃s9*p#7ܚ[{}mrJa:]" " 6C]pʻab5G:oD+Se]ϐ{3ɯ@-"BP=z1Ï'Ap+<juĨρe qvcAG6qkjrAv+E4kZe)O?VbR:8/`H[J8>ٷ.ZYīyX¾}UI[ͯ@a)Cڐ˃.,"Ws .e EWpђvK0Mt5!Du"!X.x ֏FAU `vsd姻bl͙jPOAߍ|O g7B%x*4NilvMK.Tbq yT`G$yZ68OҺy8AD4SZNa9[=L|5~Wkp,?|-|LiA+.M^%BmL w`d1Se$CS!>D@,IҢ8?0&*funU|̂x  5|Vz}9)4L*(*WVmPM**3cP@MT057]b0 y EFpQevokzzUL(4IFz~ \ުc84^V# qR_tMFa/v^l5 91X JϻgפRD Yi~2vZTJSN׎8cBl8RZ qU n"ߔ sPMI UI8fq2sVa{!*lP.uIX>̶hKCꨞ앛QՎV/.. \M@߫)y ܐm%ϒ6 L)etTϯwy$mS(3 {6] D!H}ql Ź6: }L8.nvo]~Mfg-a~8Lf/ߍ>%̔z}LP*"V(!uUh/NE1:cAU>xȒv^H=UA]GiK(4Ԡ*y B(<`]SOB:eTt׎k̯Ѐ*t2q{E=K \ۘ"Iف@!"U iVf#WhdAܵ~ϐ~uכ?x~iԟat7JbsN좿s5[hPSBU5ؓMFpz֨g"O2A㴧Iss+B{WŤz3Bf27LBp j^sw\|qZ| VV ݪVcepB} 0EQ8P4T* ʼsh!$__f5t BWeS ||v P^S'bp)uiw&1GhU6~`-.i?ʫx6 7*A[7ܤk(t\_QoJôSt҈V*Ef5v&)bv YXYkpm‹(6n/:\ 6mWP-t(OoT%v_oXwj:|}$=sH,yxJedg**VX2ڋ. дi]ˆ 3bƪNCeC%Y.O:BD endstream endobj 1376 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1377 0 R >> endobj 1378 0 obj 2325 endobj 1380 0 obj << /Length 1381 0 R /Filter /FlateDecode >> stream xZo6_!)\ yE B˕MbJ(R$#[t!ș % " plVH$9A a,!9*2<%6 쓯|"W/i:vVN7M0ʓՄ+r`|ӌ!SYmӸG6p!EQ58n=3@Pxǧc}8$%w?#X)3lH>-m~Q}18hit(ϔB0`?fGSd(à &u<Od6`p0!mjӄG(f*/h&R8OxZ$0܇#$&a,gP!O' * ]aѿY^z zE@{FCɣ~M!PP*j$ :n*u&_bpL%߫.j'8>ʙ|E|:(wqGh%Bφ_]ge/Ewػ1>Uݮٚ/-sV[J-4?ck{wsyO\wD*i|4Ŧi[8x>ՇW4Zfqy\5B \V?fB0='jk`̮=; IqY8_?eJCYrhΡ iBO;;!XY7z]k"V!YH{D*eފTfRom՝CT-OJ=f@ MWjs2 \fvS*faѶ??ùtmɩym! Si.?RKӸD_Na.Ft-wKKܒ3~[:|)b^I%vgS!y> CfAW[}CzD/#|v5.͟G͟-͟#4c^׉K: rv_@o=*̌`}ywV۶/[qQ#,TtrS-L?.۪LY2 %옲ӎy78,1pvu:݊2p(B&Hn?w;g*oeRSo&8j]b0.z%qfX\:l"s\=s]2hӚ=i_|.mcsNRq#bDf_4RS 2k̉jH}X8-'ݎb|3:;Wɑx&ʑZ̀z*/6ǪJj,C"* y MZ?=5@f.riK9ou񟰞^-r<0%t"A5/ (%jdL 2llha4ŃBV E wt~Cz`{e\Q@]>R(M9&o.\ݘ1k@rXNWuNݿ=4p үAѩGhH_YP@~W̋17P=pæŎ4ň*i }$'u-k RݡE$XΣK_ mK򸊇9u!=4^=RS-QkSN?nl endstream endobj 1379 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1380 0 R >> endobj 1381 0 obj 2317 endobj 1383 0 obj << /Length 1384 0 R /Filter /FlateDecode >> stream xYߏܶ~߿BФD"uҺIjv|mrynUhWW#DHtq`c5"g _E!8,6mH$ f L9<ǘ&BNb,xPLJodqm~`XqLM?n>rDXqaW"b9&QB{y$$7:4-rѵ:+,">.np`i D(~К^dz_ 0ݹkgCMu, o a[itΛg$)'o-'? ,a +ddel@s3ڿ/@% y BT_Qvhgf7F~tQ6'v Fdp鬌ʻq`md9G !d_pjGKy_~2;4d̺잚i53Vl(;dR"Ll>[ɺ3@mϽ?|j"o^ꮺٷɝծj WG)EYςV>x%9-pKYhYc$>ê?;e35#ؙZY Vg)j >Y8(Fل/HPuZc^Pn+Ջ}w*k9D[돋V[I58Q <^ \3$x jmtΏ ȃVS̮ My B"Pu<7oTuӯoB13Ųл |oA1 FE]͐jL<Џj;Ə7g6|eU9\cpJun {d0 c9vXJ[c&')x5i,iจNYt5]̉/'zJ6^>BOFݘ4[W"[hvNI{Pټˢ|^lQ2 endstream endobj 1382 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1383 0 R >> endobj 1384 0 obj 2181 endobj 1386 0 obj << /Length 1387 0 R /Filter /FlateDecode >> stream xVMs W09ه3MgziR{8VM߻HX8u&x,޲`Fn~i(,UHF TDFAe0I3aȚ6VZ7Zl _g$@%9''}$yDPI[kV{ )]U:Zirwcdr \SP >qqMFiUlcLߒ/S\ Mj|LԇZR(JCJ#f)UfFj(f1SA;p6\[ײRLfʘ4^}B9$'DZeҷ b2Lv}z DxUyHK$&B mhS*p€wR"붜pyG>,/͢U!X|OsqaaX"#2cLSg(54*?|㆓i]nX[/RP )r~xF@lܭ~L鶕E=TщGԅ #{&c*#DrolBCL+'W>'KhL>k`)fִfփC#~T7T0j2Mtu=6Ј.W|^T / =)2AT `LuRPU mf])*[N֚+7/+_NRZnbrzW|IofOqnYc\+;mg7pl\/-wnWn\>4\59&/3d,Wg-ыo{Q=&&cyi endstream endobj 1385 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1386 0 R >> endobj 1387 0 obj 828 endobj 1389 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 740.74695 280.611 750.922 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://osflash.org/documentation/rtmp) /S /URI >> /H /I >> endobj 1391 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 714.34796 259.799 724.52295 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://wiki.gnashdev.org/RTMP) /S /URI >> /H /I >> endobj 1392 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 687.949 366.18002 698.12396 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://wiki.gnashdev.org/RTMP_Messages_Decoded) /S /URI >> /H /I >> endobj 1393 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 661.55 302.611 671.725 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://osflash.org/_media/rtmp_spec.jpg) /S /URI >> /H /I >> endobj 1394 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 635.151 427.901 645.326 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.acmewebworks.com/Downloads/openCS/TheAMF.pdf) /S /URI >> /H /I >> endobj 1395 0 obj << /Length 1396 0 R /Filter /FlateDecode >> stream xU[o0~ϯcP[&U[  @ֆ0B~N.Tt|߹PDsEG F)"QZD#lR$)&#*0U &*!D0@CHWt%c WW=>qGdz.In݃ .{!$]BFa*=i:Bc4aB lz&,SVx4Xng81 "4a" #.f?r4O8}Aw\Vgk!:Č'}r|44v\V0ژx2<ܧCR <[(EE75%VFc!!P J%zFi3K@ER+bՠa;Mtf,|zR03 aO\Rc?7iM l&/]w|ۦm(^4"A}WY}ntA~<x7I }TQV0,צ .fMOB뤔lKxgp׸3w?4_|뮤L"ثn)jQ e[a׻&VF3ta4WG_r\_f6 %03~u;K3U5_jvc2KdM:nZ 󦈳 zl>„KC=rR,r~-Y0=_&ten&[}<5 endstream endobj 1390 0 obj [ 1389 0 R 1391 0 R 1392 0 R 1393 0 R 1394 0 R ] endobj 1388 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1395 0 R /Annots 1390 0 R >> endobj 1396 0 obj 733 endobj 1398 0 obj << /Type /Annot /Subtype /Link /Rect [ 135.023 506.89197 196.161 517.06696 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://server/) /S /URI >> /H /I >> endobj 1400 0 obj << /Length 1401 0 R /Filter /FlateDecode >> stream xXYo6~_iRuAMZ-$[! ֊w$C( 9"栙Cg$8 )wdž0S0.wΔĝ¹|t?8l u~|3ܝ }|=x=O4h($G剾jy(8i$N'IHp6GŹZsRY?&=% /)T!c7Qv{Z&rmIRɶP1(YRj6ek37 TG+F3CpEndz[&ך,u^7m4m4xnis|MXeG*!7/l+K~sNK% sMÎRea !R ăʑ$fxjp`` JQ%N=nLh8K9n4 ܌"ߋ&?.baZ5DMmUc_v Z #b+Wк0ɥaеޤ·u]}݀ȋ#wXF,Zb '<GB qQ :%_uǠ=/d]֙xC 2 3 2EFI Z@s0j@yO/Tw’ހr=B݋NMU^icj(N8d&y,cŤ$Q7ŔD.րc~9Q9tIfuIN> VWA䑘m-c3\lNȻÊcpLyp> endobj 1401 0 obj 1777 endobj 1403 0 obj << /Length 1404 0 R /Filter /FlateDecode >> stream xWIs6 s]Q$-dIeS9sA=y4Hb6n(&ؖbi=-(IV4y9֔Ndgԇ?bbZ89vFg#ۮdnW(klT\p] M˲==YkBImr2PGUvTQFGLdsN q:55,"@J€IK(Zfu=K˿\ؾtR}p+cidZyomfYVd}vԭ6Ffҵ+TN"Fd(ԿQ4~?I5/Rh^RgAb*vO˵Uժ3!#3]ژw1v KXAit\\ճz]ǧL'u廔K/$5uǍg!L3 @D+? endstream endobj 1402 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1403 0 R >> endobj 1404 0 obj 1543 endobj 1406 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 704.44696 445.083 714.62195 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://download.macromedia.com/pub/labs/amf/amf0_spec_121207.pdf) /S /URI >> /H /I >> endobj 1408 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 641.748 445.083 651.923 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://download.macromedia.com/pub/labs/amf/amf3_spec_121207.pdf) /S /URI >> /H /I >> endobj 1409 0 obj << /Type /Annot /Subtype /Link /Rect [ 448.14102 641.748 532.52203 651.923 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://osflash.org/documentation/amf3) /S /URI >> /H /I >> endobj 1410 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 626.349 198.683 636.524 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://osflash.org/documentation/amf3) /S /URI >> /H /I >> endobj 1411 0 obj << /Length 1412 0 R /Filter /FlateDecode >> stream xUn0+xLHME@I(,v~~,k! q͛#+F2jZ"yI?dD1 \&)Ӣ=)HsE*2Y+FK~Zb+$@& ow%(HHMBj0 M\e"MGJʹ;!q@5Ԉ΁a*✦V#_J] SI%xs.cz;8-#{1CM'cF1ab6Y!904ON֍Pi6-652<<% Hf70Fvj"FcpAhP %y$oɗ% %d8 J[10E"`2cqNkq0U8rYK_a)e?B] Ϗmiw./v,pX;o4P ܬѷ-wyOIP8I]T^##/Xɩbֽ_}7 /潦NZ[,nNcaeZ찪7mE;KQ8s7s)Y7bߥ4zai6+ͺ ZebѼf:{ϲjxc'Mv&tNyOxv4T/"J/4wakXLV_D%j)DUkUn ^&-z endstream endobj 1407 0 obj [ 1406 0 R 1408 0 R 1409 0 R 1410 0 R ] endobj 1405 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1411 0 R /Annots 1407 0 R >> endobj 1412 0 obj 709 endobj 1414 0 obj << /Type /Annot /Subtype /Link /Rect [ 325.687 581.854 457.126 592.029 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/io/utils/ObjectMap.html) /S /URI >> /H /I >> endobj 1416 0 obj << /Type /Annot /Subtype /Link /Rect [ 463.242 581.854 490.764 592.029 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/io/utils/ObjectMap.html) /S /URI >> /H /I >> endobj 1417 0 obj << /Type /Annot /Subtype /Link /Rect [ 325.687 566.45496 535.391 576.62994 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/io/utils/ObjectMap.html) /S /URI >> /H /I >> endobj 1418 0 obj << /Type /Annot /Subtype /Link /Rect [ 325.687 551.05597 402.709 561.23096 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/io/utils/ObjectMap.html) /S /URI >> /H /I >> endobj 1419 0 obj << /Type /Annot /Subtype /Link /Rect [ 325.687 480.559 457.126 490.73398 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/io/amf3/ByteArray.html) /S /URI >> /H /I >> endobj 1420 0 obj << /Type /Annot /Subtype /Link /Rect [ 463.242 480.559 490.764 490.73398 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/io/amf3/ByteArray.html) /S /URI >> /H /I >> endobj 1421 0 obj << /Type /Annot /Subtype /Link /Rect [ 325.687 465.15997 512.775 475.33496 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/io/amf3/ByteArray.html) /S /URI >> /H /I >> endobj 1422 0 obj << /Type /Annot /Subtype /Link /Rect [ 325.687 449.761 425.325 459.93597 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/io/amf3/ByteArray.html) /S /URI >> /H /I >> endobj 1423 0 obj << /Type /Annot /Subtype /Link /Rect [ 325.687 426.26196 480.974 436.43695 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/io/amf3/IExternalizable.html) /S /URI >> /H /I >> endobj 1424 0 obj << /Type /Annot /Subtype /Link /Rect [ 487.09 426.26196 514.612 436.43695 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/io/amf3/IExternalizable.html) /S /URI >> /H /I >> endobj 1425 0 obj << /Type /Annot /Subtype /Link /Rect [ 325.687 410.86298 512.775 421.03796 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/io/amf3/IExternalizable.html) /S /URI >> /H /I >> endobj 1426 0 obj << /Type /Annot /Subtype /Link /Rect [ 325.687 395.464 449.173 405.63898 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/io/amf3/IExternalizable.html) /S /URI >> /H /I >> endobj 1427 0 obj << /Type /Annot /Subtype /Link /Rect [ 325.687 371.96497 595.88 382.13995 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/compatibility/flex/messaging/io/ArrayCollection.html) /S /URI >> /H /I >> endobj 1428 0 obj << /Type /Annot /Subtype /Link /Rect [ 328.745 356.56598 506.66998 366.74097 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/compatibility/flex/messaging/io/ArrayCollection.html) /S /URI >> /H /I >> endobj 1429 0 obj << /Type /Annot /Subtype /Link /Rect [ 325.687 341.16696 502.358 351.34195 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/compatibility/flex/messaging/io/ArrayCollection.html) /S /URI >> /H /I >> endobj 1430 0 obj << /Type /Annot /Subtype /Link /Rect [ 325.687 325.76797 424.093 335.94296 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/compatibility/flex/messaging/io/ArrayCollection.html) /S /URI >> /H /I >> endobj 1431 0 obj << /Type /Annot /Subtype /Link /Rect [ 325.687 302.26898 581.217 312.44397 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/compatibility/flex/messaging/io/ObjectProxy.html) /S /URI >> /H /I >> endobj 1432 0 obj << /Type /Annot /Subtype /Link /Rect [ 328.745 286.86996 506.66998 297.04495 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/compatibility/flex/messaging/io/ObjectProxy.html) /S /URI >> /H /I >> endobj 1433 0 obj << /Type /Annot /Subtype /Link /Rect [ 325.687 271.47098 502.358 281.64597 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/compatibility/flex/messaging/io/ObjectProxy.html) /S /URI >> /H /I >> endobj 1434 0 obj << /Type /Annot /Subtype /Link /Rect [ 325.687 256.072 409.43 266.24698 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://dl.fancycode.com/red5/api/org/red5/compatibility/flex/messaging/io/ObjectProxy.html) /S /URI >> /H /I >> endobj 1435 0 obj << /Length 1436 0 R /Filter /FlateDecode >> stream x\[۶~ׯ!\[Rǝdiw&)bU<n/(IY[@ 5ͱv-/ȑp<<A\P݃_DǶ9wf,dLjbco~^.Դ3VW״3ڴ@WxsT7G` {E&΀{./_L롞mP;1'"t%cw|p<S7^2Lr)z!NKPTzLk8crPQL8Liwb$O=٣M;Ж/Ҷ1,NqyD B/׳N %-_"LZ°{}``롞mPI9ue2-ԔA[~A̦i+Z0^\$\e:c6<[?8<` Mc ~59: XyJ&d{IDF ?+ c˸i^/SJ8w~6f-*FT9cV]K.I¤pj9r6<5$)=Vfgi:_:6FnESRw>O1I$ } bE Vè=ԓV"S|<_fU?/W@9F)&ac O3dVY 28@=) h=] gel%E:fCVEOST8~41`W)bIt\v\kDUf\͆'IXQI>ؾϒD:A)=Vflgi:_:6[N*VY3o?_>k=&SVDe- Zim^ Ȝh@=)Q h=]^x]/63lL+Tq\*ެ@('wYBao4T:fo0W%"9< B;[NmyxOejyb&'O=ۣM;Ж/Ҷ1,9H*uoIZF{}`dv4(mP:AC.9Ou?O|Fmsངe.Jx 9שHPR;/]gIb/ =xhED2Ѐ̉ԓ!V)%_\r,dr#%JiUec<b\݆y."($O7r|WtzɼH /p={.o!*T^a #:v \ J|Wi%oP!îxc^X=Ph͡~YǍ|>WlFMiPtn`s6[P2xf1 .y7c\wJd endstream endobj 1415 0 obj [ 1414 0 R 1416 0 R 1417 0 R 1418 0 R 1419 0 R 1420 0 R 1421 0 R 1422 0 R 1423 0 R 1424 0 R 1425 0 R 1426 0 R 1427 0 R 1428 0 R 1429 0 R 1430 0 R 1431 0 R 1432 0 R 1433 0 R 1434 0 R ] endobj 1413 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1435 0 R /Annots 1415 0 R >> endobj 1436 0 obj 3326 endobj 1438 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 740.74695 194.40399 750.922 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://osflash.org/flv) /S /URI >> /H /I >> endobj 1440 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 714.34796 428.57202 724.52295 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.adobe.com/devnet/flv/pdf/video_file_format_spec_v9.pdf) /S /URI >> /H /I >> endobj 1441 0 obj << /Length 1442 0 R /Filter /FlateDecode >> stream xUK0WuƯJU.j+DIRPПIbN]!y|aHF1VkPdM$9dD1 \&)Ɍd sEćِz"(xdf;w9CAO-- 5L[+bXl79Ҹm[ Zfmjcz T&@YNaJ5H-X!\P4lW2<Κ]TBfyNm4qauOn=H}:w]V߫%B02>Bf-UB3K(oF՘~틝efEE-d8\2j^[$߯mShW|x]8a䁕*fF dx@}Vm ?k#u׽4DeW>MձGBܜD?é8A].ȫ_]V4/λTHyyQa8͏b9?[O82 endstream endobj 1439 0 obj [ 1438 0 R 1440 0 R ] endobj 1437 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1441 0 R /Annots 1439 0 R >> endobj 1442 0 obj 618 endobj 1444 0 obj << /Type /Annot /Subtype /Link /Rect [ 173.614 686.46796 374.793 696.643 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://gregoire.org/2008/10/06/red5-h264/) /S /URI >> /H /I >> endobj 1446 0 obj << /Type /Annot /Subtype /Link /Rect [ 332.245 577.188 512.00696 587.363 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://red5.googlecode.com/svn/java/server/branches/paulg_mp4/) /S /URI >> /H /I >> endobj 1447 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 561.789 238.415 571.964 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://red5.googlecode.com/svn/java/server/branches/paulg_mp4/) /S /URI >> /H /I >> endobj 1448 0 obj << /Type /Annot /Subtype /Link /Rect [ 274.132 511.90897 519.3 522.084 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://osflash.org/pipermail/red5_osflash.org/2008-January/018483.html) /S /URI >> /H /I >> endobj 1449 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 496.50998 201.741 506.68497 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://osflash.org/pipermail/red5_osflash.org/2008-January/018483.html) /S /URI >> /H /I >> endobj 1450 0 obj << /Length 1451 0 R /Filter /FlateDecode >> stream xYm6/M.M{ۤ IVmʢ*P )Ab˼<3"\ '˲L)+1X0 1(a+O%FWW;bqQ%J#zB)`W?X(1 ibWEtR\`{HVǐtW[\•](dqr d\?7_.^,F޷}KsJ *ﶸWO>,EWsȺgIlϷ,~A:lXH_oI@Y0q 7ᔦɄ U~ w Fb332۲#O}ѧewj88Avl./ތOUAqe >Ry[ڤ7jK6$a>W˾q}趧wh"UQmc*8MѽzkѽG'!8K~fnEv@\ )},&Ly)'͵i'Y@N Ng}]tD",cVh['5U>C7k?кãsD:0H&J>PAV !py $/ :K4P 49“!Q.s35 G_2 ,DxdQ){(grt/$@J NU(͵)BJD.T!fQɌcL8_{r,4-py㒋,BwoWA fRdQt1EeU95QVr-m:n?t-#퉶g"ܠ$i࠲$z?  V?T bGā*W}&1ZךboOF&()"H3߰E U|i!Ӻ}I% `)L;rs%˺+zkْaȡH7˄%-=o>xQZWE $ɸW?6:#g-kK@76.&4agݱEÙaQEݧ툢Ia+ PÖRa,.+J@yYN#R;\tPy ~ے _7#n$3rFH#AYn*m w30 U;f' nW@`~ 5js! uA=9o0vğyMTw8 #jB<(VLud<(VvMqÈJgrw2caa 2O}5-d 5 R,7p^G4 d:c8'Qoo_ĄCtKksYWphNZ .L5K[mHo*_ڂ+3Jʆш<R{l h)X ΓN.n0/s;qs;&va8/f\yUJCmn+Mѕx! Lz]}tM]N.iYzq$ىQ-9d*[“3C2 鎑0iYDQC6$,tw6;`Dϓ4i ƇK@m E2UnYaASGoNcdq1V9nt[#|꿖 endstream endobj 1445 0 obj [ 1444 0 R 1446 0 R 1447 0 R 1448 0 R 1449 0 R ] endobj 1443 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1450 0 R /Annots 1445 0 R >> endobj 1451 0 obj 2345 endobj 1453 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 502.59598 323.973 512.771 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.mpegla.com/avc/avc-licensees.cfm) /S /URI >> /H /I >> endobj 1455 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 473.99698 353.365 484.17197 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.flashmediaserver-blog.de/2008/05/21/54/) /S /URI >> /H /I >> endobj 1456 0 obj << /Type /Annot /Subtype /Link /Rect [ 127.139 73.616974 307.506 83.79198 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://labs.adobe.com/wiki/index.php/Flash_Player:9:Update:H.264#Q:_Will_I_be_able_to_multiplex_H.264_video_and_AAC_audio_into_the_current_FLV_container_format.3F) /S /URI >> /H /I >> endobj 1457 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 58.217987 774.62103 68.39299 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://labs.adobe.com/wiki/index.php/Flash_Player:9:Update:H.264#Q:_Will_I_be_able_to_multiplex_H.264_video_and_AAC_audio_into_the_current_FLV_container_format.3F) /S /URI >> /H /I >> endobj 1458 0 obj << /Length 1459 0 R /Filter /FlateDecode >> stream xY{o_HSԆM6]qE| (r)-̇BROY3|ʗu`g9ܝ{V5:,y.([}^K]u S-frw-McZikكMff|VkW 0b3[;L"[ƟViL ν~-H^\z^s-oV[]u.|2LY^f/uuԶ- 3y Зh-%^T{ s&.n0wE,WűAMfgd.1mCmfets/"%8KbMC2}s7.KB߿D-?2ob!XMpϊQg0JOu"zJ~g- 8Pږqq=yqT›;c;²M\t d]5 ,H9 e #;٘YuAREA/E/}b2Q]9sWE0CI_?n^!-Dh`jHF׽r!x "bO('aDJ; */yTw.Y&|A{uVuUC$.ű@R0_ZvaX4̟*Dːlt tHCJT`!(G&eI*#W2ݐ2lÄ7}9fs: 4dQmH[BT,J)fB4C7㖨1 f@\obbQ 7͔ 3iPzX=x'ʌLYzj~k]xS:XȢh"NT ,bE{L ೇL2aQ$*A.uh_ E! ;YUs\$_%T'e, (KRA|I1u,bFC>քSʼnuo8kT6Z1Q/;gs%}JN$sAco dPtVQ)܏.mhĩFB(GgAE}^Psip܊i܌B|CgGśˉ1wi#Zpms`Fg$3 :bKRm~'Lh[(L4,ۚ/NO(D(i2ZhLK韔b6Z.!ģ r4(_Ίgi6W92-ډjF^Di9 X{A~ 4}~J H6Ik2X Plxv b}?nX2}*zӚ 3_ط(T0MqF[! !"Ϭ>[ܢ\$k $0k,hrY4ܫ`-qj@bsJ9Dis$| en/9by>!t(74 /[}/Fi?̟4}ӈm6DÌ%"9j6a*kN ,xxÀQXb+Z~MY7 8B Ϣ0}ţ^0AGN4`Z*i3˥5'߱~k*> endobj 1459 0 obj 2453 endobj 1461 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 752.579 308.738 762.75397 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://s1blue2.waltertak.com:15080/demos/) /S /URI >> /H /I >> endobj 1463 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 538.56696 333.169 548.74194 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://h264.code-shop.com/trac/wiki/FlashPlayer) /S /URI >> /H /I >> endobj 1464 0 obj << /Length 1465 0 R /Filter /FlateDecode >> stream xWMo6W9 $Edz(ҢnEwAb٢c!c ,%JAr8z73$IR*!0ֻ난I 4 CDfEc"]p)JYphhIx^m~[| f$F<8.z -[ϋO``"b,;K쓵> /fklbkϏ  7 !b ;kGp3(nK\ěuO㌓$D9Eq2&^"Ĕd(Sg= 'mSm2n D)Yz)SfmheTE@_b^Y}x6&\P.qBHLp[,j֛tVEۡ[m|1̮rlgk/bå~˗ '(xb8B ?SNMp7y]k31w~o0kM?K}r2uRr??oE|: Q8IT_l@E7MZD~68+tl J'vO.W2`aV۪:-%Yeg.XeX.Md۴`Nf+!ͨ1,LY|JCu6Aoyw+}܎<8 |=ޖhe[~$ltk+Hu y!ɟsџirb3g~]Йُ#k-dҺK PΪ Ps 2 gǸH;4JqS~&ɬY\^ F_H߫_t Z` 5w9^*rp-Ԁepy}iRnD E{oY*wy^m3.( n ZtE^?[ɑ亗Ǽx1Ó§z)/gEoT!!mdQolU^[SFtLWuyV7 uCkRm!2} {hݲ*򘾤s+0Rxn?TY /]idwUy%"j{@2rX$uf.p 8bϓB0uèl,ˏ]H}tƝPHLISNOW#_<` cCѼjؽFp+ =8\Äh;prMᎂ2J0]Csio>| {4Y2W'ݵÜl]] Zu$mvsibS~;ۮs}2(R{w +_frFI /$9Pmw`wS[cH E?9P0ц}*z0FP*9_PC>n7b\@>|&po:;P>\xkPf9HL1j| x(@m<>-➢- endstream endobj 1462 0 obj [ 1461 0 R 1463 0 R ] endobj 1460 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1464 0 R /Annots 1462 0 R >> endobj 1465 0 obj 1491 endobj 1467 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 619.38696 518.43097 629.56195 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://today.java.net/pub/a/today/2006/08/22/experiments-in-streaming-java-me.html) /S /URI >> /H /I >> endobj 1469 0 obj << /Type /Annot /Subtype /Link /Rect [ 110.023 592.988 236.578 603.16296 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://rtspproxy.berlios.de/) /S /URI >> /H /I >> endobj 1470 0 obj << /Length 1471 0 R /Filter /FlateDecode >> stream xV]o:}Wot׌TڴUj>Ьh,t} XCmdgoC?R*!#"A`" %b!C))&B)p~6iIЮLvXzC9zFN!;wލ!0 d=Ť# 뼺Nv9Ŏۭ_D>Z @40 A4v}G[6gS*S)&]XǕj.)viߜW$̖)0.!c%dI@,a͖9Z;8 bvv2hTbIRybʑ*gW'g+s(SQ-4bR W8, KaR]0 !t&LzSNfMz{0a2[1g5g::ex0;@p!䲄D)̃(L+#}+Ktss;+Ճڞ.K0BJ}ճWfH!b T9CYUmgqz4yֽM](K7C`B A.tOU:="U)aw=萾)I?=owvz^MiA }f8GՇj8˨CRYZ^4']?}]UZZO^cSpvIka5<3|ug\~yG%Aw$37Igldu:D`)rYnU/˪}?t&n?V endstream endobj 1468 0 obj [ 1467 0 R 1469 0 R ] endobj 1466 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1470 0 R /Annots 1468 0 R >> endobj 1471 0 obj 882 endobj 1473 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 740.589 130.208 750.764 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.speex.org/) /S /URI >> /H /I >> endobj 1475 0 obj << /Type /Annot /Subtype /Link /Rect [ 136.324 740.589 242.089 750.764 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.speex.org/) /S /URI >> /H /I >> endobj 1476 0 obj << /Type /Annot /Subtype /Link /Rect [ 303.854 604.97797 508.05798 615.15295 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://opensource.adobe.com/wiki/display/flexsdk/Targeting+Flash+Player+10+Beta) /S /URI >> /H /I >> endobj 1477 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 589.579 301.401 599.75397 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://opensource.adobe.com/wiki/display/flexsdk/Targeting+Flash+Player+10+Beta) /S /URI >> /H /I >> endobj 1478 0 obj << /Length 1479 0 R /Filter /FlateDecode >> stream xYm6SNyWJMsij$8ca 흢0f/M30$_EC̽dwEڗa<# JL"%֐cLfsUf8N= sOa5~1?DS#;qۡCBg"xYF`dI~(0 Tm ybfyD!rv0#bDOю" dթL8t Mͳ7v  lND±³]XN56>ky!v}6?7m.+J'x¢}P,bi1(rly:"rYleȴtv<~4JvR6< 7$H-:Ff `%sZ^nv̲29efdMJ5Mc5[ZBa|Li8_2 DJpB )ʵDL^˦Ɋ鏃z1Sؙ@8m_a'LzMn4lmWRSt;m^9O]"Gbϑ|[7JjY7LˮgH۪Ϝ|%a%NQİ* ߾`nMX9BI_lflVl` P{}:[oڈ@h7nۿ K$lg1e4ITYl (8d(U{(ԥRnګTeyFFSnR~,ˇRDh5)dҔգ+:X 9FK-dkcyGޤYҰg_\ox/OeuW즞%e8@>Mel ^^G4hb]T臲f8M͸=$ SXsޖi}<äڊI=s4ӈy17A22 S!&FG0 ;n|p.>?vL\^˗/ >ťfvCYq~ yX!nv9p7Kq [ؚ`'" 3dGP sco0kw@9d( "Ae};hp!r!frHH9Wc(.N9 B8먼Z;ɘSrQLUؾhĹ\~~YtCFp:#\0ae=MMJ,PHsLN{WH &7ד?dy `!;ىγXigP?ׄB,fVe;i:h.J&SgK GAcmnD5ׇIw;"749㷙LM4WE؆$ uT8e26sS5>'=R'6K,}5j0_9,namd3J{=T>+u/X}ĔfդC?lG"?߹rf l]Yo.nGGJ0nW! y,TtSmR U۪vugkbG~~$[y@#p9OX'ɂ{o1wܚ龅1M!t%ׁ5sZ>v2] {6cyW_=L6w%W; endstream endobj 1474 0 obj [ 1473 0 R 1475 0 R 1476 0 R 1477 0 R ] endobj 1472 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1478 0 R /Annots 1474 0 R >> endobj 1479 0 obj 1960 endobj 1481 0 obj << /Type /Annot /Subtype /Link /Rect [ 312.368 533.496 346.611 543.67096 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://svn.mplayerhq.hu/ffmpeg/trunk/?pathrev=15028) /S /URI >> /H /I >> endobj 1483 0 obj << /Type /Annot /Subtype /Link /Rect [ 352.72702 533.496 540.431 543.67096 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://svn.mplayerhq.hu/ffmpeg/trunk/?pathrev=15028) /S /URI >> /H /I >> endobj 1484 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 518.097 172.712 528.272 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://svn.mplayerhq.hu/ffmpeg/trunk/?pathrev=15028) /S /URI >> /H /I >> endobj 1485 0 obj << /Type /Annot /Subtype /Link /Rect [ 106.36 439.99896 212.125 450.17395 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://www.speex.org/) /S /URI >> /H /I >> endobj 1486 0 obj << /Type /Annot /Subtype /Link /Rect [ 106.36 413.59998 501.94202 423.77496 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://help.adobe.com/en_US/AS3LCR/Flash_10.0/flash/media/SoundCodec.html) /S /URI >> /H /I >> endobj 1487 0 obj << /Type /Annot /Subtype /Link /Rect [ 106.36 387.201 495.815 397.37598 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A << /URI (http://help.adobe.com/en_US/AS3LCR/Flash_10.0/flash/media/Microphone.html) /S /URI >> /H /I >> endobj 1488 0 obj << /Length 1489 0 R /Filter /FlateDecode >> stream xWmo6_AS2)")0]Sۀ&Tؒ+Ɋa}Gz`seX((=z`8rh蓅l8r:T),#p1) B_^ ~?>.c6m$,7Rǂ&.vQQgvqsBpxs'MwL6<>έpre+ҤT~!̕LF>nem@%21ۥ!3=le5|dZJ  vSX?`^5x _&amH9 Tng$ M= U "wxmh[CoE99eXl_`ElǛ.;zL}@ˈl'u\izxnNgK^*C]j2zU.G6t~׌&C2&4j҉uuvqcpӱՑE0ƜψaAd^t N G؋q@se bMM=+KWty<2q (771NIV۳:N0'bQ׊һLmb݀m>tteivsDii:$ѫB_cV*4-^z0 ƜΐKR0mKaAE^'0-6Pjf8eqgYc.jo0N[Bv9PhSKz3*0$]_PH`-Ϟ?&xE?tGoك> endobj 1489 0 obj 1401 endobj 1491 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 786.58295 330.21802 796.758 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1490 0 R /H /I >> endobj 1493 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.313 786.58295 545.545 796.758 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1490 0 R /H /I >> endobj 1495 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 771.18396 333.237 781.35895 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1494 0 R /H /I >> endobj 1496 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.29 771.18396 545.522 781.35895 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1494 0 R /H /I >> endobj 1498 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 755.785 293.072 765.95996 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1497 0 R /H /I >> endobj 1499 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.758 755.785 545.99 765.95996 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1497 0 R /H /I >> endobj 1501 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 740.386 260.75 750.561 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1500 0 R /H /I >> endobj 1502 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.242 740.386 546.474 750.561 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1500 0 R /H /I >> endobj 1504 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 724.987 271.722 735.162 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1503 0 R /H /I >> endobj 1505 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.14197 724.987 546.37396 735.162 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1503 0 R /H /I >> endobj 1507 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 709.58795 386.237 719.763 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1506 0 R /H /I >> endobj 1508 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.766 709.58795 544.998 719.763 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1506 0 R /H /I >> endobj 1510 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 694.18896 455.061 704.36395 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1509 0 R /H /I >> endobj 1511 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.01 694.18896 544.242 704.36395 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1509 0 R /H /I >> endobj 1513 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 678.79 394.66602 688.96497 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1512 0 R /H /I >> endobj 1514 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.583 678.79 544.815 688.96497 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1512 0 R /H /I >> endobj 1516 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 663.391 416.73 673.566 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1515 0 R /H /I >> endobj 1517 0 obj << /Type /Annot /Subtype /Link /Rect [ 532.357 663.391 544.589 673.566 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1515 0 R /H /I >> endobj 1518 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 647.992 178.709 658.167 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1366 0 R /H /I >> endobj 1519 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.61597 647.992 546.84796 658.167 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1366 0 R /H /I >> endobj 1521 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 632.59296 214.884 642.76794 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1520 0 R /H /I >> endobj 1522 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.484 632.59296 546.716 642.76794 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1520 0 R /H /I >> endobj 1524 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 617.194 231.91699 627.36896 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1523 0 R /H /I >> endobj 1525 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.33997 617.194 546.57196 627.36896 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1523 0 R /H /I >> endobj 1527 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 601.795 230.701 611.97 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1526 0 R /H /I >> endobj 1528 0 obj << /Type /Annot /Subtype /Link /Rect [ 534.35 601.795 546.582 611.97 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1526 0 R /H /I >> endobj 1530 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 586.396 298.463 596.571 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1529 0 R /H /I >> endobj 1531 0 obj << /Type /Annot /Subtype /Link /Rect [ 533.764 586.396 545.996 596.571 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1529 0 R /H /I >> endobj 1533 0 obj << /Type /Annot /Subtype /Link /Rect [ 171.023 570.997 317.161 581.172 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1532 0 R /H /I >> endobj 1534 0 obj << /Type /Annot /Subtype /Link /Rect [ 527.503 570.997 545.851 581.172 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1532 0 R /H /I >> endobj 1536 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 555.59796 211.202 565.77295 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1535 0 R /H /I >> endobj 1537 0 obj << /Type /Annot /Subtype /Link /Rect [ 528.046 555.59796 546.394 565.77295 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1535 0 R /H /I >> endobj 1539 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 540.199 217.875 550.37396 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1538 0 R /H /I >> endobj 1540 0 obj << /Type /Annot /Subtype /Link /Rect [ 527.999 540.199 546.347 550.37396 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1538 0 R /H /I >> endobj 1542 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 524.8 174.436 534.975 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1541 0 R /H /I >> endobj 1543 0 obj << /Type /Annot /Subtype /Link /Rect [ 528.51 524.8 546.858 534.975 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1541 0 R /H /I >> endobj 1545 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 509.40097 248.302 519.576 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1544 0 R /H /I >> endobj 1546 0 obj << /Type /Annot /Subtype /Link /Rect [ 528.891 509.40097 547.239 519.576 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1544 0 R /H /I >> endobj 1548 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 494.00198 219.388 504.17697 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1547 0 R /H /I >> endobj 1549 0 obj << /Type /Annot /Subtype /Link /Rect [ 528.117 494.00198 546.46497 504.17697 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1547 0 R /H /I >> endobj 1551 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 478.60297 309.906 488.77795 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1550 0 R /H /I >> endobj 1552 0 obj << /Type /Annot /Subtype /Link /Rect [ 527.328 478.60297 545.67596 488.77795 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1550 0 R /H /I >> endobj 1554 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 463.20398 312.309 473.37897 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1553 0 R /H /I >> endobj 1555 0 obj << /Type /Annot /Subtype /Link /Rect [ 527.307 463.20398 545.65497 473.37897 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1553 0 R /H /I >> endobj 1557 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 447.80496 313.5 457.97995 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1556 0 R /H /I >> endobj 1558 0 obj << /Type /Annot /Subtype /Link /Rect [ 527.297 447.80496 545.64496 457.97995 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1556 0 R /H /I >> endobj 1560 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 432.40598 360.32 442.58096 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1559 0 R /H /I >> endobj 1561 0 obj << /Type /Annot /Subtype /Link /Rect [ 526.858 432.40598 545.206 442.58096 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1559 0 R /H /I >> endobj 1563 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 417.007 203.921 427.18198 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1562 0 R /H /I >> endobj 1564 0 obj << /Type /Annot /Subtype /Link /Rect [ 528.10297 417.007 546.451 427.18198 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1562 0 R /H /I >> endobj 1566 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 401.60797 243.037 411.78296 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1565 0 R /H /I >> endobj 1567 0 obj << /Type /Annot /Subtype /Link /Rect [ 527.927 401.60797 546.27496 411.78296 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1565 0 R /H /I >> endobj 1569 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 386.20898 243.037 396.38397 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1568 0 R /H /I >> endobj 1570 0 obj << /Type /Annot /Subtype /Link /Rect [ 527.927 386.20898 546.27496 396.38397 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1568 0 R /H /I >> endobj 1572 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 370.80997 217.715 380.98495 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1571 0 R /H /I >> endobj 1573 0 obj << /Type /Annot /Subtype /Link /Rect [ 527.96497 370.80997 546.313 380.98495 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1571 0 R /H /I >> endobj 1575 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 355.41098 134.012 365.58597 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1574 0 R /H /I >> endobj 1576 0 obj << /Type /Annot /Subtype /Link /Rect [ 528.66 355.41098 547.008 365.58597 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1574 0 R /H /I >> endobj 1578 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 340.01196 139.491 350.18695 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1577 0 R /H /I >> endobj 1579 0 obj << /Type /Annot /Subtype /Link /Rect [ 528.618 340.01196 546.966 350.18695 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1577 0 R /H /I >> endobj 1581 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 324.61298 508.80402 334.78796 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1580 0 R /H /I >> endobj 1582 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 309.214 158.018 319.38898 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1580 0 R /H /I >> endobj 1583 0 obj << /Type /Annot /Subtype /Link /Rect [ 530.046 309.214 548.394 319.38898 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1580 0 R /H /I >> endobj 1585 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 293.81497 468.43402 303.98996 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1584 0 R /H /I >> endobj 1586 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 278.416 172.612 288.59097 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1584 0 R /H /I >> endobj 1587 0 obj << /Type /Annot /Subtype /Link /Rect [ 529.873 278.416 548.221 288.59097 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1584 0 R /H /I >> endobj 1589 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 263.017 332.427 273.192 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1588 0 R /H /I >> endobj 1590 0 obj << /Type /Annot /Subtype /Link /Rect [ 527.07697 263.017 545.425 273.192 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1588 0 R /H /I >> endobj 1592 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 247.61795 448.66 257.79294 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1591 0 R /H /I >> endobj 1593 0 obj << /Type /Annot /Subtype /Link /Rect [ 525.984 247.61795 544.332 257.79294 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1591 0 R /H /I >> endobj 1595 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 232.21896 320.38 242.39397 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1594 0 R /H /I >> endobj 1596 0 obj << /Type /Annot /Subtype /Link /Rect [ 527.209 232.21896 545.557 242.39397 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1594 0 R /H /I >> endobj 1598 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 216.81998 396.513 226.99498 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1597 0 R /H /I >> endobj 1599 0 obj << /Type /Annot /Subtype /Link /Rect [ 526.501 216.81998 544.849 226.99498 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1597 0 R /H /I >> endobj 1601 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 201.42099 276.349 211.596 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1600 0 R /H /I >> endobj 1602 0 obj << /Type /Annot /Subtype /Link /Rect [ 527.593 201.42099 545.941 211.596 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1600 0 R /H /I >> endobj 1604 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 186.022 299.752 196.197 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1603 0 R /H /I >> endobj 1605 0 obj << /Type /Annot /Subtype /Link /Rect [ 527.303 186.022 545.651 196.197 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1603 0 R /H /I >> endobj 1607 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 170.62296 343.751 180.79796 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1606 0 R /H /I >> endobj 1608 0 obj << /Type /Annot /Subtype /Link /Rect [ 526.987 170.62296 545.33496 180.79796 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1606 0 R /H /I >> endobj 1610 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 155.22397 178.09601 165.39897 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1609 0 R /H /I >> endobj 1611 0 obj << /Type /Annot /Subtype /Link /Rect [ 528.482 155.22397 546.83 165.39897 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1609 0 R /H /I >> endobj 1613 0 obj << /Type /Annot /Subtype /Link /Rect [ 99.023 139.82498 182.094 149.99998 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1612 0 R /H /I >> endobj 1614 0 obj << /Type /Annot /Subtype /Link /Rect [ 528.264 139.82498 546.612 149.99998 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1612 0 R /H /I >> endobj 1616 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 124.425995 318.18 134.601 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1615 0 R /H /I >> endobj 1617 0 obj << /Type /Annot /Subtype /Link /Rect [ 527.917 124.425995 546.265 134.601 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1615 0 R /H /I >> endobj 1619 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 109.02695 260.494 119.20195 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1618 0 R /H /I >> endobj 1620 0 obj << /Type /Annot /Subtype /Link /Rect [ 527.842 109.02695 546.19 119.20195 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1618 0 R /H /I >> endobj 1622 0 obj << /Type /Annot /Subtype /Link /Rect [ 147.023 93.62796 403.94302 103.80296 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1621 0 R /H /I >> endobj 1623 0 obj << /Type /Annot /Subtype /Link /Rect [ 526.476 93.62796 544.824 103.80296 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1621 0 R /H /I >> endobj 1625 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 78.22897 221.211 88.40398 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1624 0 R /H /I >> endobj 1626 0 obj << /Type /Annot /Subtype /Link /Rect [ 528.102 78.22897 546.45 88.40398 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1624 0 R /H /I >> endobj 1628 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 62.829987 246.474 73.00499 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1627 0 R /H /I >> endobj 1629 0 obj << /Type /Annot /Subtype /Link /Rect [ 527.864 62.829987 546.212 73.00499 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1627 0 R /H /I >> endobj 1631 0 obj << /Type /Annot /Subtype /Link /Rect [ 123.023 47.431 173.834 57.606 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1630 0 R /H /I >> endobj 1632 0 obj << /Type /Annot /Subtype /Link /Rect [ 528.516 47.431 546.864 57.606 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 1630 0 R /H /I >> endobj 1633 0 obj << /Length 1634 0 R /Filter /FlateDecode >> stream xݒGvy_Od6: w+U-"{(2IV~r!Z|ͫ_:nO8뭺Zx[]||u:WfN?9Dc flƾh/>j_yy5|Mx"}TmSbƏq7ٿŕ~izz~/-1\]Ǘ?^ˏf|O>x#vK!l\vs[jf[||zϯ?3ފݶ㷤xK[ZW|q~ﯷ[}~\;{Q_t}/>MaW/_EzmK\<^jgZvs6ߕ͞B/ -U/׿駷?}_~O~:ӧϟN7E-棳5eKvN}ߏqs1od٫[1e7F}b<6G-UummK fKsZeY#yޞEs|'E:@úvƜEk+dF`-7cl.ۨպku%V~!Zpg.jڋ~ !s!s9ǜ9>yo3o9oVn6~̙OkfSk 65q[S=ZW̯-%~E]>l+2;wǷ累'{xބk/}\;CG.\2ܐ<\ѺkQ#nۍ[pmhu쏚[KF"]%mE[<-m gޒ:hzmF3c'^[ĩĜ8J8|] |T<7ߘ;g o8|5ld=X8 /N?+wm>: :mtgVMpu5樽T֝5|6T9 Q8"E6*I@ G#GWk)Z 3O\>wuQs {?'\JVmbUGyU!"HwN:r,Rp)D-^8~Q2E8ܪU8es p;exE𩘃aeh\%FxE]*\W f.bW*jUG'\TU- pjU0Rjs$YXfEZid8j~H qv q޶QI"VTGo7=UQ=[Qszˆ3⨹#mQxM1+"0G 8G(( fid(7[YG.tE (#hS˭EFjFvżp/b77rL WeF{a7q͒dW J ţ8'v?U«"׃;ٝu8`^cP3NEhuHL+GŎ Em,NZy&gZ9oudZ9hVihm#vF+:/-á& {ՂGnL+G-L+G-L+CYX 叢X5nFGihб)Kvt>Fn'jo62%`dZ)9Mj`dZ9ZOzfW͏L+G9Uj5`dZ)<:;d+-L+E3G\ "v>L+G9QjUŦ#Q{+?aPjͻwu8nKCpxZf8neF]*~?_`{:y{ 쵱Q{ 8Q4l6Q}Oq`<1k`q4` \1Yh^Ejc3G0Yhv68kc-6FQ{ 1Yh1Y9b{m8fmholYh1h1Y(x{ma8gmm(Qh1Yhp6Ѹ8Yfmh1ƽ62kcE嗀q4GqE;jcM6Ѻ( -(O1Y(:Gma8gmm((ý1x8fmC8fmu(ܬq4bI/rK)h} l^ѠM`h2G<)~Xo"EhhyeF76Z)ѵhxPV_'>e}Zr)wS4Z9[UcwS4#_(:RfbVQ{)Z+IV-hJUKu{$V{)Г9s=NkCOłmlc(we[Vg+?;T`>bV BJxwSԣ)5*fE դ-'=(v%ɬ ܨ|T'5)u^0v Еs 욱5Hv%f-hK] 58]~5j[+g[—[ng!.3h'lҶ!>wiGC]O鳓+uQod➟E2qRY7Ke7Cc,UŖ,g[L)H&n,UE$w?*bakd4 w*]Y ۍ{ŝ]j[[faH Y:p|]43{>{! bH|pn;1}wwлs?l>xwg{xyٞ KO;$"]44wh ,:IO70wr6CIOPh{AZLk Yig \w ,dv3T4Eo F[o[p X57h5jo(D[f7IJ*Uzo7q^J ,n lfd`T1͐$mf߀h8lDIE[QJLQR4'}J!RyHDmX#EEE[t|[|$DjEq}Z[6&}bCEmņ=Hn[ւ5I-򔅠'?d%/]O!9Ľi5t=\'%]OCGSdbt={9 혥w=8|m&hy8-Izv<8; UZK ,4f\hg6%v<D)]]܇8w7kxڕfnhpiJU9!J-sC!u\= cTLZBbhit5hMܹPA ʶ7<|ZS1dzd Z[!SaR(e r^$g/I{v uw=2[t5N|6rAʇ:5UG7(]  vz1f!cQy сU>NA3LmՐ l>[+5`mAˆ2ilj2Y13!]Q!lC~¡*!GAV–\jgPKE[i;[Y*aHe> f{REj>Z~4YTs*A658C^^#3 gig [.v#k+оǙXh ,抎brX~ Ό&_ :,::F8ɢmXΜl@Y[ ;9 UДQΜŌQ,R?ip,֟4cw8s֟4tٙM9_,@gbLY,@g pl)gLقQI3/}3g l[q] ljלm۔8Lkb N/p0LkSZ`SZ`Ӕ:u9ظ+_ hל Ծ0ů6OkmSOkS[`I-&z8؂ ٲM!l S [`69[.-ia lr؜mna l["6eg85LQlκmb lw]lmSI䟣%$-DhqI;\LL0H:^V(h|iiMILlBѲfTAZ߱;-Xd$g D}8lfU+kTJO^G=.ćaלXə+ ?LO7񀙞<ieCx?w|:)U?˳zpFbrҨ lQXH9f[W_j p":lQux8k6k. ,#4huUgO` Tɾ lE\QfjL0&E5Eը lIJX!`ubD ,R4R=Eը ,=o~؆;W8G_`-I0z}΢jX}-(=c2 -cflL&GZ c;4sMTcR1 lGأ/}5'_O{6أ/ lGh{6أ/V}bأ/}m,&YgBf`̝QZ!Ǹ) .9pI$bv$i$uM,$S\`ܩ+›XdV/#@Q؄]}(qVm\^Pͽـj{탣%ej]s GK`5o-I% W'Z<_{,͆#w({YG{8_{Ӿ[)exk@,%7QXGK`+I&FFK`QroQ9>e6`G#%3?(G$;y/ed^/Z O/-؍%!?_۰OZQXܛf{ޜs;:gi59@anGؼoG6sk$[vtb$ޏ4 l9܎.qnG2S!vt s;]`܎YvtMs;ֹvt,s;:gnlHanG< l9p{?g܎.oG m^30&6$-XC(/^k FV._=nǿQ|O)n}dLaD&&dcBAW-\?/ u|?+#&Xߛ8Vgj,ǽ B~wll[MŌ4J M P , Ą&ʖQOlXMOo,&M5ǭ%7P#_|u3 ,=H'&B}KF:q6P̀tbtE20҉ ӎ,7h-]ŀ5c@قa3[l{e1#|l2}Fxxge1#|olZm }Fhl\m- u[m yp6kzp66ζXggjl]munp46Ζ@Yqggjl^mm 6Φ(jl\m- ɭ6bj#hx9̟o ~/yd aX[&d#h+f̟6talnjZjB^-EiyGVQz*R"QlH)Z)Ed`$#&)d`dcb Zbj^osZ,5}CcYY3qX'ı;l-kI_T*r["6s4g>hck[a-BRށu =xXyT<344Q;ǧ>}9`sO~B!䱤9}yở o{hHqA9--# YFVp,DHr[ZFDYli*e1G04(g,$%fc`U KjV˚!Fil$89NE2qszs՚|dh~L'95}$Or'9c>ɩi&J}SZ-21Z`4'*aNڊ0EsZ1̩'A9aNUp4ÜE;aNA0f9aԔ}S89g1)I\$#K90j#`$>K\Ü>̩jÜf1I3p4aN0'-bcf>I9>)H ~W9l4YNZ,$rD)j |q##QsI dn'%N[I#|[HzIKSx~xOd=o~oޝr<_rߔuqG6MESuXvul[06g܍6o ej.R.-}S(m)Y,v[`Ʀ#:E9U)(ܤܞ)(} )(Eֻ]uQ`-0®3bsYw&MxoKޮY,y[`cW]2U9nty lZY΍.oMSuQ`T],tFZ`4(\0m[`AIO{欃zb9b.npR`ϙ`9l~..$#)EEY[!W۩z G@^dL 9Fry!;Eߕ 98$twBvw #:5;GY΍=k>!aAxi_%ߕ[A ڊ mNUy ;Cb Fsda(m8Fgk\-s ۴ͬ`}9#9| U QL زfb(ϙ?S }mtJ"6Hl53D20d"Ssc"`>Fbv#;FW?QnKW],p;%dg>cH2/o?Epo?~Oow|oob/s=TNB[zG֫8^Dh5TB P9qdJQ*G1O9 )^>(@6]dO99dY+*iN) Q9(D@-`v Q6h@|+)ES?zɔNS6CG~QHr)G- RF [d.vя^)hQ(hܯPY:J ; BCyY@cTH9 ^ hQƛQ(V*8Q|ŪC䣗F9niTF) Q( N‰BcE)=6ŪQh4)u%Q:SOQNúGU!dUzlQy+zIºG(j.QTd.IVŞ.V|ry\y/4F_=D=i jKm4KݻO?~|~tѬͧ]4(!o?8aD)38e&) kxƕlYxm&9V"y%9V"ͯD{"a%9W"m%)Js6D=}po}UXt9/otW6got+mr^t})ঈ)+ers)+y lE|9j]W`غrԼ]W`2E|9[8E|L_m lE|4O_mSė2p6M_Sė4 l"[/1Es l")Y)+mr6)+i l" ͢lSW`,h_ SW`6E|9!+i l"EzzEoVmLK=g8C_1x:IE#@rj?yC;߸`*.s62gmMcg6ee&{Gރu)T~/G62g4vfSy`u <^\,Ñ`,x#ټ˜de&$C+T62Y[_2g-r MoȥU;e"v/Ĵ˜%)leZf` =(Sp6Z4[(SP0UE'']2ݦ==ʣLY \|֞u$(SP4#mOEz.+_ ;Mk ㎊k ^zܑ#i" 5DemF=Ku!FV4 #ՐwڂJF*ߏ2g-vYz#UbL Oy 9.\21rN[G lm!H Zw Qω Y$*| G$ 5o Pc\D!?ܝ?zlO9{UPCA9_}*@YUpE3pNd1T!!Dq۫fڝ{9䊳 f` UA3p2o PCgh?qsYRL~=U{ڻM.25c'۹)Ef.2g2ceh?EyI{2}B K&]f:I&F/N%8k_Ѯ2]=t"=LG c8=,D:tcyb7:Z.rY5XL7uim]cZ[Fs4ef.3]$-t騙2Q[nf.3]>t"*cp g2 )Ber]eI&]h:K;2@-Sɞ &ﱫLgɾLS*cp98P`.3]=v8986@msp g1= l"Y3pN!2=.)jq~& Qy <=OqGXS _).<egBWB`W<<<gy ]y ]y ]y ;)v)v)8{SSSpؕؕؑ=O!+O!+O{B`WB`W<<<e)v)v)v)8{SSSpؙؕ=O!+O!+O!+O{B`WB`W+O!+O!+O{B`WB`W<<<<gy y ]y }ؕؕ잧ؕؕ=O!+O!+O{B`WB`W<<<<gy ]y ]y ;)~E`,Oq<"Ok"gԡrD[h/xo|N .uNVMs"G UyP-HP4ػ r'b=6a";_96nR4!aR$&Kdׄt]a~T袇xa!Eک'%zrIDɚtT;ٚF^t+C r:s8q| @:/Qs!tq:g#1.Ob"ȩQ31Rw0cX a.1t\K0cj^`.bT'0v4&Q;l1DS`1iODaDͺ91HG1z8qrJYr0 ,;٦٢ 7li ^~XfW$gv34dgfl lt5)k?2I7ߐ-!T$=i*YKWfhE[ΠB 6l ,^zڑ*vc&gRM3p@h&iEmM[|DV1pDV[}B6JO}v3cWFζJ;dV2M5G(Hj5T,gVk$6:8/}Fg͗MpCI_ 䪭ט^cgFg-e'=]LyYrdb4-iI&NS۪C墘G酎VGgM31JzM[1ӧYu=CNM-%uGg"PtlFjW[!T ܭC E0ۂ"ë@Ehnjya~agHӉ] y$療WޏQq6%nHSٴX "M%^,^21z^l08!y6Gap6}9 C`( s9 y06QQ( Κjz=B)K/mWj[ RJ~WNcЗ -1d/Ԋ z38׿zhXa3k4{E%}.e&&]d6EA=j{9:ح]ؚPTX5b=XX88kq{FGلzgx`Ϛ{Ey=i74`6FDŽ=^9k6=ڣ,4hG{GY>FI`=!i6 !kOΚG{E=J|ߣ=$w) =,JI2pO}땅'kZڲE {zj7F{zFGQ7m{r{GYgh&qafbgh;fe?=³o=clښ}m81EzPhc\' hm,tCMW*@?k+6d|([ni >,tǸ ~zf r, >6aZrCr#|CM墙#|fw1P`-c!g! q >ؼ8k|Ytg+t=c"6Rc!DAtg 9%`|V&: l[A.ٴ8[teAK:eIQtgÒl^AmK:AMS:mIQ{bE9Km!$IcD:ՅD<xO$R<x4xǧ??{~?/?~y0͟~OW]Gor??{zӛ2KgWVnrU)mxcޛVF1썳Pþ欍ao[}%BoL{Xƴ7͘ xcg#o]1M`+# Ƭ7 I30ҐlykFY;n {XhF} e!7f@8ao[!=1M`#z<$#Ǵ7bVfcl\6ÕF1M`mhڲ-)_ ^؍io[o~L{,$ƴ70 lAG) 1M`:j$|_T웟gǸ߾[97>|𻷟>?}wL~ݛ?4<Ǐ?~_çOo*\ٞ]^7R9C8:3޲a83[f[6\=.ef9e#.af6 a,Ze a:35?pϰ lv-=A,v 3.yf ;gCv3.mf9e#.if ;gld6 ZYgldVβ`X =.YH[H۔s(i&b%wKzO l&J[{OsErq [fhf]`L l v:?f]`Ls\,]0g]`Ls6l3.a&6;g6f]``6M~&6֙`lv3.q&;g6f]`L l~&6֙`,枎`:EtO le;g6`6~&6֙`lp3.q& vm&6`lf]`L n,m&9}O ` v3YԧRz"t̾,{n+=ٽ'KÃdޓge ySlBbw8ݱώ~~px"Ǐ珿O?Rz8G }3x(`>Hnlh[_8` >LA`F")=HYG7pq t#gFz1SA@F"X$ibf9۳ݙ=HY[gЃ-8E1K_-M|#gmk =Hٌtc t#gn#8[G"؇,=Yd={‘H8I m#gp =XDx)&F40') Gή#G G#g G #g G G {‘#g Gʦ{‘#gKe00#g G-w#?3C @DPl%xଓv0Ɲ?p}o?7O޽}W >z޼}~|F =SO0:߼w=[|5}q~pt.pasBIr8X,<8XxlncFHF,Q6ld0KFͫdٶJF~8VɈu(*q6g(Q0odٰJFͫdٶJF-a8WɈm([*q6g*QQ2`\%#ΖU2b,Y2lX%#U2l[%#:JFMdٺJFn8nSv(kq,q6g*Q6ndٰJFͫd6KFM~8VɈu(*q6g*Qּ}tbݮ<7/eqKqϐCWS|n]Ux?}}8~~_>}>`uc>Y{OHX >8ή?3bhfg_k: ֌3#e(l.lsD3YTC/ lsVIYɓlcLbh,*,4)I/ l9eV sP"wҤڜSYǜb5xeVmsN1gQuwU31>^zL e1X`B/Ĩ9Ŝ].QtcV{r4Cn)XNz9ж+[`cS,ȜoBn)XȪo-sL1gvin]SZƘbz m7 lB9Y2041%^101[n%8 ,R' A"u%3jSYh1bmsL1gc61[bBn%61[bBn%61}ES\59?vW{!`7^KYg; /Oc绷k3^绪զ78{x G tGm4@E#⬅zxqZX8@۠lxPSN^57e"n `axqB=7@ = ^21j.7g]X5ۛǢ8bxq6!@Ll/XF~Y{4ۋ^|+i&^嬽kMW+BY,\=TU!W4 BRBF6ZX [naR¨da?R ^,tB/ -FZX 󒉣G+L!,{a"(l1i_pabi}Gû83+!+f?1hPQPokGY3p /6BR^~O~(ZWsp#ZHlXuGzKA]c8;x>7sVt>#юonΖ/Q{Y'g*pۋœ>.Ju,Hpr6ٍ1|Vtj7Cd`| \lEFu37h`q ,`;[5|z>z(7O-Mzfh⬳<p&.7`̀!οf>&=rpCڷ(xtH{iқf`tH&.΢Cgi5IO{ %ٜp"lo giF{h,ڣGZ7ѽ?iO;G2ѴG&.EK'49z4qQwG&.MztG=z ۣ^QtG&.Ew;6ѣK`-ڊۣG=KhvW߱_`-9_@ף9z4PU[{/<(o?z4PGo h3_^[ tM[G{hH,ڣ`G}k#b|L<:d!$kCr CP` $}4Ho{#X EVd#%nH+_ Cb̛O7f 4Cz l2o^ z#l7:7v {5<̘E cO^E09lcsۑAXG&ܮLtu|}snt\3oء~qGͭs.,$ qͱI]` v4vnM]`4vVsEt[5k&feKY6\es gm-s2g-Ġ s9D`ۜLY,a} gя2lsI'ۜ,qN:*s0ls̉9WY`s"mU,QƜMsΉ9WlN6ι["N6A'ms ghNA'E9lRm[" 6A'[AWcЉ9D`>D@tYDcЉ9D`tYA'-s g+' sЉ9脳6Ǡ sЉ9D`tYN6A'[bt"OV2'+sls9YY`,mNV,\demde6?'+ lʔCdes9Yr5&+ l[O Z֧\des2g1jLV4'+ l99Wc9YY`M> )OV0'+ l'+ h9)Wc9YY`뜬Ycʄ!+v;wh玍6T~6v~<ջB|׿}fVO{8L!"B3`alBD)DYd!pN!"vɀq  lBDd06O!"mSO!"ͷlS {X8)DY=,SH`"lv!" SH`"68 i  lBD`ٸϮ2gWp{ g>B@˜]ٶ sv9]1`al++8 ̀qή2gWp[UΆ9B`)m,49PS`Y9PS`@Ms9P {X8@M}9Ph}zZ.joi8x;gPO }Z#(PlrSOO?R}}n$2b|X;9=ce8Љ_cdD2g+:LوQ(]^30Fzd f=Κ[ qA304 g:I]}8X;98NΚ_ Q֢ q6jEmQU>NΚ[ qA216=MEL a$~Wa_C8kN.HFY'.HYs vA2b ddM]H2.HFوf`s(yn$yn$lDfTΚ7vA2L l>(E`- A2vamI8[Z_vA29'E`˜Y{IsR69)[b_>'E`>'E@"mIsN9'E`뜓YsN}N G-lsR6sR9)>'E`Ӝ"mI,K{9VʼnuI,fL9)-sN g[OQ\cywtׁ|I { ,?3NZP{K}xN?}͇||{W2`7ӷytP.ߑE68(.bP/i ,vg vbK1 8n#kKs%-gå7pcNPE?,6yɾ( 1',,U4pQH ,69!Y9m3+Yq}NXl%-F?rμgeQ` }NGōIE'/QTemGns~ږ% ][`9^2/6AxEYܱ5ײd`l_3gOr hVvhZV2p0<134l| 4֔` f_P=T~jOmN31\5nW%3b.{!cw3sBu3a y5/?||t7;^1u/~3":mz,x[Wa`Zw(!].90MBʛ] po rbןa G򀀥W=G.;@s?y7~Ԫ`?H㤑* ĺ`?#=@@t~‰ITpȿp Mb2ސ;cH22 4"]A=t !] BwbR !r= .ƟԮn-umJ6#-lbׇa T)20ZM0zM(0Me~I] Эq/]&7~Pi!Wc`?hDzmRy~I/]U~)#N@HfwZP_Y & }A%[X(. s1AMItB;p vo|UL]r&&j.7EuЌ߸L܂]c&$"B߷nQqw\BSgحTة`@lSj{E]G& Km+2%Mm{Ew5r?xan1/cW7R!c,>3ZƜ:zO͡>?!u}>lޫٜW9{fS6ޫٜW9{fS6ݫٜW9{fS6ٜ߫W9{fSE-]ݜ콚YTfrfSޫٜE5;k6r6e^ڽ^l΢$^l0f8f9{/fs(=ٜ߫5Or^ͦ,FoddýYx/es8kٜײ)kNZ6gl{-Z6gZ6˽{-Z6e뽖{-Z6glʶ{-Z6glv6ײ9{eSkٜײ9{es^˦ײ9{es^˦lײ9ײ9xeS6kٜײ9{eS6kٜײ9{esvղ)lkٜײ)[lkٜײ) ѶMְ}{|55Dʶm9nYنa5"g g*-R9l.ڶ9[f~[eFΆUil^FζUogɑyU9Vᑲѯ#g*?r $e!6ٲJf^lXIUl[eIʢSq}] W=~'m endstream endobj 1492 0 obj [ 1491 0 R 1493 0 R 1495 0 R 1496 0 R 1498 0 R 1499 0 R 1501 0 R 1502 0 R 1504 0 R 1505 0 R 1507 0 R 1508 0 R 1510 0 R 1511 0 R 1513 0 R 1514 0 R 1516 0 R 1517 0 R 1518 0 R 1519 0 R 1521 0 R 1522 0 R 1524 0 R 1525 0 R 1527 0 R 1528 0 R 1530 0 R 1531 0 R 1533 0 R 1534 0 R 1536 0 R 1537 0 R 1539 0 R 1540 0 R 1542 0 R 1543 0 R 1545 0 R 1546 0 R 1548 0 R 1549 0 R 1551 0 R 1552 0 R 1554 0 R 1555 0 R 1557 0 R 1558 0 R 1560 0 R 1561 0 R 1563 0 R 1564 0 R 1566 0 R 1567 0 R 1569 0 R 1570 0 R 1572 0 R 1573 0 R 1575 0 R 1576 0 R 1578 0 R 1579 0 R 1581 0 R 1582 0 R 1583 0 R 1585 0 R 1586 0 R 1587 0 R 1589 0 R 1590 0 R 1592 0 R 1593 0 R 1595 0 R 1596 0 R 1598 0 R 1599 0 R 1601 0 R 1602 0 R 1604 0 R 1605 0 R 1607 0 R 1608 0 R 1610 0 R 1611 0 R 1613 0 R 1614 0 R 1616 0 R 1617 0 R 1619 0 R 1620 0 R 1622 0 R 1623 0 R 1625 0 R 1626 0 R 1628 0 R 1629 0 R 1631 0 R 1632 0 R ] endobj 17 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 595 842 ] /TrimBox [ 0 0 595 842 ] /BleedBox [ 0 0 595 842 ] /Resources 3 0 R /Contents 1633 0 R /Annots 1492 0 R >> endobj 1634 0 obj 27211 endobj 1637 0 obj << /Title (Red5 - Reference Documentation) /Parent 1636 0 R /Next 1639 0 R /A 1635 0 R >> endobj 1639 0 obj << /Title (Table of Contents) /Parent 1636 0 R /Prev 1637 0 R /Next 1640 0 R /A 1638 0 R >> endobj 1640 0 obj << /Title /Parent 1636 0 R /Prev 1639 0 R /Next 1642 0 R /First 1641 0 R /Last 1641 0 R /Count 1 /A 217 0 R >> endobj 1641 0 obj << /Title /Parent 1640 0 R /A 221 0 R >> endobj 1642 0 obj << /Title /Parent 1636 0 R /Prev 1640 0 R /Next 1786 0 R /First 1643 0 R /Last 1784 0 R /Count 137 /A 224 0 R >> endobj 1643 0 obj << /Title /Parent 1642 0 R /Next 1718 0 R /First 1644 0 R /Last 1657 0 R /Count 69 /A 227 0 R >> endobj 1644 0 obj << /Title /Parent 1643 0 R /Next 1657 0 R /First 1645 0 R /Last 1656 0 R /Count 12 /A 230 0 R >> endobj 1645 0 obj << /Title /Parent 1644 0 R /Next 1646 0 R /A 233 0 R >> endobj 1646 0 obj << /Title /Parent 1644 0 R /Prev 1645 0 R /Next 1647 0 R /A 236 0 R >> endobj 1647 0 obj << /Title /Parent 1644 0 R /Prev 1646 0 R /Next 1648 0 R /A 239 0 R >> endobj 1648 0 obj << /Title /Parent 1644 0 R /Prev 1647 0 R /Next 1649 0 R /A 242 0 R >> endobj 1649 0 obj << /Title /Parent 1644 0 R /Prev 1648 0 R /Next 1650 0 R /A 245 0 R >> endobj 1650 0 obj << /Title /Parent 1644 0 R /Prev 1649 0 R /Next 1651 0 R /A 248 0 R >> endobj 1651 0 obj << /Title /Parent 1644 0 R /Prev 1650 0 R /Next 1652 0 R /A 251 0 R >> endobj 1652 0 obj << /Title /Parent 1644 0 R /Prev 1651 0 R /Next 1653 0 R /A 254 0 R >> endobj 1653 0 obj << /Title /Parent 1644 0 R /Prev 1652 0 R /Next 1654 0 R /A 257 0 R >> endobj 1654 0 obj << /Title /Parent 1644 0 R /Prev 1653 0 R /Next 1655 0 R /A 260 0 R >> endobj 1655 0 obj << /Title /Parent 1644 0 R /Prev 1654 0 R /Next 1656 0 R /A 263 0 R >> endobj 1656 0 obj << /Title /Parent 1644 0 R /Prev 1655 0 R /A 266 0 R >> endobj 1657 0 obj << /Title /Parent 1643 0 R /Prev 1644 0 R /First 1658 0 R /Last 1716 0 R /Count 55 /A 269 0 R >> endobj 1658 0 obj << /Title /Parent 1657 0 R /Next 1674 0 R /First 1659 0 R /Last 1667 0 R /Count 12 /A 272 0 R >> endobj 1659 0 obj << /Title /Parent 1658 0 R /Next 1660 0 R /A 39 0 R >> endobj 1660 0 obj << /Title /Parent 1658 0 R /Prev 1659 0 R /Next 1661 0 R /A 42 0 R >> endobj 1661 0 obj << /Title /Parent 1658 0 R /Prev 1660 0 R /Next 1662 0 R /A 44 0 R >> endobj 1662 0 obj << /Title /Parent 1658 0 R /Prev 1661 0 R /Next 1663 0 R /A 46 0 R >> endobj 1663 0 obj << /Title /Parent 1658 0 R /Prev 1662 0 R /Next 1664 0 R /A 48 0 R >> endobj 1664 0 obj << /Title /Parent 1658 0 R /Prev 1663 0 R /Next 1665 0 R /A 50 0 R >> endobj 1665 0 obj << /Title /Parent 1658 0 R /Prev 1664 0 R /Next 1666 0 R /A 52 0 R >> endobj 1666 0 obj << /Title /Parent 1658 0 R /Prev 1665 0 R /Next 1667 0 R /A 54 0 R >> endobj 1667 0 obj << /Title /Parent 1658 0 R /Prev 1666 0 R /First 1669 0 R /Last 1673 0 R /Count 3 /A 56 0 R >> endobj 1669 0 obj << /Title /Parent 1667 0 R /Next 1671 0 R /A 1668 0 R >> endobj 1671 0 obj << /Title /Parent 1667 0 R /Prev 1669 0 R /Next 1673 0 R /A 1670 0 R >> endobj 1673 0 obj << /Title /Parent 1667 0 R /Prev 1671 0 R /A 1672 0 R >> endobj 1674 0 obj << /Title /Parent 1657 0 R /Prev 1658 0 R /Next 1678 0 R /First 1675 0 R /Last 1677 0 R /Count 3 /A 275 0 R >> endobj 1675 0 obj << /Title /Parent 1674 0 R /Next 1676 0 R /A 58 0 R >> endobj 1676 0 obj << /Title /Parent 1674 0 R /Prev 1675 0 R /Next 1677 0 R /A 60 0 R >> endobj 1677 0 obj << /Title /Parent 1674 0 R /Prev 1676 0 R /A 62 0 R >> endobj 1678 0 obj << /Title /Parent 1657 0 R /Prev 1674 0 R /Next 1680 0 R /First 1679 0 R /Last 1679 0 R /Count 1 /A 278 0 R >> endobj 1679 0 obj << /Title /Parent 1678 0 R /A 64 0 R >> endobj 1680 0 obj << /Title /Parent 1657 0 R /Prev 1678 0 R /Next 1686 0 R /First 1681 0 R /Last 1685 0 R /Count 5 /A 281 0 R >> endobj 1681 0 obj << /Title /Parent 1680 0 R /Next 1682 0 R /A 66 0 R >> endobj 1682 0 obj << /Title /Parent 1680 0 R /Prev 1681 0 R /Next 1683 0 R /A 68 0 R >> endobj 1683 0 obj << /Title /Parent 1680 0 R /Prev 1682 0 R /Next 1684 0 R /A 70 0 R >> endobj 1684 0 obj << /Title /Parent 1680 0 R /Prev 1683 0 R /Next 1685 0 R /A 72 0 R >> endobj 1685 0 obj << /Title /Parent 1680 0 R /Prev 1684 0 R /A 134 0 R >> endobj 1686 0 obj << /Title /Parent 1657 0 R /Prev 1680 0 R /Next 1689 0 R /First 1687 0 R /Last 1688 0 R /Count 2 /A 284 0 R >> endobj 1687 0 obj << /Title /Parent 1686 0 R /Next 1688 0 R /A 137 0 R >> endobj 1688 0 obj << /Title /Parent 1686 0 R /Prev 1687 0 R /A 139 0 R >> endobj 1689 0 obj << /Title /Parent 1657 0 R /Prev 1686 0 R /Next 1692 0 R /First 1690 0 R /Last 1691 0 R /Count 2 /A 287 0 R >> endobj 1690 0 obj << /Title /Parent 1689 0 R /Next 1691 0 R /A 141 0 R >> endobj 1691 0 obj << /Title /Parent 1689 0 R /Prev 1690 0 R /A 143 0 R >> endobj 1692 0 obj << /Title /Parent 1657 0 R /Prev 1689 0 R /Next 1696 0 R /First 1693 0 R /Last 1695 0 R /Count 3 /A 290 0 R >> endobj 1693 0 obj << /Title /Parent 1692 0 R /Next 1694 0 R /A 145 0 R >> endobj 1694 0 obj << /Title /Parent 1692 0 R /Prev 1693 0 R /Next 1695 0 R /A 147 0 R >> endobj 1695 0 obj << /Title /Parent 1692 0 R /Prev 1694 0 R /A 149 0 R >> endobj 1696 0 obj << /Title /Parent 1657 0 R /Prev 1692 0 R /Next 1698 0 R /First 1697 0 R /Last 1697 0 R /Count 1 /A 293 0 R >> endobj 1697 0 obj << /Title /Parent 1696 0 R /A 151 0 R >> endobj 1698 0 obj << /Title /Parent 1657 0 R /Prev 1696 0 R /Next 1701 0 R /First 1699 0 R /Last 1700 0 R /Count 2 /A 296 0 R >> endobj 1699 0 obj << /Title /Parent 1698 0 R /Next 1700 0 R /A 153 0 R >> endobj 1700 0 obj << /Title /Parent 1698 0 R /Prev 1699 0 R /A 155 0 R >> endobj 1701 0 obj << /Title /Parent 1657 0 R /Prev 1698 0 R /Next 1704 0 R /First 1703 0 R /Last 1703 0 R /Count 1 /A 157 0 R >> endobj 1703 0 obj << /Title /Parent 1701 0 R /A 1702 0 R >> endobj 1704 0 obj << /Title /Parent 1657 0 R /Prev 1701 0 R /Next 1716 0 R /First 1705 0 R /Last 1715 0 R /Count 10 /A 301 0 R >> endobj 1705 0 obj << /Title /Parent 1704 0 R /Next 1706 0 R /A 159 0 R >> endobj 1706 0 obj << /Title /Parent 1704 0 R /Prev 1705 0 R /Next 1707 0 R /A 700 0 R >> endobj 1707 0 obj << /Title /Parent 1704 0 R /Prev 1706 0 R /Next 1708 0 R /A 702 0 R >> endobj 1708 0 obj << /Title /Parent 1704 0 R /Prev 1707 0 R /Next 1710 0 R /A 704 0 R >> endobj 1710 0 obj << /Title /Parent 1704 0 R /Prev 1708 0 R /Next 1711 0 R /A 1709 0 R >> endobj 1711 0 obj << /Title /Parent 1704 0 R /Prev 1710 0 R /Next 1712 0 R /A 165 0 R >> endobj 1712 0 obj << /Title /Parent 1704 0 R /Prev 1711 0 R /Next 1713 0 R /A 161 0 R >> endobj 1713 0 obj << /Title /Parent 1704 0 R /Prev 1712 0 R /Next 1714 0 R /A 697 0 R >> endobj 1714 0 obj << /Title /Parent 1704 0 R /Prev 1713 0 R /Next 1715 0 R /A 163 0 R >> endobj 1715 0 obj << /Title /Parent 1704 0 R /Prev 1714 0 R /A 706 0 R >> endobj 1716 0 obj << /Title /Parent 1657 0 R /Prev 1704 0 R /First 1717 0 R /Last 1717 0 R /Count 1 /A 304 0 R >> endobj 1717 0 obj << /Title /Parent 1716 0 R /A 708 0 R >> endobj 1718 0 obj << /Title /Parent 1642 0 R /Prev 1643 0 R /Next 1735 0 R /First 1719 0 R /Last 1733 0 R /Count 16 /A 307 0 R >> endobj 1719 0 obj << /Title /Parent 1718 0 R /Next 1733 0 R /First 1720 0 R /Last 1732 0 R /Count 13 /A 307 0 R >> endobj 1720 0 obj << /Title /Parent 1719 0 R /Next 1721 0 R /A 312 0 R >> endobj 1721 0 obj << /Title /Parent 1719 0 R /Prev 1720 0 R /Next 1722 0 R /A 315 0 R >> endobj 1722 0 obj << /Title /Parent 1719 0 R /Prev 1721 0 R /Next 1723 0 R /A 318 0 R >> endobj 1723 0 obj << /Title /Parent 1719 0 R /Prev 1722 0 R /Next 1724 0 R /A 321 0 R >> endobj 1724 0 obj << /Title /Parent 1719 0 R /Prev 1723 0 R /Next 1725 0 R /A 324 0 R >> endobj 1725 0 obj << /Title /Parent 1719 0 R /Prev 1724 0 R /Next 1726 0 R /A 327 0 R >> endobj 1726 0 obj << /Title /Parent 1719 0 R /Prev 1725 0 R /Next 1727 0 R /A 330 0 R >> endobj 1727 0 obj << /Title /Parent 1719 0 R /Prev 1726 0 R /Next 1728 0 R /A 333 0 R >> endobj 1728 0 obj << /Title /Parent 1719 0 R /Prev 1727 0 R /Next 1729 0 R /A 336 0 R >> endobj 1729 0 obj << /Title /Parent 1719 0 R /Prev 1728 0 R /Next 1730 0 R /A 339 0 R >> endobj 1730 0 obj << /Title /Parent 1719 0 R /Prev 1729 0 R /Next 1731 0 R /A 342 0 R >> endobj 1731 0 obj << /Title /Parent 1719 0 R /Prev 1730 0 R /Next 1732 0 R /A 345 0 R >> endobj 1732 0 obj << /Title /Parent 1719 0 R /Prev 1731 0 R /A 348 0 R >> endobj 1733 0 obj << /Title /Parent 1718 0 R /Prev 1719 0 R /First 1734 0 R /Last 1734 0 R /Count 1 /A 351 0 R >> endobj 1734 0 obj << /Title /Parent 1733 0 R /A 354 0 R >> endobj 1735 0 obj << /Title /Parent 1642 0 R /Prev 1718 0 R /Next 1756 0 R /First 1736 0 R /Last 1755 0 R /Count 19 /A 357 0 R >> endobj 1736 0 obj << /Title /Parent 1735 0 R /Next 1742 0 R /First 1737 0 R /Last 1741 0 R /Count 4 /A 360 0 R >> endobj 1737 0 obj << /Title /Parent 1736 0 R /Next 1738 0 R /A 553 0 R >> endobj 1738 0 obj << /Title /Parent 1736 0 R /Prev 1737 0 R /Next 1741 0 R /First 1740 0 R /Last 1740 0 R /Count 1 /A 557 0 R >> endobj 1740 0 obj << /Title /Parent 1738 0 R /A 1739 0 R >> endobj 1741 0 obj << /Title /Parent 1736 0 R /Prev 1738 0 R /A 560 0 R >> endobj 1742 0 obj << /Title /Parent 1735 0 R /Prev 1736 0 R /Next 1743 0 R /A 563 0 R >> endobj 1743 0 obj << /Title /Parent 1735 0 R /Prev 1742 0 R /Next 1746 0 R /First 1744 0 R /Last 1745 0 R /Count 2 /A 566 0 R >> endobj 1744 0 obj << /Title /Parent 1743 0 R /Next 1745 0 R /A 569 0 R >> endobj 1745 0 obj << /Title /Parent 1743 0 R /Prev 1744 0 R /A 572 0 R >> endobj 1746 0 obj << /Title /Parent 1735 0 R /Prev 1743 0 R /Next 1747 0 R /A 575 0 R >> endobj 1747 0 obj << /Title /Parent 1735 0 R /Prev 1746 0 R /Next 1750 0 R /First 1748 0 R /Last 1749 0 R /Count 2 /A 578 0 R >> endobj 1748 0 obj << /Title /Parent 1747 0 R /Next 1749 0 R /A 581 0 R >> endobj 1749 0 obj << /Title /Parent 1747 0 R /Prev 1748 0 R /A 584 0 R >> endobj 1750 0 obj << /Title /Parent 1735 0 R /Prev 1747 0 R /Next 1751 0 R /A 587 0 R >> endobj 1751 0 obj << /Title /Parent 1735 0 R /Prev 1750 0 R /Next 1752 0 R /A 590 0 R >> endobj 1752 0 obj << /Title /Parent 1735 0 R /Prev 1751 0 R /Next 1755 0 R /First 1753 0 R /Last 1754 0 R /Count 2 /A 593 0 R >> endobj 1753 0 obj << /Title /Parent 1752 0 R /Next 1754 0 R /A 596 0 R >> endobj 1754 0 obj << /Title /Parent 1752 0 R /Prev 1753 0 R /A 599 0 R >> endobj 1755 0 obj << /Title /Parent 1735 0 R /Prev 1752 0 R /A 602 0 R >> endobj 1756 0 obj << /Title /Parent 1642 0 R /Prev 1735 0 R /Next 1765 0 R /First 1757 0 R /Last 1764 0 R /Count 8 /A 539 0 R >> endobj 1757 0 obj << /Title /Parent 1756 0 R /Next 1758 0 R /A 539 0 R >> endobj 1758 0 obj << /Title /Parent 1756 0 R /Prev 1757 0 R /Next 1759 0 R /A 609 0 R >> endobj 1759 0 obj << /Title /Parent 1756 0 R /Prev 1758 0 R /Next 1760 0 R /A 612 0 R >> endobj 1760 0 obj << /Title /Parent 1756 0 R /Prev 1759 0 R /Next 1761 0 R /A 615 0 R >> endobj 1761 0 obj << /Title /Parent 1756 0 R /Prev 1760 0 R /Next 1762 0 R /A 618 0 R >> endobj 1762 0 obj << /Title /Parent 1756 0 R /Prev 1761 0 R /Next 1763 0 R /A 621 0 R >> endobj 1763 0 obj << /Title /Parent 1756 0 R /Prev 1762 0 R /Next 1764 0 R /A 624 0 R >> endobj 1764 0 obj << /Title /Parent 1756 0 R /Prev 1763 0 R /A 627 0 R >> endobj 1765 0 obj << /Title /Parent 1642 0 R /Prev 1756 0 R /Next 1783 0 R /First 1766 0 R /Last 1777 0 R /Count 17 /A 541 0 R >> endobj 1766 0 obj << /Title /Parent 1765 0 R /Next 1770 0 R /First 1767 0 R /Last 1769 0 R /Count 3 /A 541 0 R >> endobj 1767 0 obj << /Title /Parent 1766 0 R /Next 1768 0 R /A 634 0 R >> endobj 1768 0 obj << /Title /Parent 1766 0 R /Prev 1767 0 R /Next 1769 0 R /A 637 0 R >> endobj 1769 0 obj << /Title /Parent 1766 0 R /Prev 1768 0 R /A 640 0 R >> endobj 1770 0 obj << /Title /Parent 1765 0 R /Prev 1766 0 R /Next 1777 0 R /First 1771 0 R /Last 1776 0 R /Count 6 /A 643 0 R >> endobj 1771 0 obj << /Title /Parent 1770 0 R /Next 1772 0 R /A 646 0 R >> endobj 1772 0 obj << /Title /Parent 1770 0 R /Prev 1771 0 R /Next 1773 0 R /A 649 0 R >> endobj 1773 0 obj << /Title /Parent 1770 0 R /Prev 1772 0 R /Next 1774 0 R /A 652 0 R >> endobj 1774 0 obj << /Title /Parent 1770 0 R /Prev 1773 0 R /Next 1775 0 R /A 655 0 R >> endobj 1775 0 obj << /Title /Parent 1770 0 R /Prev 1774 0 R /Next 1776 0 R /A 658 0 R >> endobj 1776 0 obj << /Title /Parent 1770 0 R /Prev 1775 0 R /A 661 0 R >> endobj 1777 0 obj << /Title /Parent 1765 0 R /Prev 1770 0 R /First 1778 0 R /Last 1782 0 R /Count 5 /A 664 0 R >> endobj 1778 0 obj << /Title /Parent 1777 0 R /Next 1779 0 R /A 667 0 R >> endobj 1779 0 obj << /Title /Parent 1777 0 R /Prev 1778 0 R /Next 1780 0 R /A 670 0 R >> endobj 1780 0 obj << /Title /Parent 1777 0 R /Prev 1779 0 R /Next 1781 0 R /A 673 0 R >> endobj 1781 0 obj << /Title /Parent 1777 0 R /Prev 1780 0 R /Next 1782 0 R /A 676 0 R >> endobj 1782 0 obj << /Title /Parent 1777 0 R /Prev 1781 0 R /A 679 0 R >> endobj 1783 0 obj << /Title /Parent 1642 0 R /Prev 1765 0 R /Next 1784 0 R /A 543 0 R >> endobj 1784 0 obj << /Title /Parent 1642 0 R /Prev 1783 0 R /First 1785 0 R /Last 1785 0 R /Count 1 /A 545 0 R >> endobj 1785 0 obj << /Title /Parent 1784 0 R /A 686 0 R >> endobj 1786 0 obj << /Title /Parent 1636 0 R /Prev 1642 0 R /Next 1910 0 R /First 1787 0 R /Last 1904 0 R /Count 118 /A 689 0 R >> endobj 1787 0 obj << /Title /Parent 1786 0 R /Next 1796 0 R /First 1788 0 R /Last 1795 0 R /Count 8 /A 692 0 R >> endobj 1788 0 obj << /Title /Parent 1787 0 R /Next 1789 0 R /A 925 0 R >> endobj 1789 0 obj << /Title /Parent 1787 0 R /Prev 1788 0 R /Next 1791 0 R /First 1790 0 R /Last 1790 0 R /Count 1 /A 929 0 R >> endobj 1790 0 obj << /Title /Parent 1789 0 R /A 932 0 R >> endobj 1791 0 obj << /Title /Parent 1787 0 R /Prev 1789 0 R /Next 1794 0 R /First 1792 0 R /Last 1793 0 R /Count 2 /A 935 0 R >> endobj 1792 0 obj << /Title /Parent 1791 0 R /Next 1793 0 R /A 938 0 R >> endobj 1793 0 obj << /Title /Parent 1791 0 R /Prev 1792 0 R /A 941 0 R >> endobj 1794 0 obj << /Title /Parent 1787 0 R /Prev 1791 0 R /Next 1795 0 R /A 944 0 R >> endobj 1795 0 obj << /Title /Parent 1787 0 R /Prev 1794 0 R /A 947 0 R >> endobj 1796 0 obj << /Title /Parent 1786 0 R /Prev 1787 0 R /Next 1800 0 R /First 1797 0 R /Last 1799 0 R /Count 3 /A 950 0 R >> endobj 1797 0 obj << /Title /Parent 1796 0 R /Next 1798 0 R /A 953 0 R >> endobj 1798 0 obj << /Title /Parent 1796 0 R /Prev 1797 0 R /Next 1799 0 R /A 956 0 R >> endobj 1799 0 obj << /Title /Parent 1796 0 R /Prev 1798 0 R /A 959 0 R >> endobj 1800 0 obj << /Title /Parent 1786 0 R /Prev 1796 0 R /Next 1817 0 R /First 1801 0 R /Last 1816 0 R /Count 16 /A 777 0 R >> endobj 1801 0 obj << /Title /Parent 1800 0 R /Next 1802 0 R /A 777 0 R >> endobj 1802 0 obj << /Title /Parent 1800 0 R /Prev 1801 0 R /Next 1803 0 R /A 966 0 R >> endobj 1803 0 obj << /Title /Parent 1800 0 R /Prev 1802 0 R /Next 1804 0 R /A 969 0 R >> endobj 1804 0 obj << /Title /Parent 1800 0 R /Prev 1803 0 R /Next 1809 0 R /First 1805 0 R /Last 1808 0 R /Count 4 /A 972 0 R >> endobj 1805 0 obj << /Title /Parent 1804 0 R /Next 1806 0 R /A 975 0 R >> endobj 1806 0 obj << /Title /Parent 1804 0 R /Prev 1805 0 R /Next 1807 0 R /A 978 0 R >> endobj 1807 0 obj << /Title /Parent 1804 0 R /Prev 1806 0 R /Next 1808 0 R /A 981 0 R >> endobj 1808 0 obj << /Title /Parent 1804 0 R /Prev 1807 0 R /A 984 0 R >> endobj 1809 0 obj << /Title /Parent 1800 0 R /Prev 1804 0 R /Next 1813 0 R /First 1810 0 R /Last 1812 0 R /Count 3 /A 987 0 R >> endobj 1810 0 obj << /Title /Parent 1809 0 R /Next 1811 0 R /A 990 0 R >> endobj 1811 0 obj << /Title /Parent 1809 0 R /Prev 1810 0 R /Next 1812 0 R /A 993 0 R >> endobj 1812 0 obj << /Title /Parent 1809 0 R /Prev 1811 0 R /A 996 0 R >> endobj 1813 0 obj << /Title /Parent 1800 0 R /Prev 1809 0 R /Next 1814 0 R /A 999 0 R >> endobj 1814 0 obj << /Title /Parent 1800 0 R /Prev 1813 0 R /Next 1815 0 R /A 1002 0 R >> endobj 1815 0 obj << /Title /Parent 1800 0 R /Prev 1814 0 R /Next 1816 0 R /A 1005 0 R >> endobj 1816 0 obj << /Title /Parent 1800 0 R /Prev 1815 0 R /A 1008 0 R >> endobj 1817 0 obj << /Title /Parent 1786 0 R /Prev 1800 0 R /Next 1822 0 R /First 1818 0 R /Last 1821 0 R /Count 4 /A 840 0 R >> endobj 1818 0 obj << /Title /Parent 1817 0 R /Next 1819 0 R /A 1013 0 R >> endobj 1819 0 obj << /Title /Parent 1817 0 R /Prev 1818 0 R /Next 1820 0 R /A 1016 0 R >> endobj 1820 0 obj << /Title /Parent 1817 0 R /Prev 1819 0 R /Next 1821 0 R /A 1019 0 R >> endobj 1821 0 obj << /Title /Parent 1817 0 R /Prev 1820 0 R /A 1022 0 R >> endobj 1822 0 obj << /Title /Parent 1786 0 R /Prev 1817 0 R /Next 1826 0 R /First 1823 0 R /Last 1823 0 R /Count 3 /A 1025 0 R >> endobj 1823 0 obj << /Title /Parent 1822 0 R /First 1824 0 R /Last 1825 0 R /Count 2 /A 1028 0 R >> endobj 1824 0 obj << /Title /Parent 1823 0 R /Next 1825 0 R /A 1031 0 R >> endobj 1825 0 obj << /Title /Parent 1823 0 R /Prev 1824 0 R /A 1034 0 R >> endobj 1826 0 obj << /Title /Parent 1786 0 R /Prev 1822 0 R /Next 1834 0 R /First 1827 0 R /Last 1833 0 R /Count 7 /A 1037 0 R >> endobj 1827 0 obj << /Title /Parent 1826 0 R /Next 1828 0 R /A 1037 0 R >> endobj 1828 0 obj << /Title /Parent 1826 0 R /Prev 1827 0 R /Next 1829 0 R /A 1042 0 R >> endobj 1829 0 obj << /Title /Parent 1826 0 R /Prev 1828 0 R /Next 1832 0 R /First 1830 0 R /Last 1831 0 R /Count 2 /A 1045 0 R >> endobj 1830 0 obj << /Title /Parent 1829 0 R /Next 1831 0 R /A 1048 0 R >> endobj 1831 0 obj << /Title /Parent 1829 0 R /Prev 1830 0 R /A 1051 0 R >> endobj 1832 0 obj << /Title /Parent 1826 0 R /Prev 1829 0 R /Next 1833 0 R /A 1054 0 R >> endobj 1833 0 obj << /Title /Parent 1826 0 R /Prev 1832 0 R /A 1057 0 R >> endobj 1834 0 obj << /Title /Parent 1786 0 R /Prev 1826 0 R /Next 1842 0 R /First 1835 0 R /Last 1841 0 R /Count 7 /A 1060 0 R >> endobj 1835 0 obj << /Title /Parent 1834 0 R /Next 1837 0 R /First 1836 0 R /Last 1836 0 R /Count 1 /A 1063 0 R >> endobj 1836 0 obj << /Title /Parent 1835 0 R /A 1066 0 R >> endobj 1837 0 obj << /Title /Parent 1834 0 R /Prev 1835 0 R /Next 1840 0 R /First 1838 0 R /Last 1839 0 R /Count 2 /A 1197 0 R >> endobj 1838 0 obj << /Title /Parent 1837 0 R /Next 1839 0 R /A 1201 0 R >> endobj 1839 0 obj << /Title /Parent 1837 0 R /Prev 1838 0 R /A 1204 0 R >> endobj 1840 0 obj << /Title /Parent 1834 0 R /Prev 1837 0 R /Next 1841 0 R /A 1207 0 R >> endobj 1841 0 obj << /Title /Parent 1834 0 R /Prev 1840 0 R /A 1210 0 R >> endobj 1842 0 obj << /Title /Parent 1786 0 R /Prev 1834 0 R /Next 1852 0 R /First 1843 0 R /Last 1851 0 R /Count 9 /A 1213 0 R >> endobj 1843 0 obj << /Title /Parent 1842 0 R /Next 1844 0 R /A 1213 0 R >> endobj 1844 0 obj << /Title /Parent 1842 0 R /Prev 1843 0 R /Next 1845 0 R /A 1218 0 R >> endobj 1845 0 obj << /Title /Parent 1842 0 R /Prev 1844 0 R /Next 1846 0 R /A 1221 0 R >> endobj 1846 0 obj << /Title /Parent 1842 0 R /Prev 1845 0 R /Next 1847 0 R /A 1224 0 R >> endobj 1847 0 obj << /Title /Parent 1842 0 R /Prev 1846 0 R /Next 1851 0 R /First 1848 0 R /Last 1850 0 R /Count 3 /A 1227 0 R >> endobj 1848 0 obj << /Title /Parent 1847 0 R /Next 1849 0 R /A 1230 0 R >> endobj 1849 0 obj << /Title /Parent 1847 0 R /Prev 1848 0 R /Next 1850 0 R /A 1233 0 R >> endobj 1850 0 obj << /Title /Parent 1847 0 R /Prev 1849 0 R /A 1236 0 R >> endobj 1851 0 obj << /Title /Parent 1842 0 R /Prev 1847 0 R /A 1239 0 R >> endobj 1852 0 obj << /Title /Parent 1786 0 R /Prev 1842 0 R /Next 1871 0 R /First 1853 0 R /Last 1859 0 R /Count 13 /A 1242 0 R >> endobj 1853 0 obj << /Title /Parent 1852 0 R /Next 1856 0 R /First 1854 0 R /Last 1855 0 R /Count 2 /A 1245 0 R >> endobj 1854 0 obj << /Title /Parent 1853 0 R /Next 1855 0 R /A 1249 0 R >> endobj 1855 0 obj << /Title /Parent 1853 0 R /Prev 1854 0 R /A 1252 0 R >> endobj 1856 0 obj << /Title /Parent 1852 0 R /Prev 1853 0 R /Next 1857 0 R /A 1255 0 R >> endobj 1857 0 obj << /Title /Parent 1852 0 R /Prev 1856 0 R /Next 1858 0 R /A 1258 0 R >> endobj 1858 0 obj << /Title /Parent 1852 0 R /Prev 1857 0 R /Next 1859 0 R /A 1261 0 R >> endobj 1859 0 obj << /Title /Parent 1852 0 R /Prev 1858 0 R /First 1860 0 R /Last 1860 0 R /Count 6 /A 1264 0 R >> endobj 1860 0 obj << /Title /Parent 1859 0 R /First 1862 0 R /Last 1870 0 R /Count 5 /A 1267 0 R >> endobj 1862 0 obj << /Title /Parent 1860 0 R /Next 1864 0 R /A 1861 0 R >> endobj 1864 0 obj << /Title /Parent 1860 0 R /Prev 1862 0 R /Next 1866 0 R /A 1863 0 R >> endobj 1866 0 obj << /Title /Parent 1860 0 R /Prev 1864 0 R /Next 1870 0 R /First 1868 0 R /Last 1868 0 R /Count 1 /A 1865 0 R >> endobj 1868 0 obj << /Title /Parent 1866 0 R /A 1867 0 R >> endobj 1870 0 obj << /Title /Parent 1860 0 R /Prev 1866 0 R /A 1869 0 R >> endobj 1871 0 obj << /Title /Parent 1786 0 R /Prev 1852 0 R /Next 1904 0 R /First 1872 0 R /Last 1902 0 R /Count 32 /A 1270 0 R >> endobj 1872 0 obj << /Title /Parent 1871 0 R /Next 1873 0 R /A 1270 0 R >> endobj 1873 0 obj << /Title /Parent 1871 0 R /Prev 1872 0 R /Next 1874 0 R /A 1275 0 R >> endobj 1874 0 obj << /Title /Parent 1871 0 R /Prev 1873 0 R /Next 1875 0 R /A 1278 0 R >> endobj 1875 0 obj << /Title /Parent 1871 0 R /Prev 1874 0 R /Next 1876 0 R /A 1281 0 R >> endobj 1876 0 obj << /Title /Parent 1871 0 R /Prev 1875 0 R /Next 1877 0 R /A 1284 0 R >> endobj 1877 0 obj << /Title /Parent 1871 0 R /Prev 1876 0 R /Next 1886 0 R /First 1878 0 R /Last 1885 0 R /Count 8 /A 1287 0 R >> endobj 1878 0 obj << /Title /Parent 1877 0 R /Next 1879 0 R /A 1290 0 R >> endobj 1879 0 obj << /Title /Parent 1877 0 R /Prev 1878 0 R /Next 1880 0 R /A 1293 0 R >> endobj 1880 0 obj << /Title /Parent 1877 0 R /Prev 1879 0 R /Next 1881 0 R /A 1296 0 R >> endobj 1881 0 obj << /Title /Parent 1877 0 R /Prev 1880 0 R /Next 1882 0 R /A 1299 0 R >> endobj 1882 0 obj << /Title /Parent 1877 0 R /Prev 1881 0 R /Next 1883 0 R /A 1302 0 R >> endobj 1883 0 obj << /Title /Parent 1877 0 R /Prev 1882 0 R /Next 1884 0 R /A 1305 0 R >> endobj 1884 0 obj << /Title /Parent 1877 0 R /Prev 1883 0 R /Next 1885 0 R /A 1308 0 R >> endobj 1885 0 obj << /Title /Parent 1877 0 R /Prev 1884 0 R /A 1311 0 R >> endobj 1886 0 obj << /Title /Parent 1871 0 R /Prev 1877 0 R /Next 1888 0 R /First 1887 0 R /Last 1887 0 R /Count 1 /A 1314 0 R >> endobj 1887 0 obj << /Title /Parent 1886 0 R /A 1317 0 R >> endobj 1888 0 obj << /Title /Parent 1871 0 R /Prev 1886 0 R /Next 1890 0 R /First 1889 0 R /Last 1889 0 R /Count 1 /A 1320 0 R >> endobj 1889 0 obj << /Title /Parent 1888 0 R /A 1323 0 R >> endobj 1890 0 obj << /Title /Parent 1871 0 R /Prev 1888 0 R /Next 1891 0 R /A 1326 0 R >> endobj 1891 0 obj << /Title /Parent 1871 0 R /Prev 1890 0 R /Next 1892 0 R /A 1329 0 R >> endobj 1892 0 obj << /Title /Parent 1871 0 R /Prev 1891 0 R /Next 1893 0 R /A 1332 0 R >> endobj 1893 0 obj << /Title /Parent 1871 0 R /Prev 1892 0 R /Next 1894 0 R /A 1335 0 R >> endobj 1894 0 obj << /Title /Parent 1871 0 R /Prev 1893 0 R /Next 1895 0 R /A 1338 0 R >> endobj 1895 0 obj << /Title /Parent 1871 0 R /Prev 1894 0 R /Next 1896 0 R /A 1490 0 R >> endobj 1896 0 obj << /Title /Parent 1871 0 R /Prev 1895 0 R /Next 1897 0 R /A 1494 0 R >> endobj 1897 0 obj << /Title /Parent 1871 0 R /Prev 1896 0 R /Next 1902 0 R /First 1898 0 R /Last 1901 0 R /Count 4 /A 1497 0 R >> endobj 1898 0 obj << /Title /Parent 1897 0 R /Next 1899 0 R /A 1500 0 R >> endobj 1899 0 obj << /Title /Parent 1897 0 R /Prev 1898 0 R /Next 1900 0 R /A 1503 0 R >> endobj 1900 0 obj << /Title /Parent 1897 0 R /Prev 1899 0 R /Next 1901 0 R /A 1506 0 R >> endobj 1901 0 obj << /Title /Parent 1897 0 R /Prev 1900 0 R /A 1509 0 R >> endobj 1902 0 obj << /Title /Parent 1871 0 R /Prev 1897 0 R /First 1903 0 R /Last 1903 0 R /Count 1 /A 1512 0 R >> endobj 1903 0 obj << /Title /Parent 1902 0 R /A 1515 0 R >> endobj 1904 0 obj << /Title /Parent 1786 0 R /Prev 1871 0 R /First 1905 0 R /Last 1907 0 R /Count 5 /A 1366 0 R >> endobj 1905 0 obj << /Title /Parent 1904 0 R /Next 1906 0 R /A 1520 0 R >> endobj 1906 0 obj << /Title /Parent 1904 0 R /Prev 1905 0 R /Next 1907 0 R /A 1523 0 R >> endobj 1907 0 obj << /Title /Parent 1904 0 R /Prev 1906 0 R /First 1908 0 R /Last 1909 0 R /Count 2 /A 1526 0 R >> endobj 1908 0 obj << /Title /Parent 1907 0 R /Next 1909 0 R /A 1529 0 R >> endobj 1909 0 obj << /Title /Parent 1907 0 R /Prev 1908 0 R /A 1532 0 R >> endobj 1910 0 obj << /Title /Parent 1636 0 R /Prev 1786 0 R /Next 1911 0 R /A 1535 0 R >> endobj 1911 0 obj << /Title /Parent 1636 0 R /Prev 1910 0 R /Next 1919 0 R /First 1912 0 R /Last 1918 0 R /Count 7 /A 1538 0 R >> endobj 1912 0 obj << /Title /Parent 1911 0 R /Next 1913 0 R /A 1541 0 R >> endobj 1913 0 obj << /Title /Parent 1911 0 R /Prev 1912 0 R /Next 1914 0 R /A 1544 0 R >> endobj 1914 0 obj << /Title /Parent 1911 0 R /Prev 1913 0 R /Next 1915 0 R /A 1547 0 R >> endobj 1915 0 obj << /Title /Parent 1911 0 R /Prev 1914 0 R /Next 1916 0 R /A 1550 0 R >> endobj 1916 0 obj << /Title /Parent 1911 0 R /Prev 1915 0 R /Next 1917 0 R /A 1553 0 R >> endobj 1917 0 obj << /Title /Parent 1911 0 R /Prev 1916 0 R /Next 1918 0 R /A 1556 0 R >> endobj 1918 0 obj << /Title /Parent 1911 0 R /Prev 1917 0 R /A 1559 0 R >> endobj 1919 0 obj << /Title /Parent 1636 0 R /Prev 1911 0 R /Next 1922 0 R /First 1920 0 R /Last 1921 0 R /Count 2 /A 1562 0 R >> endobj 1920 0 obj << /Title /Parent 1919 0 R /Next 1921 0 R /A 1565 0 R >> endobj 1921 0 obj << /Title /Parent 1919 0 R /Prev 1920 0 R /A 1568 0 R >> endobj 1922 0 obj << /Title /Parent 1636 0 R /Prev 1919 0 R /Next 1923 0 R /A 1571 0 R >> endobj 1923 0 obj << /Title /Parent 1636 0 R /Prev 1922 0 R /Next 1924 0 R /A 1574 0 R >> endobj 1924 0 obj << /Title /Parent 1636 0 R /Prev 1923 0 R /Next 1935 0 R /First 1925 0 R /Last 1934 0 R /Count 10 /A 1577 0 R >> endobj 1925 0 obj << /Title /Parent 1924 0 R /Next 1926 0 R /A 1580 0 R >> endobj 1926 0 obj << /Title /Parent 1924 0 R /Prev 1925 0 R /Next 1927 0 R /A 1584 0 R >> endobj 1927 0 obj << /Title /Parent 1924 0 R /Prev 1926 0 R /Next 1928 0 R /A 1588 0 R >> endobj 1928 0 obj << /Title /Parent 1924 0 R /Prev 1927 0 R /Next 1929 0 R /A 1591 0 R >> endobj 1929 0 obj << /Title /Parent 1924 0 R /Prev 1928 0 R /Next 1930 0 R /A 1594 0 R >> endobj 1930 0 obj << /Title /Parent 1924 0 R /Prev 1929 0 R /Next 1931 0 R /A 1597 0 R >> endobj 1931 0 obj << /Title /Parent 1924 0 R /Prev 1930 0 R /Next 1932 0 R /A 1600 0 R >> endobj 1932 0 obj << /Title /Parent 1924 0 R /Prev 1931 0 R /Next 1933 0 R /A 1603 0 R >> endobj 1933 0 obj << /Title /Parent 1924 0 R /Prev 1932 0 R /Next 1934 0 R /A 1606 0 R >> endobj 1934 0 obj << /Title /Parent 1924 0 R /Prev 1933 0 R /A 1609 0 R >> endobj 1935 0 obj << /Title /Parent 1636 0 R /Prev 1924 0 R /First 1936 0 R /Last 1941 0 R /Count 6 /A 1612 0 R >> endobj 1936 0 obj << /Title /Parent 1935 0 R /Next 1939 0 R /First 1937 0 R /Last 1938 0 R /Count 2 /A 1615 0 R >> endobj 1937 0 obj << /Title /Parent 1936 0 R /Next 1938 0 R /A 1618 0 R >> endobj 1938 0 obj << /Title /Parent 1936 0 R /Prev 1937 0 R /A 1621 0 R >> endobj 1939 0 obj << /Title /Parent 1935 0 R /Prev 1936 0 R /Next 1940 0 R /A 1624 0 R >> endobj 1940 0 obj << /Title /Parent 1935 0 R /Prev 1939 0 R /Next 1941 0 R /A 1627 0 R >> endobj 1941 0 obj << /Title /Parent 1935 0 R /Prev 1940 0 R /A 1630 0 R >> endobj 1942 0 obj << /Type /Font /Subtype /Type1 /Name /F11 /BaseFont /Courier-Bold /Encoding /WinAnsiEncoding >> endobj 1943 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 1944 0 obj << /Type /Font /Subtype /Type1 /Name /F12 /BaseFont /Courier-BoldOblique /Encoding /WinAnsiEncoding >> endobj 1945 0 obj << /Type /Font /Subtype /Type1 /Name /F10 /BaseFont /Courier-Oblique /Encoding /WinAnsiEncoding >> endobj 1946 0 obj << /Type /Font /Subtype /Type1 /Name /F3 /BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding >> endobj 1947 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica-Oblique /Encoding /WinAnsiEncoding >> endobj 1948 0 obj << /Type /Font /Subtype /Type1 /Name /F9 /BaseFont /Courier /Encoding /WinAnsiEncoding >> endobj 1949 0 obj << /Type /Font /Subtype /Type1 /Name /F13 /BaseFont /Symbol >> endobj 1 0 obj << /Type /Pages /Count 120 /Kids [8 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 38 0 R 76 0 R 86 0 R 87 0 R 112 0 R 169 0 R 175 0 R 187 0 R 190 0 R 196 0 R 203 0 R 206 0 R 365 0 R 373 0 R 378 0 R 388 0 R 396 0 R 404 0 R 409 0 R 415 0 R 429 0 R 432 0 R 440 0 R 451 0 R 456 0 R 465 0 R 492 0 R 495 0 R 500 0 R 510 0 R 513 0 R 516 0 R 523 0 R 549 0 R 550 0 R 717 0 R 720 0 R 726 0 R 742 0 R 753 0 R 756 0 R 765 0 R 786 0 R 789 0 R 792 0 R 795 0 R 798 0 R 806 0 R 816 0 R 819 0 R 822 0 R 825 0 R 832 0 R 849 0 R 852 0 R 855 0 R 865 0 R 875 0 R 878 0 R 881 0 R 884 0 R 887 0 R 890 0 R 893 0 R 896 0 R 899 0 R 922 0 R 1071 0 R 1074 0 R 1077 0 R 1080 0 R 1085 0 R 1091 0 R 1105 0 R 1114 0 R 1121 0 R 1124 0 R 1127 0 R 1130 0 R 1139 0 R 1147 0 R 1157 0 R 1162 0 R 1171 0 R 1181 0 R 1192 0 R 1343 0 R 1346 0 R 1349 0 R 1352 0 R 1370 0 R 1373 0 R 1376 0 R 1379 0 R 1382 0 R 1385 0 R 1388 0 R 1397 0 R 1402 0 R 1405 0 R 1413 0 R 1437 0 R 1443 0 R 1452 0 R 1460 0 R 1466 0 R 1472 0 R 1480 0 R ] >> endobj 2 0 obj << /Type /Catalog /Pages 1 0 R /Outlines 1636 0 R /PageMode /UseOutlines /Metadata 7 0 R >> endobj 3 0 obj << /Font << /F1 1943 0 R /F11 1942 0 R /F12 1944 0 R /F10 1945 0 R /F3 1946 0 R /F2 1947 0 R /F9 1948 0 R /F13 1949 0 R >> /ProcSet [ /PDF /ImageB /ImageC /Text ] /XObject << /Im3 1081 0 R /Im2 466 0 R /Im1 461 0 R >> /ColorSpace << /DefaultRGB 6 0 R >> >> endobj 52 0 obj << /Type /Action /S /GoTo /D [31 0 R /XYZ 51.023 799.37 null] >> endobj 54 0 obj << /Type /Action /S /GoTo /D [31 0 R /XYZ 51.023 569.118 null] >> endobj 56 0 obj << /Type /Action /S /GoTo /D [31 0 R /XYZ 51.023 484.25797 null] >> endobj 134 0 obj << /Type /Action /S /GoTo /D [76 0 R /XYZ 51.023 799.37 null] >> endobj 137 0 obj << /Type /Action /S /GoTo /D [76 0 R /XYZ 51.023 713.313 null] >> endobj 139 0 obj << /Type /Action /S /GoTo /D [76 0 R /XYZ 51.023 404.86496 null] >> endobj 141 0 obj << /Type /Action /S /GoTo /D [76 0 R /XYZ 51.023 210.898 null] >> endobj 143 0 obj << /Type /Action /S /GoTo /D [76 0 R /XYZ 51.023 159.48997 null] >> endobj 145 0 obj << /Type /Action /S /GoTo /D [76 0 R /XYZ 51.023 93.92601 null] >> endobj 161 0 obj << /Type /Action /S /GoTo /D [112 0 R /XYZ 51.023 375.90198 null] >> endobj 163 0 obj << /Type /Action /S /GoTo /D [112 0 R /XYZ 51.023 245.01201 null] >> endobj 165 0 obj << /Type /Action /S /GoTo /D [112 0 R /XYZ 51.023 428.25797 null] >> endobj 217 0 obj << /Type /Action /S /GoTo /D [18 0 R /XYZ 51.023 799.37 null] >> endobj 221 0 obj << /Type /Action /S /GoTo /D [18 0 R /XYZ 51.023 541.98096 null] >> endobj 227 0 obj << /Type /Action /S /GoTo /D [28 0 R /XYZ 51.023 799.37 null] >> endobj 230 0 obj << /Type /Action /S /GoTo /D [28 0 R /XYZ 51.023 704.38696 null] >> endobj 233 0 obj << /Type /Action /S /GoTo /D [28 0 R /XYZ 51.023 668.087 null] >> endobj 236 0 obj << /Type /Action /S /GoTo /D [28 0 R /XYZ 51.023 345.89996 null] >> endobj 239 0 obj << /Type /Action /S /GoTo /D [28 0 R /XYZ 51.023 235.937 null] >> endobj 242 0 obj << /Type /Action /S /GoTo /D [28 0 R /XYZ 51.023 179.02995 null] >> endobj 245 0 obj << /Type /Action /S /GoTo /D [29 0 R /XYZ 51.023 783.97095 null] >> endobj 248 0 obj << /Type /Action /S /GoTo /D [29 0 R /XYZ 51.023 700.73395 null] >> endobj 251 0 obj << /Type /Action /S /GoTo /D [29 0 R /XYZ 51.023 617.49695 null] >> endobj 254 0 obj << /Type /Action /S /GoTo /D [29 0 R /XYZ 51.023 507.79797 null] >> endobj 257 0 obj << /Type /Action /S /GoTo /D [29 0 R /XYZ 51.023 398.09897 null] >> endobj 260 0 obj << /Type /Action /S /GoTo /D [29 0 R /XYZ 51.023 261.93796 null] >> endobj 263 0 obj << /Type /Action /S /GoTo /D [29 0 R /XYZ 51.023 205.16301 null] >> endobj 284 0 obj << /Type /Action /S /GoTo /D [76 0 R /XYZ 51.023 742.868 null] >> endobj 287 0 obj << /Type /Action /S /GoTo /D [76 0 R /XYZ 51.023 240.45299 null] >> endobj 290 0 obj << /Type /Action /S /GoTo /D [76 0 R /XYZ 51.023 123.481 null] >> endobj 304 0 obj << /Type /Action /S /GoTo /D [112 0 R /XYZ 51.023 140.29997 null] >> endobj 307 0 obj << /Type /Action /S /GoTo /D [175 0 R /XYZ 51.023 799.37 null] >> endobj 312 0 obj << /Type /Action /S /GoTo /D [175 0 R /XYZ 51.023 763.07 null] >> endobj 315 0 obj << /Type /Action /S /GoTo /D [175 0 R /XYZ 51.023 649.23596 null] >> endobj 318 0 obj << /Type /Action /S /GoTo /D [175 0 R /XYZ 51.023 592.595 null] >> endobj 321 0 obj << /Type /Action /S /GoTo /D [175 0 R /XYZ 51.023 494.15997 null] >> endobj 324 0 obj << /Type /Action /S /GoTo /D [175 0 R /XYZ 51.023 300.93295 null] >> endobj 327 0 obj << /Type /Action /S /GoTo /D [187 0 R /XYZ 51.023 799.37 null] >> endobj 330 0 obj << /Type /Action /S /GoTo /D [187 0 R /XYZ 51.023 730.094 null] >> endobj 333 0 obj << /Type /Action /S /GoTo /D [187 0 R /XYZ 51.023 660.818 null] >> endobj 336 0 obj << /Type /Action /S /GoTo /D [187 0 R /XYZ 51.023 343.91797 null] >> endobj 339 0 obj << /Type /Action /S /GoTo /D [190 0 R /XYZ 51.023 147.71996 null] >> endobj 342 0 obj << /Type /Action /S /GoTo /D [196 0 R /XYZ 51.023 589.875 null] >> endobj 345 0 obj << /Type /Action /S /GoTo /D [196 0 R /XYZ 51.023 457.93896 null] >> endobj 348 0 obj << /Type /Action /S /GoTo /D [196 0 R /XYZ 51.023 353.29895 null] >> endobj 351 0 obj << /Type /Action /S /GoTo /D [196 0 R /XYZ 51.023 279.45694 null] >> endobj 354 0 obj << /Type /Action /S /GoTo /D [196 0 R /XYZ 51.023 243.15697 null] >> endobj 357 0 obj << /Type /Action /S /GoTo /D [206 0 R /XYZ 51.023 799.37 null] >> endobj 360 0 obj << /Type /Action /S /GoTo /D [206 0 R /XYZ 51.023 700.857 null] >> endobj 224 0 obj << /Type /Action /S /GoTo /D [27 0 R /XYZ 51.023 799.37 null] >> endobj 539 0 obj << /Type /Action /S /GoTo /D [440 0 R /XYZ 51.023 799.37 null] >> endobj 541 0 obj << /Type /Action /S /GoTo /D [456 0 R /XYZ 51.023 799.37 null] >> endobj 543 0 obj << /Type /Action /S /GoTo /D [516 0 R /XYZ 51.023 799.37 null] >> endobj 545 0 obj << /Type /Action /S /GoTo /D [523 0 R /XYZ 51.023 799.37 null] >> endobj 553 0 obj << /Type /Action /S /GoTo /D [206 0 R /XYZ 51.023 607.60095 null] >> endobj 557 0 obj << /Type /Action /S /GoTo /D [206 0 R /XYZ 51.023 536.035 null] >> endobj 560 0 obj << /Type /Action /S /GoTo /D [365 0 R /XYZ 51.023 372.21896 null] >> endobj 563 0 obj << /Type /Action /S /GoTo /D [365 0 R /XYZ 51.023 217.67497 null] >> endobj 566 0 obj << /Type /Action /S /GoTo /D [373 0 R /XYZ 51.023 472.25098 null] >> endobj 569 0 obj << /Type /Action /S /GoTo /D [373 0 R /XYZ 51.023 153.42601 null] >> endobj 572 0 obj << /Type /Action /S /GoTo /D [378 0 R /XYZ 51.023 670.384 null] >> endobj 575 0 obj << /Type /Action /S /GoTo /D [378 0 R /XYZ 51.023 295.99295 null] >> endobj 578 0 obj << /Type /Action /S /GoTo /D [388 0 R /XYZ 51.023 331.74396 null] >> endobj 581 0 obj << /Type /Action /S /GoTo /D [396 0 R /XYZ 51.023 571.07794 null] >> endobj 584 0 obj << /Type /Action /S /GoTo /D [396 0 R /XYZ 51.023 95.033005 null] >> endobj 587 0 obj << /Type /Action /S /GoTo /D [409 0 R /XYZ 51.023 673.972 null] >> endobj 590 0 obj << /Type /Action /S /GoTo /D [415 0 R /XYZ 51.023 513.797 null] >> endobj 593 0 obj << /Type /Action /S /GoTo /D [429 0 R /XYZ 51.023 612.47 null] >> endobj 596 0 obj << /Type /Action /S /GoTo /D [429 0 R /XYZ 51.023 532.76996 null] >> endobj 599 0 obj << /Type /Action /S /GoTo /D [432 0 R /XYZ 51.023 757.37195 null] >> endobj 602 0 obj << /Type /Action /S /GoTo /D [432 0 R /XYZ 51.023 107.73399 null] >> endobj 609 0 obj << /Type /Action /S /GoTo /D [440 0 R /XYZ 51.023 666.446 null] >> endobj 612 0 obj << /Type /Action /S /GoTo /D [440 0 R /XYZ 51.023 521.846 null] >> endobj 615 0 obj << /Type /Action /S /GoTo /D [440 0 R /XYZ 51.023 404.32095 null] >> endobj 618 0 obj << /Type /Action /S /GoTo /D [440 0 R /XYZ 51.023 286.796 null] >> endobj 621 0 obj << /Type /Action /S /GoTo /D [440 0 R /XYZ 51.023 196.346 null] >> endobj 624 0 obj << /Type /Action /S /GoTo /D [440 0 R /XYZ 51.023 132.971 null] >> endobj 627 0 obj << /Type /Action /S /GoTo /D [451 0 R /XYZ 51.023 799.37 null] >> endobj 634 0 obj << /Type /Action /S /GoTo /D [456 0 R /XYZ 51.023 763.07 null] >> endobj 637 0 obj << /Type /Action /S /GoTo /D [456 0 R /XYZ 51.023 577.475 null] >> endobj 640 0 obj << /Type /Action /S /GoTo /D [456 0 R /XYZ 51.023 218.81895 null] >> endobj 643 0 obj << /Type /Action /S /GoTo /D [465 0 R /XYZ 51.023 738.076 null] >> endobj 646 0 obj << /Type /Action /S /GoTo /D [465 0 R /XYZ 51.023 701.776 null] >> endobj 649 0 obj << /Type /Action /S /GoTo /D [465 0 R /XYZ 51.023 515.75 null] >> endobj 652 0 obj << /Type /Action /S /GoTo /D [465 0 R /XYZ 51.023 428.51096 null] >> endobj 655 0 obj << /Type /Action /S /GoTo /D [465 0 R /XYZ 51.023 341.27197 null] >> endobj 658 0 obj << /Type /Action /S /GoTo /D [465 0 R /XYZ 51.023 219.632 null] >> endobj 661 0 obj << /Type /Action /S /GoTo /D [495 0 R /XYZ 51.023 354.14297 null] >> endobj 664 0 obj << /Type /Action /S /GoTo /D [495 0 R /XYZ 51.023 177.88701 null] >> endobj 667 0 obj << /Type /Action /S /GoTo /D [495 0 R /XYZ 51.023 99.58598 null] >> endobj 670 0 obj << /Type /Action /S /GoTo /D [500 0 R /XYZ 51.023 714.94196 null] >> endobj 673 0 obj << /Type /Action /S /GoTo /D [500 0 R /XYZ 51.023 126.82799 null] >> endobj 676 0 obj << /Type /Action /S /GoTo /D [510 0 R /XYZ 51.023 683.021 null] >> endobj 679 0 obj << /Type /Action /S /GoTo /D [513 0 R /XYZ 51.023 528.584 null] >> endobj 686 0 obj << /Type /Action /S /GoTo /D [523 0 R /XYZ 51.023 308.69498 null] >> endobj 692 0 obj << /Type /Action /S /GoTo /D [550 0 R /XYZ 51.023 799.37 null] >> endobj 697 0 obj << /Type /Action /S /GoTo /D [112 0 R /XYZ 51.023 297.36795 null] >> endobj 702 0 obj << /Type /Action /S /GoTo /D [112 0 R /XYZ 51.023 637.68195 null] >> endobj 704 0 obj << /Type /Action /S /GoTo /D [112 0 R /XYZ 51.023 532.97 null] >> endobj 706 0 obj << /Type /Action /S /GoTo /D [112 0 R /XYZ 51.023 192.65599 null] >> endobj 266 0 obj << /Type /Action /S /GoTo /D [30 0 R /XYZ 51.023 626.573 null] >> endobj 708 0 obj << /Type /Action /S /GoTo /D [112 0 R /XYZ 51.023 110.27098 null] >> endobj 269 0 obj << /Type /Action /S /GoTo /D [30 0 R /XYZ 51.023 570.256 null] >> endobj 272 0 obj << /Type /Action /S /GoTo /D [30 0 R /XYZ 51.023 533.956 null] >> endobj 39 0 obj << /Type /Action /S /GoTo /D [30 0 R /XYZ 51.023 503.87198 null] >> endobj 42 0 obj << /Type /Action /S /GoTo /D [30 0 R /XYZ 51.023 320.24097 null] >> endobj 44 0 obj << /Type /Action /S /GoTo /D [30 0 R /XYZ 51.023 252.37596 null] >> endobj 46 0 obj << /Type /Action /S /GoTo /D [30 0 R /XYZ 51.023 199.90996 null] >> endobj 48 0 obj << /Type /Action /S /GoTo /D [30 0 R /XYZ 51.023 147.44395 null] >> endobj 50 0 obj << /Type /Action /S /GoTo /D [30 0 R /XYZ 51.023 94.97795 null] >> endobj 147 0 obj << /Type /Action /S /GoTo /D [86 0 R /XYZ 51.023 799.37 null] >> endobj 149 0 obj << /Type /Action /S /GoTo /D [86 0 R /XYZ 51.023 741.99396 null] >> endobj 293 0 obj << /Type /Action /S /GoTo /D [86 0 R /XYZ 51.023 673.43896 null] >> endobj 151 0 obj << /Type /Action /S /GoTo /D [86 0 R /XYZ 51.023 643.00995 null] >> endobj 296 0 obj << /Type /Action /S /GoTo /D [86 0 R /XYZ 51.023 574.45496 null] >> endobj 153 0 obj << /Type /Action /S /GoTo /D [86 0 R /XYZ 51.023 544.026 null] >> endobj 155 0 obj << /Type /Action /S /GoTo /D [86 0 R /XYZ 51.023 464.29196 null] >> endobj 157 0 obj << /Type /Action /S /GoTo /D [86 0 R /XYZ 51.023 411.13596 null] >> endobj 777 0 obj << /Type /Action /S /GoTo /D [765 0 R /XYZ 51.023 799.37 null] >> endobj 301 0 obj << /Type /Action /S /GoTo /D [86 0 R /XYZ 51.023 327.55096 null] >> endobj 159 0 obj << /Type /Action /S /GoTo /D [86 0 R /XYZ 51.023 297.12198 null] >> endobj 700 0 obj << /Type /Action /S /GoTo /D [86 0 R /XYZ 51.023 217.38799 null] >> endobj 275 0 obj << /Type /Action /S /GoTo /D [38 0 R /XYZ 51.023 678.647 null] >> endobj 58 0 obj << /Type /Action /S /GoTo /D [38 0 R /XYZ 51.023 648.46497 null] >> endobj 60 0 obj << /Type /Action /S /GoTo /D [38 0 R /XYZ 51.023 611.20197 null] >> endobj 62 0 obj << /Type /Action /S /GoTo /D [38 0 R /XYZ 51.023 557.44 null] >> endobj 278 0 obj << /Type /Action /S /GoTo /D [38 0 R /XYZ 51.023 504.77795 null] >> endobj 64 0 obj << /Type /Action /S /GoTo /D [38 0 R /XYZ 51.023 474.59598 null] >> endobj 281 0 obj << /Type /Action /S /GoTo /D [38 0 R /XYZ 51.023 406.53497 null] >> endobj 66 0 obj << /Type /Action /S /GoTo /D [38 0 R /XYZ 51.023 376.35297 null] >> endobj 840 0 obj << /Type /Action /S /GoTo /D [832 0 R /XYZ 51.023 799.37 null] >> endobj 68 0 obj << /Type /Action /S /GoTo /D [38 0 R /XYZ 51.023 323.69098 null] >> endobj 70 0 obj << /Type /Action /S /GoTo /D [38 0 R /XYZ 51.023 255.62999 null] >> endobj 72 0 obj << /Type /Action /S /GoTo /D [38 0 R /XYZ 51.023 187.56895 null] >> endobj 925 0 obj << /Type /Action /S /GoTo /D [550 0 R /XYZ 51.023 757.932 null] >> endobj 929 0 obj << /Type /Action /S /GoTo /D [550 0 R /XYZ 51.023 551.121 null] >> endobj 932 0 obj << /Type /Action /S /GoTo /D [550 0 R /XYZ 51.023 488.78195 null] >> endobj 935 0 obj << /Type /Action /S /GoTo /D [550 0 R /XYZ 51.023 327.05298 null] >> endobj 938 0 obj << /Type /Action /S /GoTo /D [550 0 R /XYZ 51.023 264.71396 null] >> endobj 941 0 obj << /Type /Action /S /GoTo /D [717 0 R /XYZ 51.023 799.37 null] >> endobj 944 0 obj << /Type /Action /S /GoTo /D [720 0 R /XYZ 51.023 651.675 null] >> endobj 947 0 obj << /Type /Action /S /GoTo /D [720 0 R /XYZ 51.023 349.18396 null] >> endobj 950 0 obj << /Type /Action /S /GoTo /D [726 0 R /XYZ 51.023 799.37 null] >> endobj 953 0 obj << /Type /Action /S /GoTo /D [742 0 R /XYZ 51.023 644.657 null] >> endobj 956 0 obj << /Type /Action /S /GoTo /D [753 0 R /XYZ 51.023 422.52097 null] >> endobj 959 0 obj << /Type /Action /S /GoTo /D [753 0 R /XYZ 51.023 106.270004 null] >> endobj 966 0 obj << /Type /Action /S /GoTo /D [765 0 R /XYZ 51.023 691.92596 null] >> endobj 969 0 obj << /Type /Action /S /GoTo /D [765 0 R /XYZ 51.023 420.94397 null] >> endobj 972 0 obj << /Type /Action /S /GoTo /D [765 0 R /XYZ 51.023 211.55797 null] >> endobj 975 0 obj << /Type /Action /S /GoTo /D [786 0 R /XYZ 51.023 601.816 null] >> endobj 978 0 obj << /Type /Action /S /GoTo /D [786 0 R /XYZ 51.023 530.648 null] >> endobj 981 0 obj << /Type /Action /S /GoTo /D [789 0 R /XYZ 51.023 772.87 null] >> endobj 984 0 obj << /Type /Action /S /GoTo /D [795 0 R /XYZ 51.023 548.048 null] >> endobj 987 0 obj << /Type /Action /S /GoTo /D [798 0 R /XYZ 51.023 778.371 null] >> endobj 990 0 obj << /Type /Action /S /GoTo /D [798 0 R /XYZ 51.023 639.258 null] >> endobj 993 0 obj << /Type /Action /S /GoTo /D [806 0 R /XYZ 51.023 715.776 null] >> endobj 996 0 obj << /Type /Action /S /GoTo /D [806 0 R /XYZ 51.023 287.356 null] >> endobj 999 0 obj << /Type /Action /S /GoTo /D [806 0 R /XYZ 51.023 215.30998 null] >> endobj 1002 0 obj << /Type /Action /S /GoTo /D [819 0 R /XYZ 51.023 649.67 null] >> endobj 1005 0 obj << /Type /Action /S /GoTo /D [822 0 R /XYZ 51.023 661.57996 null] >> endobj 1008 0 obj << /Type /Action /S /GoTo /D [825 0 R /XYZ 51.023 550.784 null] >> endobj 1013 0 obj << /Type /Action /S /GoTo /D [832 0 R /XYZ 51.023 755.37195 null] >> endobj 1016 0 obj << /Type /Action /S /GoTo /D [832 0 R /XYZ 51.023 644.276 null] >> endobj 1019 0 obj << /Type /Action /S /GoTo /D [849 0 R /XYZ 51.023 799.37 null] >> endobj 1022 0 obj << /Type /Action /S /GoTo /D [849 0 R /XYZ 51.023 604.25 null] >> endobj 1025 0 obj << /Type /Action /S /GoTo /D [855 0 R /XYZ 51.023 799.37 null] >> endobj 1028 0 obj << /Type /Action /S /GoTo /D [855 0 R /XYZ 51.023 726.78296 null] >> endobj 1031 0 obj << /Type /Action /S /GoTo /D [855 0 R /XYZ 51.023 648.694 null] >> endobj 1034 0 obj << /Type /Action /S /GoTo /D [865 0 R /XYZ 51.023 799.37 null] >> endobj 1037 0 obj << /Type /Action /S /GoTo /D [875 0 R /XYZ 51.023 799.37 null] >> endobj 1042 0 obj << /Type /Action /S /GoTo /D [875 0 R /XYZ 51.023 298.84998 null] >> endobj 1045 0 obj << /Type /Action /S /GoTo /D [881 0 R /XYZ 51.023 404.23996 null] >> endobj 1048 0 obj << /Type /Action /S /GoTo /D [881 0 R /XYZ 51.023 367.93997 null] >> endobj 1051 0 obj << /Type /Action /S /GoTo /D [887 0 R /XYZ 51.023 778.371 null] >> endobj 1054 0 obj << /Type /Action /S /GoTo /D [896 0 R /XYZ 51.023 234.89098 null] >> endobj 1057 0 obj << /Type /Action /S /GoTo /D [899 0 R /XYZ 51.023 799.37 null] >> endobj 1060 0 obj << /Type /Action /S /GoTo /D [922 0 R /XYZ 51.023 799.37 null] >> endobj 1063 0 obj << /Type /Action /S /GoTo /D [922 0 R /XYZ 51.023 653.209 null] >> endobj 1066 0 obj << /Type /Action /S /GoTo /D [922 0 R /XYZ 51.023 616.909 null] >> endobj 1197 0 obj << /Type /Action /S /GoTo /D [922 0 R /XYZ 51.023 475.10797 null] >> endobj 1201 0 obj << /Type /Action /S /GoTo /D [922 0 R /XYZ 51.023 369.83298 null] >> endobj 1204 0 obj << /Type /Action /S /GoTo /D [1071 0 R /XYZ 51.023 784.07 null] >> endobj 1207 0 obj << /Type /Action /S /GoTo /D [1071 0 R /XYZ 51.023 608.423 null] >> endobj 1210 0 obj << /Type /Action /S /GoTo /D [1071 0 R /XYZ 51.023 389.12695 null] >> endobj 1213 0 obj << /Type /Action /S /GoTo /D [1074 0 R /XYZ 51.023 799.37 null] >> endobj 1218 0 obj << /Type /Action /S /GoTo /D [1074 0 R /XYZ 51.023 603.12897 null] >> endobj 1221 0 obj << /Type /Action /S /GoTo /D [1077 0 R /XYZ 51.023 407.58698 null] >> endobj 1224 0 obj << /Type /Action /S /GoTo /D [1080 0 R /XYZ 51.023 736.95996 null] >> endobj 1227 0 obj << /Type /Action /S /GoTo /D [1080 0 R /XYZ 51.023 515.845 null] >> endobj 1230 0 obj << /Type /Action /S /GoTo /D [1080 0 R /XYZ 51.023 368.33795 null] >> endobj 1233 0 obj << /Type /Action /S /GoTo /D [1080 0 R /XYZ 51.023 212.856 null] >> endobj 1236 0 obj << /Type /Action /S /GoTo /D [1080 0 R /XYZ 51.023 115.58299 null] >> endobj 1239 0 obj << /Type /Action /S /GoTo /D [1085 0 R /XYZ 51.023 722.97095 null] >> endobj 1242 0 obj << /Type /Action /S /GoTo /D [1091 0 R /XYZ 51.023 799.37 null] >> endobj 1245 0 obj << /Type /Action /S /GoTo /D [1091 0 R /XYZ 51.023 759.16797 null] >> endobj 1249 0 obj << /Type /Action /S /GoTo /D [1091 0 R /XYZ 51.023 588.566 null] >> endobj 1252 0 obj << /Type /Action /S /GoTo /D [1091 0 R /XYZ 51.023 411.09396 null] >> endobj 1255 0 obj << /Type /Action /S /GoTo /D [1091 0 R /XYZ 51.023 218.223 null] >> endobj 1258 0 obj << /Type /Action /S /GoTo /D [1105 0 R /XYZ 51.023 554.41296 null] >> endobj 1261 0 obj << /Type /Action /S /GoTo /D [1105 0 R /XYZ 51.023 437.33096 null] >> endobj 1264 0 obj << /Type /Action /S /GoTo /D [1114 0 R /XYZ 51.023 768.57196 null] >> endobj 1267 0 obj << /Type /Action /S /GoTo /D [1114 0 R /XYZ 51.023 703.99 null] >> endobj 1270 0 obj << /Type /Action /S /GoTo /D [1130 0 R /XYZ 51.023 799.37 null] >> endobj 1275 0 obj << /Type /Action /S /GoTo /D [1130 0 R /XYZ 51.023 690.13995 null] >> endobj 1278 0 obj << /Type /Action /S /GoTo /D [1139 0 R /XYZ 51.023 799.37 null] >> endobj 1281 0 obj << /Type /Action /S /GoTo /D [1139 0 R /XYZ 51.023 621.32697 null] >> endobj 1284 0 obj << /Type /Action /S /GoTo /D [1139 0 R /XYZ 51.023 103.64299 null] >> endobj 1287 0 obj << /Type /Action /S /GoTo /D [1147 0 R /XYZ 51.023 726.992 null] >> endobj 1290 0 obj << /Type /Action /S /GoTo /D [1147 0 R /XYZ 51.023 690.69196 null] >> endobj 1293 0 obj << /Type /Action /S /GoTo /D [1147 0 R /XYZ 51.023 542.08496 null] >> endobj 1296 0 obj << /Type /Action /S /GoTo /D [1147 0 R /XYZ 51.023 470.47296 null] >> endobj 1299 0 obj << /Type /Action /S /GoTo /D [1147 0 R /XYZ 51.023 296.48096 null] >> endobj 1302 0 obj << /Type /Action /S /GoTo /D [1157 0 R /XYZ 51.023 757.37195 null] >> endobj 1305 0 obj << /Type /Action /S /GoTo /D [1157 0 R /XYZ 51.023 634.90796 null] >> endobj 1308 0 obj << /Type /Action /S /GoTo /D [1157 0 R /XYZ 51.023 241.38597 null] >> endobj 1311 0 obj << /Type /Action /S /GoTo /D [1162 0 R /XYZ 51.023 565.881 null] >> endobj 1314 0 obj << /Type /Action /S /GoTo /D [1162 0 R /XYZ 51.023 420.16595 null] >> endobj 1317 0 obj << /Type /Action /S /GoTo /D [1162 0 R /XYZ 51.023 326.31195 null] >> endobj 1320 0 obj << /Type /Action /S /GoTo /D [1162 0 R /XYZ 51.023 238.15099 null] >> endobj 1323 0 obj << /Type /Action /S /GoTo /D [1162 0 R /XYZ 51.023 201.851 null] >> endobj 1326 0 obj << /Type /Action /S /GoTo /D [1171 0 R /XYZ 51.023 799.37 null] >> endobj 1329 0 obj << /Type /Action /S /GoTo /D [1171 0 R /XYZ 51.023 658.32996 null] >> endobj 1332 0 obj << /Type /Action /S /GoTo /D [1181 0 R /XYZ 51.023 454.49097 null] >> endobj 1335 0 obj << /Type /Action /S /GoTo /D [1192 0 R /XYZ 51.023 799.37 null] >> endobj 1338 0 obj << /Type /Action /S /GoTo /D [1192 0 R /XYZ 51.023 624.73096 null] >> endobj 689 0 obj << /Type /Action /S /GoTo /D [549 0 R /XYZ 51.023 799.37 null] >> endobj 1366 0 obj << /Type /Action /S /GoTo /D [1352 0 R /XYZ 51.023 799.37 null] >> endobj 1490 0 obj << /Type /Action /S /GoTo /D [1192 0 R /XYZ 51.023 172.721 null] >> endobj 1494 0 obj << /Type /Action /S /GoTo /D [1343 0 R /XYZ 51.023 510.68997 null] >> endobj 1497 0 obj << /Type /Action /S /GoTo /D [1343 0 R /XYZ 51.023 361.11197 null] >> endobj 1500 0 obj << /Type /Action /S /GoTo /D [1343 0 R /XYZ 51.023 324.81195 null] >> endobj 1503 0 obj << /Type /Action /S /GoTo /D [1343 0 R /XYZ 51.023 181.84196 null] >> endobj 1506 0 obj << /Type /Action /S /GoTo /D [1346 0 R /XYZ 51.023 605.66895 null] >> endobj 1509 0 obj << /Type /Action /S /GoTo /D [1346 0 R /XYZ 51.023 491.75696 null] >> endobj 1512 0 obj << /Type /Action /S /GoTo /D [1346 0 R /XYZ 51.023 435.06396 null] >> endobj 1515 0 obj << /Type /Action /S /GoTo /D [1346 0 R /XYZ 51.023 356.94397 null] >> endobj 1520 0 obj << /Type /Action /S /GoTo /D [1352 0 R /XYZ 51.023 691.32996 null] >> endobj 1523 0 obj << /Type /Action /S /GoTo /D [1352 0 R /XYZ 51.023 553.33795 null] >> endobj 1526 0 obj << /Type /Action /S /GoTo /D [1370 0 R /XYZ 51.023 264.05197 null] >> endobj 1529 0 obj << /Type /Action /S /GoTo /D [1373 0 R /XYZ 51.023 528.60596 null] >> endobj 1532 0 obj << /Type /Action /S /GoTo /D [1382 0 R /XYZ 51.023 739.26996 null] >> endobj 1535 0 obj << /Type /Action /S /GoTo /D [1388 0 R /XYZ 51.023 799.37 null] >> endobj 1538 0 obj << /Type /Action /S /GoTo /D [1397 0 R /XYZ 51.023 799.37 null] >> endobj 1541 0 obj << /Type /Action /S /GoTo /D [1397 0 R /XYZ 51.023 593.204 null] >> endobj 1544 0 obj << /Type /Action /S /GoTo /D [1397 0 R /XYZ 51.023 331.00897 null] >> endobj 1547 0 obj << /Type /Action /S /GoTo /D [1402 0 R /XYZ 51.023 799.37 null] >> endobj 1550 0 obj << /Type /Action /S /GoTo /D [1402 0 R /XYZ 51.023 677.27496 null] >> endobj 1553 0 obj << /Type /Action /S /GoTo /D [1402 0 R /XYZ 51.023 541.98 null] >> endobj 1556 0 obj << /Type /Action /S /GoTo /D [1402 0 R /XYZ 51.023 422.08395 null] >> endobj 1559 0 obj << /Type /Action /S /GoTo /D [1402 0 R /XYZ 51.023 343.98596 null] >> endobj 1562 0 obj << /Type /Action /S /GoTo /D [1405 0 R /XYZ 51.023 799.37 null] >> endobj 1565 0 obj << /Type /Action /S /GoTo /D [1405 0 R /XYZ 51.023 764.534 null] >> endobj 1568 0 obj << /Type /Action /S /GoTo /D [1405 0 R /XYZ 51.023 701.83496 null] >> endobj 1571 0 obj << /Type /Action /S /GoTo /D [1413 0 R /XYZ 51.023 799.37 null] >> endobj 1574 0 obj << /Type /Action /S /GoTo /D [1437 0 R /XYZ 51.023 799.37 null] >> endobj 1577 0 obj << /Type /Action /S /GoTo /D [1443 0 R /XYZ 51.023 799.37 null] >> endobj 1580 0 obj << /Type /Action /S /GoTo /D [1443 0 R /XYZ 51.023 658.91595 null] >> endobj 1584 0 obj << /Type /Action /S /GoTo /D [1443 0 R /XYZ 51.023 382.42197 null] >> endobj 1588 0 obj << /Type /Action /S /GoTo /D [1443 0 R /XYZ 51.023 119.15196 null] >> endobj 1591 0 obj << /Type /Action /S /GoTo /D [1452 0 R /XYZ 51.023 587.983 null] >> endobj 1594 0 obj << /Type /Action /S /GoTo /D [1460 0 R /XYZ 51.023 799.37 null] >> endobj 1597 0 obj << /Type /Action /S /GoTo /D [1460 0 R /XYZ 51.023 598.558 null] >> endobj 1600 0 obj << /Type /Action /S /GoTo /D [1460 0 R /XYZ 51.023 509.65198 null] >> endobj 1603 0 obj << /Type /Action /S /GoTo /D [1460 0 R /XYZ 51.023 341.83698 null] >> endobj 1606 0 obj << /Type /Action /S /GoTo /D [1466 0 R /XYZ 51.023 757.57196 null] >> endobj 1609 0 obj << /Type /Action /S /GoTo /D [1466 0 R /XYZ 51.023 679.474 null] >> endobj 1612 0 obj << /Type /Action /S /GoTo /D [1472 0 R /XYZ 51.023 799.37 null] >> endobj 1615 0 obj << /Type /Action /S /GoTo /D [1472 0 R /XYZ 51.023 707.17896 null] >> endobj 1618 0 obj << /Type /Action /S /GoTo /D [1472 0 R /XYZ 51.023 586.967 null] >> endobj 1621 0 obj << /Type /Action /S /GoTo /D [1472 0 R /XYZ 51.023 488.04596 null] >> endobj 1624 0 obj << /Type /Action /S /GoTo /D [1472 0 R /XYZ 51.023 137.38896 null] >> endobj 1627 0 obj << /Type /Action /S /GoTo /D [1480 0 R /XYZ 51.023 593.58295 null] >> endobj 1630 0 obj << /Type /Action /S /GoTo /D [1480 0 R /XYZ 51.023 500.08597 null] >> endobj 1635 0 obj << /Type /Action /S /GoTo /D [8 0 R /XYZ 51.023 799.37 null] >> endobj 1636 0 obj << /First 1637 0 R /Last 1935 0 R >> endobj 1638 0 obj << /Type /Action /S /GoTo /D [13 0 R /XYZ 51.023 799.37 null] >> endobj 1668 0 obj << /Type /Action /S /GoTo /D [31 0 R /XYZ 51.023 430.19595 null] >> endobj 1670 0 obj << /Type /Action /S /GoTo /D [31 0 R /XYZ 51.023 346.02197 null] >> endobj 1672 0 obj << /Type /Action /S /GoTo /D [31 0 R /XYZ 51.023 153.72398 null] >> endobj 1702 0 obj << /Type /Action /S /GoTo /D [86 0 R /XYZ 51.023 380.70697 null] >> endobj 1709 0 obj << /Type /Action /S /GoTo /D [112 0 R /XYZ 51.023 480.61395 null] >> endobj 1739 0 obj << /Type /Action /S /GoTo /D [206 0 R /XYZ 51.023 94.83299 null] >> endobj 1861 0 obj << /Type /Action /S /GoTo /D [1114 0 R /XYZ 51.023 612.777 null] >> endobj 1863 0 obj << /Type /Action /S /GoTo /D [1114 0 R /XYZ 51.023 512.532 null] >> endobj 1865 0 obj << /Type /Action /S /GoTo /D [1121 0 R /XYZ 51.023 799.37 null] >> endobj 1867 0 obj << /Type /Action /S /GoTo /D [1124 0 R /XYZ 51.023 146.34697 null] >> endobj 1869 0 obj << /Type /Action /S /GoTo /D [1127 0 R /XYZ 51.023 452.58997 null] >> endobj xref 0 1950 0000000000 65535 f 0000648000 00000 n 0000649038 00000 n 0000649149 00000 n 0000000015 00000 n 0000000112 00000 n 0000002789 00000 n 0000002822 00000 n 0000004215 00000 n 0000003693 00000 n 0000004372 00000 n 0000004393 00000 n 0000004413 00000 n 0000102099 00000 n 0000221491 00000 n 0000374045 00000 n 0000476638 00000 n 0000582994 00000 n 0000007029 00000 n 0000004433 00000 n 0000006974 00000 n 0000004623 00000 n 0000004814 00000 n 0000005016 00000 n 0000005214 00000 n 0000005415 00000 n 0000007203 00000 n 0000176274 00000 n 0000014203 00000 n 0000034248 00000 n 0000225173 00000 n 0000009834 00000 n 0000007224 00000 n 0000009793 00000 n 0000007419 00000 n 0000007613 00000 n 0000007809 00000 n 0000010008 00000 n 0000289980 00000 n 0000658236 00000 n 0000010029 00000 n 0000014064 00000 n 0000658320 00000 n 0000010169 00000 n 0000658404 00000 n 0000010311 00000 n 0000658488 00000 n 0000010455 00000 n 0000658572 00000 n 0000010597 00000 n 0000658656 00000 n 0000010739 00000 n 0000649445 00000 n 0000010883 00000 n 0000649526 00000 n 0000011027 00000 n 0000649608 00000 n 0000011171 00000 n 0000659835 00000 n 0000011315 00000 n 0000659919 00000 n 0000011459 00000 n 0000660003 00000 n 0000011601 00000 n 0000660169 00000 n 0000011745 00000 n 0000660338 00000 n 0000011885 00000 n 0000660505 00000 n 0000012030 00000 n 0000660589 00000 n 0000012169 00000 n 0000660673 00000 n 0000012312 00000 n 0000012456 00000 n 0000014377 00000 n 0000017657 00000 n 0000014398 00000 n 0000017595 00000 n 0000014623 00000 n 0000014848 00000 n 0000015071 00000 n 0000015316 00000 n 0000015565 00000 n 0000015811 00000 n 0000017831 00000 n 0000253891 00000 n 0000024436 00000 n 0000017852 00000 n 0000024259 00000 n 0000018046 00000 n 0000018221 00000 n 0000018394 00000 n 0000018583 00000 n 0000018754 00000 n 0000018938 00000 n 0000019111 00000 n 0000019307 00000 n 0000019502 00000 n 0000019681 00000 n 0000019880 00000 n 0000020066 00000 n 0000020245 00000 n 0000020454 00000 n 0000020645 00000 n 0000020839 00000 n 0000021028 00000 n 0000021210 00000 n 0000021394 00000 n 0000021574 00000 n 0000021756 00000 n 0000024611 00000 n 0000030152 00000 n 0000024633 00000 n 0000029987 00000 n 0000024831 00000 n 0000025018 00000 n 0000025208 00000 n 0000025400 00000 n 0000025582 00000 n 0000025765 00000 n 0000025944 00000 n 0000026125 00000 n 0000026310 00000 n 0000026497 00000 n 0000026685 00000 n 0000026874 00000 n 0000027061 00000 n 0000027255 00000 n 0000027448 00000 n 0000027634 00000 n 0000027841 00000 n 0000028049 00000 n 0000030329 00000 n 0000649692 00000 n 0000030351 00000 n 0000034099 00000 n 0000649774 00000 n 0000030495 00000 n 0000649857 00000 n 0000030637 00000 n 0000649942 00000 n 0000030779 00000 n 0000650025 00000 n 0000030921 00000 n 0000650110 00000 n 0000031063 00000 n 0000658739 00000 n 0000031207 00000 n 0000658821 00000 n 0000031351 00000 n 0000658991 00000 n 0000031499 00000 n 0000659161 00000 n 0000031645 00000 n 0000659244 00000 n 0000031791 00000 n 0000659329 00000 n 0000031937 00000 n 0000659582 00000 n 0000032078 00000 n 0000650194 00000 n 0000032226 00000 n 0000650280 00000 n 0000032371 00000 n 0000650366 00000 n 0000032515 00000 n 0000032661 00000 n 0000034424 00000 n 0000035783 00000 n 0000034446 00000 n 0000035746 00000 n 0000034628 00000 n 0000034807 00000 n 0000035960 00000 n 0000040030 00000 n 0000035981 00000 n 0000039945 00000 n 0000036171 00000 n 0000036364 00000 n 0000036562 00000 n 0000036775 00000 n 0000036990 00000 n 0000037251 00000 n 0000037513 00000 n 0000037776 00000 n 0000040207 00000 n 0000042901 00000 n 0000040229 00000 n 0000043062 00000 n 0000047368 00000 n 0000043084 00000 n 0000047331 00000 n 0000043270 00000 n 0000043463 00000 n 0000047545 00000 n 0000050663 00000 n 0000047567 00000 n 0000050618 00000 n 0000047761 00000 n 0000047992 00000 n 0000048222 00000 n 0000050840 00000 n 0000052831 00000 n 0000050862 00000 n 0000052992 00000 n 0000057193 00000 n 0000053014 00000 n 0000057116 00000 n 0000053245 00000 n 0000053473 00000 n 0000053712 00000 n 0000053952 00000 n 0000054191 00000 n 0000054431 00000 n 0000054670 00000 n 0000057370 00000 n 0000650452 00000 n 0000057392 00000 n 0000101294 00000 n 0000057535 00000 n 0000650534 00000 n 0000057679 00000 n 0000057825 00000 n 0000653580 00000 n 0000057973 00000 n 0000058118 00000 n 0000650619 00000 n 0000058262 00000 n 0000058404 00000 n 0000650701 00000 n 0000058547 00000 n 0000058689 00000 n 0000650786 00000 n 0000058833 00000 n 0000058977 00000 n 0000650869 00000 n 0000059121 00000 n 0000059269 00000 n 0000650954 00000 n 0000059415 00000 n 0000059558 00000 n 0000651037 00000 n 0000059700 00000 n 0000059842 00000 n 0000651122 00000 n 0000059984 00000 n 0000060126 00000 n 0000651207 00000 n 0000060267 00000 n 0000060413 00000 n 0000651292 00000 n 0000060559 00000 n 0000060702 00000 n 0000651377 00000 n 0000060845 00000 n 0000060988 00000 n 0000651462 00000 n 0000061129 00000 n 0000061271 00000 n 0000651547 00000 n 0000061415 00000 n 0000061556 00000 n 0000651632 00000 n 0000061697 00000 n 0000061843 00000 n 0000657901 00000 n 0000061989 00000 n 0000062133 00000 n 0000658070 00000 n 0000062276 00000 n 0000062416 00000 n 0000658153 00000 n 0000062556 00000 n 0000062700 00000 n 0000659752 00000 n 0000062844 00000 n 0000062992 00000 n 0000660084 00000 n 0000063138 00000 n 0000063284 00000 n 0000660253 00000 n 0000063429 00000 n 0000063575 00000 n 0000651717 00000 n 0000063721 00000 n 0000063867 00000 n 0000651800 00000 n 0000064012 00000 n 0000064158 00000 n 0000651885 00000 n 0000064304 00000 n 0000064447 00000 n 0000658906 00000 n 0000064590 00000 n 0000064738 00000 n 0000659076 00000 n 0000064884 00000 n 0000065030 00000 n 0000065178 00000 n 0000065323 00000 n 0000659497 00000 n 0000065468 00000 n 0000065614 00000 n 0000651968 00000 n 0000065760 00000 n 0000065906 00000 n 0000652054 00000 n 0000066050 00000 n 0000066196 00000 n 0000066346 00000 n 0000066492 00000 n 0000652137 00000 n 0000066636 00000 n 0000066784 00000 n 0000652220 00000 n 0000066930 00000 n 0000067074 00000 n 0000652306 00000 n 0000067222 00000 n 0000067362 00000 n 0000652390 00000 n 0000067503 00000 n 0000067649 00000 n 0000652476 00000 n 0000067799 00000 n 0000067945 00000 n 0000652562 00000 n 0000068091 00000 n 0000068236 00000 n 0000652645 00000 n 0000068382 00000 n 0000068528 00000 n 0000652729 00000 n 0000068671 00000 n 0000068813 00000 n 0000652813 00000 n 0000068955 00000 n 0000069101 00000 n 0000652899 00000 n 0000069247 00000 n 0000069392 00000 n 0000652985 00000 n 0000069538 00000 n 0000069684 00000 n 0000653069 00000 n 0000069830 00000 n 0000069975 00000 n 0000653155 00000 n 0000070120 00000 n 0000070266 00000 n 0000653241 00000 n 0000070412 00000 n 0000070557 00000 n 0000653327 00000 n 0000070703 00000 n 0000070847 00000 n 0000653413 00000 n 0000070990 00000 n 0000071135 00000 n 0000653496 00000 n 0000071278 00000 n 0000071418 00000 n 0000071562 00000 n 0000102275 00000 n 0000105456 00000 n 0000102298 00000 n 0000105403 00000 n 0000102538 00000 n 0000102777 00000 n 0000102998 00000 n 0000103219 00000 n 0000105633 00000 n 0000108423 00000 n 0000105655 00000 n 0000108394 00000 n 0000105880 00000 n 0000108600 00000 n 0000112736 00000 n 0000108622 00000 n 0000112667 00000 n 0000108867 00000 n 0000109110 00000 n 0000109352 00000 n 0000109589 00000 n 0000109836 00000 n 0000110083 00000 n 0000112913 00000 n 0000116552 00000 n 0000112935 00000 n 0000116499 00000 n 0000113182 00000 n 0000113430 00000 n 0000113670 00000 n 0000113910 00000 n 0000116729 00000 n 0000120380 00000 n 0000116751 00000 n 0000120327 00000 n 0000116985 00000 n 0000117213 00000 n 0000117453 00000 n 0000117694 00000 n 0000120557 00000 n 0000123439 00000 n 0000120579 00000 n 0000123410 00000 n 0000120825 00000 n 0000123616 00000 n 0000126861 00000 n 0000123638 00000 n 0000126824 00000 n 0000123876 00000 n 0000124113 00000 n 0000127038 00000 n 0000132301 00000 n 0000127060 00000 n 0000132200 00000 n 0000127280 00000 n 0000127501 00000 n 0000127730 00000 n 0000127962 00000 n 0000128209 00000 n 0000128457 00000 n 0000128697 00000 n 0000128936 00000 n 0000129175 00000 n 0000129416 00000 n 0000132478 00000 n 0000135004 00000 n 0000132500 00000 n 0000135165 00000 n 0000138976 00000 n 0000135187 00000 n 0000138923 00000 n 0000135430 00000 n 0000135668 00000 n 0000135910 00000 n 0000136153 00000 n 0000139153 00000 n 0000141893 00000 n 0000139175 00000 n 0000141816 00000 n 0000139360 00000 n 0000139607 00000 n 0000139854 00000 n 0000140037 00000 n 0000140221 00000 n 0000140407 00000 n 0000140607 00000 n 0000142070 00000 n 0000143055 00000 n 0000142092 00000 n 0000143026 00000 n 0000142279 00000 n 0000143232 00000 n 0000146777 00000 n 0000143253 00000 n 0000146732 00000 n 0000143453 00000 n 0000143659 00000 n 0000143865 00000 n 0000144429 00000 n 0000144450 00000 n 0000146954 00000 n 0000154611 00000 n 0000146976 00000 n 0000148015 00000 n 0000148036 00000 n 0000154422 00000 n 0000148219 00000 n 0000148398 00000 n 0000148577 00000 n 0000148755 00000 n 0000148935 00000 n 0000149124 00000 n 0000149314 00000 n 0000149501 00000 n 0000149706 00000 n 0000149910 00000 n 0000150118 00000 n 0000150327 00000 n 0000150524 00000 n 0000150719 00000 n 0000150927 00000 n 0000151137 00000 n 0000151348 00000 n 0000151559 00000 n 0000151762 00000 n 0000151963 00000 n 0000152165 00000 n 0000154788 00000 n 0000156405 00000 n 0000154810 00000 n 0000156566 00000 n 0000158964 00000 n 0000156588 00000 n 0000158935 00000 n 0000156797 00000 n 0000159141 00000 n 0000162430 00000 n 0000159163 00000 n 0000162361 00000 n 0000159365 00000 n 0000159556 00000 n 0000159742 00000 n 0000159954 00000 n 0000160162 00000 n 0000160371 00000 n 0000162607 00000 n 0000164973 00000 n 0000162629 00000 n 0000165134 00000 n 0000167114 00000 n 0000165156 00000 n 0000167275 00000 n 0000169047 00000 n 0000167297 00000 n 0000169002 00000 n 0000167494 00000 n 0000167698 00000 n 0000167898 00000 n 0000169224 00000 n 0000174103 00000 n 0000169246 00000 n 0000174018 00000 n 0000169429 00000 n 0000169612 00000 n 0000169837 00000 n 0000170062 00000 n 0000170287 00000 n 0000170512 00000 n 0000170737 00000 n 0000170956 00000 n 0000174280 00000 n 0000174302 00000 n 0000176197 00000 n 0000174447 00000 n 0000174590 00000 n 0000653662 00000 n 0000174732 00000 n 0000653745 00000 n 0000174873 00000 n 0000653828 00000 n 0000175014 00000 n 0000653911 00000 n 0000175159 00000 n 0000175304 00000 n 0000176450 00000 n 0000490301 00000 n 0000178709 00000 n 0000176471 00000 n 0000178870 00000 n 0000653994 00000 n 0000178892 00000 n 0000220686 00000 n 0000179036 00000 n 0000654080 00000 n 0000179179 00000 n 0000179325 00000 n 0000654164 00000 n 0000179470 00000 n 0000179614 00000 n 0000654250 00000 n 0000179758 00000 n 0000179900 00000 n 0000654336 00000 n 0000180042 00000 n 0000180186 00000 n 0000654422 00000 n 0000180332 00000 n 0000180476 00000 n 0000654508 00000 n 0000180619 00000 n 0000180765 00000 n 0000654592 00000 n 0000180911 00000 n 0000181054 00000 n 0000654678 00000 n 0000181201 00000 n 0000181343 00000 n 0000654764 00000 n 0000181485 00000 n 0000181629 00000 n 0000654850 00000 n 0000181775 00000 n 0000181921 00000 n 0000654936 00000 n 0000182067 00000 n 0000182213 00000 n 0000655020 00000 n 0000182356 00000 n 0000182497 00000 n 0000655104 00000 n 0000182637 00000 n 0000182779 00000 n 0000655187 00000 n 0000182919 00000 n 0000183061 00000 n 0000655273 00000 n 0000183203 00000 n 0000183349 00000 n 0000655359 00000 n 0000183495 00000 n 0000183639 00000 n 0000183782 00000 n 0000183922 00000 n 0000184062 00000 n 0000184206 00000 n 0000655445 00000 n 0000184350 00000 n 0000184498 00000 n 0000655529 00000 n 0000184644 00000 n 0000184790 00000 n 0000655613 00000 n 0000184935 00000 n 0000185081 00000 n 0000655699 00000 n 0000185226 00000 n 0000185372 00000 n 0000655783 00000 n 0000185518 00000 n 0000185664 00000 n 0000655867 00000 n 0000185810 00000 n 0000185952 00000 n 0000655951 00000 n 0000186096 00000 n 0000186244 00000 n 0000186390 00000 n 0000186536 00000 n 0000186686 00000 n 0000186832 00000 n 0000656034 00000 n 0000186978 00000 n 0000187123 00000 n 0000656117 00000 n 0000187268 00000 n 0000187413 00000 n 0000656201 00000 n 0000187563 00000 n 0000187709 00000 n 0000656287 00000 n 0000187859 00000 n 0000188003 00000 n 0000656371 00000 n 0000188147 00000 n 0000188293 00000 n 0000656455 00000 n 0000188438 00000 n 0000188582 00000 n 0000656538 00000 n 0000188726 00000 n 0000188868 00000 n 0000656624 00000 n 0000189010 00000 n 0000189156 00000 n 0000656710 00000 n 0000189301 00000 n 0000189447 00000 n 0000656794 00000 n 0000189593 00000 n 0000189739 00000 n 0000656880 00000 n 0000189885 00000 n 0000190029 00000 n 0000656966 00000 n 0000190173 00000 n 0000190315 00000 n 0000657051 00000 n 0000190457 00000 n 0000190603 00000 n 0000657137 00000 n 0000190749 00000 n 0000190897 00000 n 0000657223 00000 n 0000191043 00000 n 0000191189 00000 n 0000657307 00000 n 0000191335 00000 n 0000191482 00000 n 0000191627 00000 n 0000191773 00000 n 0000191919 00000 n 0000192064 00000 n 0000657391 00000 n 0000192208 00000 n 0000192351 00000 n 0000668588 00000 n 0000192495 00000 n 0000192639 00000 n 0000657477 00000 n 0000192784 00000 n 0000192923 00000 n 0000193065 00000 n 0000221667 00000 n 0000657560 00000 n 0000221690 00000 n 0000225064 00000 n 0000659667 00000 n 0000221833 00000 n 0000657646 00000 n 0000221977 00000 n 0000657732 00000 n 0000222119 00000 n 0000657815 00000 n 0000222265 00000 n 0000657984 00000 n 0000222406 00000 n 0000222550 00000 n 0000222691 00000 n 0000222834 00000 n 0000222974 00000 n 0000223172 00000 n 0000223372 00000 n 0000225349 00000 n 0000228369 00000 n 0000225371 00000 n 0000228530 00000 n 0000231026 00000 n 0000228552 00000 n 0000230989 00000 n 0000228745 00000 n 0000228938 00000 n 0000231203 00000 n 0000235817 00000 n 0000231225 00000 n 0000235700 00000 n 0000231404 00000 n 0000231587 00000 n 0000231764 00000 n 0000231941 00000 n 0000232126 00000 n 0000232312 00000 n 0000232495 00000 n 0000232689 00000 n 0000232885 00000 n 0000233104 00000 n 0000233323 00000 n 0000233541 00000 n 0000235994 00000 n 0000239837 00000 n 0000236016 00000 n 0000239760 00000 n 0000236201 00000 n 0000236385 00000 n 0000236573 00000 n 0000236774 00000 n 0000236977 00000 n 0000237172 00000 n 0000237368 00000 n 0000240014 00000 n 0000242613 00000 n 0000240036 00000 n 0000242774 00000 n 0000246442 00000 n 0000242796 00000 n 0000246381 00000 n 0000243033 00000 n 0000243271 00000 n 0000243507 00000 n 0000243723 00000 n 0000243940 00000 n 0000246619 00000 n 0000249816 00000 n 0000246641 00000 n 0000249771 00000 n 0000246833 00000 n 0000247020 00000 n 0000247205 00000 n 0000249993 00000 n 0000250015 00000 n 0000253790 00000 n 0000250287 00000 n 0000250562 00000 n 0000250772 00000 n 0000659414 00000 n 0000250961 00000 n 0000251106 00000 n 0000251311 00000 n 0000251494 00000 n 0000251691 00000 n 0000251869 00000 n 0000252046 00000 n 0000254067 00000 n 0000256725 00000 n 0000254089 00000 n 0000256886 00000 n 0000259910 00000 n 0000256908 00000 n 0000260071 00000 n 0000263057 00000 n 0000260093 00000 n 0000263218 00000 n 0000266332 00000 n 0000263240 00000 n 0000266493 00000 n 0000269630 00000 n 0000266515 00000 n 0000269577 00000 n 0000266716 00000 n 0000266917 00000 n 0000267127 00000 n 0000267337 00000 n 0000269807 00000 n 0000273386 00000 n 0000269829 00000 n 0000273317 00000 n 0000270028 00000 n 0000270225 00000 n 0000270426 00000 n 0000270619 00000 n 0000270829 00000 n 0000271039 00000 n 0000273563 00000 n 0000276156 00000 n 0000273585 00000 n 0000276317 00000 n 0000278740 00000 n 0000276339 00000 n 0000278901 00000 n 0000280955 00000 n 0000278923 00000 n 0000281116 00000 n 0000283164 00000 n 0000281138 00000 n 0000283119 00000 n 0000281311 00000 n 0000281499 00000 n 0000281680 00000 n 0000283341 00000 n 0000286219 00000 n 0000283363 00000 n 0000286182 00000 n 0000283610 00000 n 0000283853 00000 n 0000286396 00000 n 0000286418 00000 n 0000289903 00000 n 0000660422 00000 n 0000286595 00000 n 0000286740 00000 n 0000286974 00000 n 0000287211 00000 n 0000287445 00000 n 0000287696 00000 n 0000287942 00000 n 0000290156 00000 n 0000292918 00000 n 0000290178 00000 n 0000293079 00000 n 0000294716 00000 n 0000293101 00000 n 0000294877 00000 n 0000298977 00000 n 0000294899 00000 n 0000298908 00000 n 0000295147 00000 n 0000295390 00000 n 0000295626 00000 n 0000295864 00000 n 0000296115 00000 n 0000296364 00000 n 0000299154 00000 n 0000301998 00000 n 0000299176 00000 n 0000301929 00000 n 0000299423 00000 n 0000299665 00000 n 0000299909 00000 n 0000300154 00000 n 0000300394 00000 n 0000300630 00000 n 0000302175 00000 n 0000304242 00000 n 0000302197 00000 n 0000304403 00000 n 0000307341 00000 n 0000304425 00000 n 0000307502 00000 n 0000310020 00000 n 0000307524 00000 n 0000310181 00000 n 0000311992 00000 n 0000310203 00000 n 0000312153 00000 n 0000314816 00000 n 0000312175 00000 n 0000314977 00000 n 0000317072 00000 n 0000314999 00000 n 0000317233 00000 n 0000319834 00000 n 0000317255 00000 n 0000319995 00000 n 0000322550 00000 n 0000320017 00000 n 0000322711 00000 n 0000328197 00000 n 0000322733 00000 n 0000328024 00000 n 0000322972 00000 n 0000323164 00000 n 0000323397 00000 n 0000323591 00000 n 0000323778 00000 n 0000324012 00000 n 0000324242 00000 n 0000324483 00000 n 0000324690 00000 n 0000324879 00000 n 0000325084 00000 n 0000325268 00000 n 0000325452 00000 n 0000325644 00000 n 0000325861 00000 n 0000326049 00000 n 0000326236 00000 n 0000326421 00000 n 0000326608 00000 n 0000328374 00000 n 0000330740 00000 n 0000328396 00000 n 0000330901 00000 n 0000660757 00000 n 0000330923 00000 n 0000373192 00000 n 0000331067 00000 n 0000660841 00000 n 0000331210 00000 n 0000331356 00000 n 0000660925 00000 n 0000331506 00000 n 0000331650 00000 n 0000661011 00000 n 0000331794 00000 n 0000331936 00000 n 0000661097 00000 n 0000332078 00000 n 0000332220 00000 n 0000661183 00000 n 0000332362 00000 n 0000332506 00000 n 0000661266 00000 n 0000332652 00000 n 0000332798 00000 n 0000661350 00000 n 0000332944 00000 n 0000333087 00000 n 0000661436 00000 n 0000333230 00000 n 0000333372 00000 n 0000661519 00000 n 0000333514 00000 n 0000333656 00000 n 0000661603 00000 n 0000333798 00000 n 0000333943 00000 n 0000661689 00000 n 0000334093 00000 n 0000334237 00000 n 0000334383 00000 n 0000334524 00000 n 0000334665 00000 n 0000334807 00000 n 0000661776 00000 n 0000334949 00000 n 0000335093 00000 n 0000661862 00000 n 0000335234 00000 n 0000335380 00000 n 0000661948 00000 n 0000335530 00000 n 0000335674 00000 n 0000662034 00000 n 0000335822 00000 n 0000335962 00000 n 0000662118 00000 n 0000336101 00000 n 0000336245 00000 n 0000662202 00000 n 0000336390 00000 n 0000336536 00000 n 0000662285 00000 n 0000336681 00000 n 0000336827 00000 n 0000662369 00000 n 0000336973 00000 n 0000337119 00000 n 0000662453 00000 n 0000337265 00000 n 0000337413 00000 n 0000662537 00000 n 0000337561 00000 n 0000337707 00000 n 0000662621 00000 n 0000337853 00000 n 0000337997 00000 n 0000662705 00000 n 0000338141 00000 n 0000338288 00000 n 0000662791 00000 n 0000338435 00000 n 0000338583 00000 n 0000662875 00000 n 0000338730 00000 n 0000338880 00000 n 0000662962 00000 n 0000339027 00000 n 0000339175 00000 n 0000339323 00000 n 0000339470 00000 n 0000663047 00000 n 0000339617 00000 n 0000339765 00000 n 0000663134 00000 n 0000339913 00000 n 0000340059 00000 n 0000663219 00000 n 0000340205 00000 n 0000340353 00000 n 0000663303 00000 n 0000340501 00000 n 0000340647 00000 n 0000663387 00000 n 0000340793 00000 n 0000340937 00000 n 0000663471 00000 n 0000341080 00000 n 0000341227 00000 n 0000663558 00000 n 0000341379 00000 n 0000341529 00000 n 0000663643 00000 n 0000341677 00000 n 0000341825 00000 n 0000663727 00000 n 0000341975 00000 n 0000342121 00000 n 0000342267 00000 n 0000342411 00000 n 0000663811 00000 n 0000342555 00000 n 0000342703 00000 n 0000663898 00000 n 0000342851 00000 n 0000342999 00000 n 0000663985 00000 n 0000343147 00000 n 0000343295 00000 n 0000664072 00000 n 0000343443 00000 n 0000343590 00000 n 0000664157 00000 n 0000343737 00000 n 0000343885 00000 n 0000664244 00000 n 0000344033 00000 n 0000344180 00000 n 0000664328 00000 n 0000344327 00000 n 0000344475 00000 n 0000664412 00000 n 0000344620 00000 n 0000344769 00000 n 0000664497 00000 n 0000344916 00000 n 0000345060 00000 n 0000345202 00000 n 0000374222 00000 n 0000376046 00000 n 0000374246 00000 n 0000376209 00000 n 0000379543 00000 n 0000376232 00000 n 0000379706 00000 n 0000381742 00000 n 0000379729 00000 n 0000381905 00000 n 0000385363 00000 n 0000381928 00000 n 0000382969 00000 n 0000382991 00000 n 0000385526 00000 n 0000387145 00000 n 0000385549 00000 n 0000387105 00000 n 0000385774 00000 n 0000385990 00000 n 0000387325 00000 n 0000391554 00000 n 0000387348 00000 n 0000391442 00000 n 0000387540 00000 n 0000387751 00000 n 0000387960 00000 n 0000388170 00000 n 0000388380 00000 n 0000388580 00000 n 0000388784 00000 n 0000388989 00000 n 0000389184 00000 n 0000389420 00000 n 0000391734 00000 n 0000395395 00000 n 0000391757 00000 n 0000395328 00000 n 0000391957 00000 n 0000392135 00000 n 0000392312 00000 n 0000392491 00000 n 0000392669 00000 n 0000395575 00000 n 0000398739 00000 n 0000395598 00000 n 0000398690 00000 n 0000395830 00000 n 0000396066 00000 n 0000396291 00000 n 0000398919 00000 n 0000401504 00000 n 0000398942 00000 n 0000401667 00000 n 0000404500 00000 n 0000401690 00000 n 0000404663 00000 n 0000407011 00000 n 0000404686 00000 n 0000407174 00000 n 0000410889 00000 n 0000407197 00000 n 0000410822 00000 n 0000407381 00000 n 0000407563 00000 n 0000407790 00000 n 0000408018 00000 n 0000408247 00000 n 0000411069 00000 n 0000413885 00000 n 0000411092 00000 n 0000413827 00000 n 0000411271 00000 n 0000411450 00000 n 0000411629 00000 n 0000411816 00000 n 0000414065 00000 n 0000418052 00000 n 0000414088 00000 n 0000417976 00000 n 0000414292 00000 n 0000414494 00000 n 0000414672 00000 n 0000414849 00000 n 0000415028 00000 n 0000415207 00000 n 0000418232 00000 n 0000420832 00000 n 0000418255 00000 n 0000420801 00000 n 0000418454 00000 n 0000421012 00000 n 0000424492 00000 n 0000421035 00000 n 0000424425 00000 n 0000421242 00000 n 0000421453 00000 n 0000421660 00000 n 0000421864 00000 n 0000422068 00000 n 0000424672 00000 n 0000428547 00000 n 0000424695 00000 n 0000428471 00000 n 0000424875 00000 n 0000425053 00000 n 0000425230 00000 n 0000425394 00000 n 0000425580 00000 n 0000425766 00000 n 0000428727 00000 n 0000433017 00000 n 0000428750 00000 n 0000432932 00000 n 0000428962 00000 n 0000429176 00000 n 0000429388 00000 n 0000429603 00000 n 0000429767 00000 n 0000429926 00000 n 0000430086 00000 n 0000433197 00000 n 0000435963 00000 n 0000433220 00000 n 0000435932 00000 n 0000433411 00000 n 0000436143 00000 n 0000664582 00000 n 0000436166 00000 n 0000475743 00000 n 0000436312 00000 n 0000664669 00000 n 0000436458 00000 n 0000436606 00000 n 0000664756 00000 n 0000436754 00000 n 0000436900 00000 n 0000664841 00000 n 0000437046 00000 n 0000437192 00000 n 0000664927 00000 n 0000437338 00000 n 0000437482 00000 n 0000665015 00000 n 0000437625 00000 n 0000437771 00000 n 0000437917 00000 n 0000438065 00000 n 0000665100 00000 n 0000438213 00000 n 0000438358 00000 n 0000665188 00000 n 0000438503 00000 n 0000438647 00000 n 0000665276 00000 n 0000438790 00000 n 0000438934 00000 n 0000665364 00000 n 0000439077 00000 n 0000439227 00000 n 0000665450 00000 n 0000439374 00000 n 0000439520 00000 n 0000665538 00000 n 0000439665 00000 n 0000439808 00000 n 0000665624 00000 n 0000439950 00000 n 0000440094 00000 n 0000665712 00000 n 0000440242 00000 n 0000440386 00000 n 0000665800 00000 n 0000440530 00000 n 0000440678 00000 n 0000665885 00000 n 0000440826 00000 n 0000440972 00000 n 0000441114 00000 n 0000665973 00000 n 0000441260 00000 n 0000441406 00000 n 0000666059 00000 n 0000441552 00000 n 0000441702 00000 n 0000666147 00000 n 0000441850 00000 n 0000441998 00000 n 0000666233 00000 n 0000442145 00000 n 0000442293 00000 n 0000666321 00000 n 0000442441 00000 n 0000442589 00000 n 0000666409 00000 n 0000442741 00000 n 0000442889 00000 n 0000666497 00000 n 0000443036 00000 n 0000443182 00000 n 0000666582 00000 n 0000443327 00000 n 0000443475 00000 n 0000443623 00000 n 0000443771 00000 n 0000666667 00000 n 0000443919 00000 n 0000444069 00000 n 0000666755 00000 n 0000444217 00000 n 0000444365 00000 n 0000666840 00000 n 0000444515 00000 n 0000444663 00000 n 0000666928 00000 n 0000444811 00000 n 0000444959 00000 n 0000667016 00000 n 0000445106 00000 n 0000445252 00000 n 0000667102 00000 n 0000445400 00000 n 0000445548 00000 n 0000667190 00000 n 0000445696 00000 n 0000445842 00000 n 0000667278 00000 n 0000445987 00000 n 0000446131 00000 n 0000667366 00000 n 0000446275 00000 n 0000446423 00000 n 0000667454 00000 n 0000446571 00000 n 0000446719 00000 n 0000667542 00000 n 0000446866 00000 n 0000447014 00000 n 0000667630 00000 n 0000447162 00000 n 0000447308 00000 n 0000667718 00000 n 0000447454 00000 n 0000447598 00000 n 0000667804 00000 n 0000447741 00000 n 0000447889 00000 n 0000667892 00000 n 0000448037 00000 n 0000448185 00000 n 0000667980 00000 n 0000448333 00000 n 0000448480 00000 n 0000668068 00000 n 0000448628 00000 n 0000448775 00000 n 0000668154 00000 n 0000448922 00000 n 0000449069 00000 n 0000668239 00000 n 0000449217 00000 n 0000449364 00000 n 0000668327 00000 n 0000449511 00000 n 0000449657 00000 n 0000668415 00000 n 0000449803 00000 n 0000449950 00000 n 0000668500 00000 n 0000450101 00000 n 0000450243 00000 n 0000450389 00000 n 0000476816 00000 n 0000479273 00000 n 0000476840 00000 n 0000479436 00000 n 0000481671 00000 n 0000479459 00000 n 0000481834 00000 n 0000484668 00000 n 0000481857 00000 n 0000484831 00000 n 0000487372 00000 n 0000484854 00000 n 0000487535 00000 n 0000487558 00000 n 0000490180 00000 n 0000487704 00000 n 0000487848 00000 n 0000487989 00000 n 0000488131 00000 n 0000488274 00000 n 0000488423 00000 n 0000488568 00000 n 0000488710 00000 n 0000488857 00000 n 0000668671 00000 n 0000489004 00000 n 0000489151 00000 n 0000490480 00000 n 0000493288 00000 n 0000490502 00000 n 0000493451 00000 n 0000496221 00000 n 0000493474 00000 n 0000496384 00000 n 0000498813 00000 n 0000496407 00000 n 0000498976 00000 n 0000501397 00000 n 0000498999 00000 n 0000501560 00000 n 0000503845 00000 n 0000501583 00000 n 0000504008 00000 n 0000504940 00000 n 0000504031 00000 n 0000505103 00000 n 0000507005 00000 n 0000505125 00000 n 0000506938 00000 n 0000505320 00000 n 0000505510 00000 n 0000505717 00000 n 0000505912 00000 n 0000506124 00000 n 0000507185 00000 n 0000509271 00000 n 0000507207 00000 n 0000509240 00000 n 0000507382 00000 n 0000509451 00000 n 0000511098 00000 n 0000509474 00000 n 0000511261 00000 n 0000512967 00000 n 0000511284 00000 n 0000512909 00000 n 0000511508 00000 n 0000511728 00000 n 0000511926 00000 n 0000512119 00000 n 0000513147 00000 n 0000521513 00000 n 0000513169 00000 n 0000521311 00000 n 0000513391 00000 n 0000513613 00000 n 0000513839 00000 n 0000514065 00000 n 0000514288 00000 n 0000514511 00000 n 0000514736 00000 n 0000514959 00000 n 0000515190 00000 n 0000515420 00000 n 0000515651 00000 n 0000515880 00000 n 0000516134 00000 n 0000516391 00000 n 0000516646 00000 n 0000516901 00000 n 0000517152 00000 n 0000517405 00000 n 0000517656 00000 n 0000517904 00000 n 0000521693 00000 n 0000522864 00000 n 0000521716 00000 n 0000522824 00000 n 0000521898 00000 n 0000522125 00000 n 0000523044 00000 n 0000526655 00000 n 0000523066 00000 n 0000526588 00000 n 0000523266 00000 n 0000523487 00000 n 0000523705 00000 n 0000523932 00000 n 0000524162 00000 n 0000526835 00000 n 0000530506 00000 n 0000526858 00000 n 0000530448 00000 n 0000527059 00000 n 0000527269 00000 n 0000527591 00000 n 0000527914 00000 n 0000530686 00000 n 0000532727 00000 n 0000530709 00000 n 0000532687 00000 n 0000530908 00000 n 0000531115 00000 n 0000532907 00000 n 0000534365 00000 n 0000532930 00000 n 0000534325 00000 n 0000533175 00000 n 0000533362 00000 n 0000534545 00000 n 0000537500 00000 n 0000534567 00000 n 0000537442 00000 n 0000534744 00000 n 0000534922 00000 n 0000535164 00000 n 0000535401 00000 n 0000537680 00000 n 0000540537 00000 n 0000537703 00000 n 0000540461 00000 n 0000537913 00000 n 0000538125 00000 n 0000538332 00000 n 0000538513 00000 n 0000538748 00000 n 0000538979 00000 n 0000540717 00000 n 0000668756 00000 n 0000540740 00000 n 0000582108 00000 n 0000540888 00000 n 0000668842 00000 n 0000541034 00000 n 0000541182 00000 n 0000668930 00000 n 0000541329 00000 n 0000541475 00000 n 0000669018 00000 n 0000541620 00000 n 0000541763 00000 n 0000669106 00000 n 0000541907 00000 n 0000542051 00000 n 0000669194 00000 n 0000542199 00000 n 0000542345 00000 n 0000669282 00000 n 0000542491 00000 n 0000542639 00000 n 0000669370 00000 n 0000542786 00000 n 0000542933 00000 n 0000669458 00000 n 0000543078 00000 n 0000543221 00000 n 0000543365 00000 n 0000543509 00000 n 0000669546 00000 n 0000543657 00000 n 0000543805 00000 n 0000669634 00000 n 0000543953 00000 n 0000544101 00000 n 0000669722 00000 n 0000544251 00000 n 0000544394 00000 n 0000669810 00000 n 0000544536 00000 n 0000544680 00000 n 0000669898 00000 n 0000544824 00000 n 0000544968 00000 n 0000669986 00000 n 0000545112 00000 n 0000545259 00000 n 0000670071 00000 n 0000545407 00000 n 0000545552 00000 n 0000670156 00000 n 0000545698 00000 n 0000545840 00000 n 0000670242 00000 n 0000545981 00000 n 0000546127 00000 n 0000670330 00000 n 0000546273 00000 n 0000546421 00000 n 0000670415 00000 n 0000546571 00000 n 0000546719 00000 n 0000670503 00000 n 0000546869 00000 n 0000547017 00000 n 0000670588 00000 n 0000547167 00000 n 0000547313 00000 n 0000670676 00000 n 0000547463 00000 n 0000547610 00000 n 0000670764 00000 n 0000547758 00000 n 0000547903 00000 n 0000670849 00000 n 0000548051 00000 n 0000548199 00000 n 0000670935 00000 n 0000548349 00000 n 0000548497 00000 n 0000671023 00000 n 0000548647 00000 n 0000548794 00000 n 0000671108 00000 n 0000548944 00000 n 0000549091 00000 n 0000671193 00000 n 0000549238 00000 n 0000549385 00000 n 0000671278 00000 n 0000549533 00000 n 0000549683 00000 n 0000549829 00000 n 0000671366 00000 n 0000549975 00000 n 0000550125 00000 n 0000550271 00000 n 0000671454 00000 n 0000550417 00000 n 0000550561 00000 n 0000671542 00000 n 0000550707 00000 n 0000550854 00000 n 0000671628 00000 n 0000551002 00000 n 0000551149 00000 n 0000671713 00000 n 0000551297 00000 n 0000551445 00000 n 0000671799 00000 n 0000551593 00000 n 0000551739 00000 n 0000671887 00000 n 0000551885 00000 n 0000552029 00000 n 0000671975 00000 n 0000552173 00000 n 0000552321 00000 n 0000672063 00000 n 0000552471 00000 n 0000552621 00000 n 0000672149 00000 n 0000552768 00000 n 0000552915 00000 n 0000672234 00000 n 0000553063 00000 n 0000553209 00000 n 0000672322 00000 n 0000553356 00000 n 0000553504 00000 n 0000672408 00000 n 0000553651 00000 n 0000553800 00000 n 0000672496 00000 n 0000553947 00000 n 0000554093 00000 n 0000672584 00000 n 0000554238 00000 n 0000554385 00000 n 0000672672 00000 n 0000554532 00000 n 0000554674 00000 n 0000554816 00000 n 0000583172 00000 n 0000672760 00000 n 0000672842 00000 n 0000583196 00000 n 0000672898 00000 n 0000583307 00000 n 0000583421 00000 n 0000583656 00000 n 0000583836 00000 n 0000584073 00000 n 0000584349 00000 n 0000584533 00000 n 0000584673 00000 n 0000584853 00000 n 0000585033 00000 n 0000585197 00000 n 0000585349 00000 n 0000585509 00000 n 0000585673 00000 n 0000585857 00000 n 0000586005 00000 n 0000586201 00000 n 0000586349 00000 n 0000586525 00000 n 0000586701 00000 n 0000586885 00000 n 0000587056 00000 n 0000587291 00000 n 0000587602 00000 n 0000587869 00000 n 0000588120 00000 n 0000588351 00000 n 0000588586 00000 n 0000588937 00000 n 0000672981 00000 n 0000589199 00000 n 0000673067 00000 n 0000589396 00000 n 0000673153 00000 n 0000589601 00000 n 0000589798 00000 n 0000590021 00000 n 0000590284 00000 n 0000590587 00000 n 0000590854 00000 n 0000591077 00000 n 0000591436 00000 n 0000591643 00000 n 0000591934 00000 n 0000592213 00000 n 0000592508 00000 n 0000592795 00000 n 0000593019 00000 n 0000593214 00000 n 0000593454 00000 n 0000593782 00000 n 0000593985 00000 n 0000594221 00000 n 0000594461 00000 n 0000594668 00000 n 0000594944 00000 n 0000595212 00000 n 0000595464 00000 n 0000595691 00000 n 0000595951 00000 n 0000596142 00000 n 0000596338 00000 n 0000596514 00000 n 0000673239 00000 n 0000596753 00000 n 0000597066 00000 n 0000597258 00000 n 0000597478 00000 n 0000597754 00000 n 0000598030 00000 n 0000673325 00000 n 0000598282 00000 n 0000598491 00000 n 0000598687 00000 n 0000599015 00000 n 0000599267 00000 n 0000599495 00000 n 0000599735 00000 n 0000599954 00000 n 0000600262 00000 n 0000600526 00000 n 0000600738 00000 n 0000600886 00000 n 0000601046 00000 n 0000601238 00000 n 0000601462 00000 n 0000601690 00000 n 0000601866 00000 n 0000602054 00000 n 0000602214 00000 n 0000602402 00000 n 0000602586 00000 n 0000602774 00000 n 0000602970 00000 n 0000603178 00000 n 0000603417 00000 n 0000603561 00000 n 0000603809 00000 n 0000604040 00000 n 0000604244 00000 n 0000673412 00000 n 0000604511 00000 n 0000604764 00000 n 0000604992 00000 n 0000605228 00000 n 0000605467 00000 n 0000605703 00000 n 0000605935 00000 n 0000606147 00000 n 0000606362 00000 n 0000606582 00000 n 0000606814 00000 n 0000606978 00000 n 0000607158 00000 n 0000607353 00000 n 0000607525 00000 n 0000607697 00000 n 0000607829 00000 n 0000608072 00000 n 0000608272 00000 n 0000608416 00000 n 0000608572 00000 n 0000608708 00000 n 0000608888 00000 n 0000609072 00000 n 0000609272 00000 n 0000609448 00000 n 0000609688 00000 n 0000609927 00000 n 0000610051 00000 n 0000610195 00000 n 0000610323 00000 n 0000610518 00000 n 0000610706 00000 n 0000610982 00000 n 0000611230 00000 n 0000611442 00000 n 0000611646 00000 n 0000611802 00000 n 0000612049 00000 n 0000612269 00000 n 0000612501 00000 n 0000612781 00000 n 0000612909 00000 n 0000613101 00000 n 0000613301 00000 n 0000613596 00000 n 0000613768 00000 n 0000614029 00000 n 0000614324 00000 n 0000614528 00000 n 0000614743 00000 n 0000614891 00000 n 0000615138 00000 n 0000615278 00000 n 0000615414 00000 n 0000615566 00000 n 0000615698 00000 n 0000615941 00000 n 0000616113 00000 n 0000616265 00000 n 0000616453 00000 n 0000616741 00000 n 0000616877 00000 n 0000617041 00000 n 0000617241 00000 n 0000617480 00000 n 0000617656 00000 n 0000617848 00000 n 0000618024 00000 n 0000618224 00000 n 0000618547 00000 n 0000618735 00000 n 0000618935 00000 n 0000619107 00000 n 0000619343 00000 n 0000619528 00000 n 0000619697 00000 n 0000619854 00000 n 0000620133 00000 n 0000620346 00000 n 0000620535 00000 n 0000620760 00000 n 0000621005 00000 n 0000621229 00000 n 0000621425 00000 n 0000621638 00000 n 0000621859 00000 n 0000622151 00000 n 0000622404 00000 n 0000622617 00000 n 0000622925 00000 n 0000623130 00000 n 0000623339 00000 n 0000623580 00000 n 0000623817 00000 n 0000624049 00000 n 0000624281 00000 n 0000624458 00000 n 0000624710 00000 n 0000624979 00000 n 0000625228 00000 n 0000625445 00000 n 0000625630 00000 n 0000625862 00000 n 0000626015 00000 n 0000626220 00000 n 0000626417 00000 n 0000626602 00000 n 0000626854 00000 n 0000627035 00000 n 0000627236 00000 n 0000627437 00000 n 0000627566 00000 n 0000627847 00000 n 0000628259 00000 n 0000628572 00000 n 0000628885 00000 n 0000629102 00000 n 0000629343 00000 n 0000629604 00000 n 0000629880 00000 n 0000673498 00000 n 0000630132 00000 n 0000673584 00000 n 0000630301 00000 n 0000673670 00000 n 0000630566 00000 n 0000673755 00000 n 0000630834 00000 n 0000673843 00000 n 0000631071 00000 n 0000631280 00000 n 0000631521 00000 n 0000631662 00000 n 0000631983 00000 n 0000632260 00000 n 0000632469 00000 n 0000632666 00000 n 0000632882 00000 n 0000633027 00000 n 0000633200 00000 n 0000633385 00000 n 0000633590 00000 n 0000633847 00000 n 0000634096 00000 n 0000634329 00000 n 0000634546 00000 n 0000634790 00000 n 0000634919 00000 n 0000635143 00000 n 0000635272 00000 n 0000635437 00000 n 0000635618 00000 n 0000635819 00000 n 0000636028 00000 n 0000636281 00000 n 0000636518 00000 n 0000636755 00000 n 0000637015 00000 n 0000637168 00000 n 0000637345 00000 n 0000637606 00000 n 0000637911 00000 n 0000638231 00000 n 0000638492 00000 n 0000638696 00000 n 0000638833 00000 n 0000639002 00000 n 0000639194 00000 n 0000639379 00000 n 0000639576 00000 n 0000639797 00000 n 0000640065 00000 n 0000640186 00000 n 0000640379 00000 n 0000640564 00000 n 0000640813 00000 n 0000641058 00000 n 0000641311 00000 n 0000641580 00000 n 0000641840 00000 n 0000642017 00000 n 0000642194 00000 n 0000642415 00000 n 0000642576 00000 n 0000642785 00000 n 0000643198 00000 n 0000643619 00000 n 0000643884 00000 n 0000644249 00000 n 0000644494 00000 n 0000644807 00000 n 0000645032 00000 n 0000645273 00000 n 0000645546 00000 n 0000645675 00000 n 0000645895 00000 n 0000646179 00000 n 0000646348 00000 n 0000646637 00000 n 0000646806 00000 n 0000646991 00000 n 0000647116 00000 n 0000647230 00000 n 0000647340 00000 n 0000647461 00000 n 0000647578 00000 n 0000647693 00000 n 0000647811 00000 n 0000647919 00000 n trailer << /Size 1950 /Root 2 0 R /Info 4 0 R /ID [ ] >> startxref 673931 %%EOF