xims-1.0/0000755000000000000000000000000010276674013011036 5ustar rootrootxims-1.0/Makefile0000644000000000000000000000365510276470331012504 0ustar rootroot# # XIMS Makefile # # Supports the following targets: # # all - default target checks requirements # check - checks requirements # install - installs the XIMS system # test - runs the test suite # config - updates XIMS config # # See INSTALL for details. # # Set the location of Perl. PERL = /usr/bin/perl ######################### # build rules # ######################### all : check check_done check : $(PERL) tools/install/cpan_install.pl -c check_done : check @echo =========================================================== @echo @echo You may now proceed as superuser to @echo \"make install\" to install any needed Perl modules, @echo set up the XIMS database and the basic XIMS configuration. @echo @echo =========================================================== @echo install : cpan patch_modules db setup done done : setup @echo @echo =========================================================== @echo @echo Initial XIMS setup complete. @echo Please \(re\)start apache and check for errors. @echo You may then proceed with \"make test\" to run the @echo test suite @echo @echo =========================================================== @echo @touch done ########################## # config rules # ########################## config : $(PERL) sbin/xims_setup.pl -c ########################## # installation rules # ########################## cpan : $(PERL) tools/install/cpan_install.pl patch_modules : $(PERL) tools/install/patch_modules.pl db : $(PERL) tools/install/setup_db.pl setup : $(PERL) sbin/xims_setup.pl ########################## # test rules # ########################## TEST_VERBOSE=0 test : cd t; $(PERL) ./ximstest.pl; cd .. ########################## # clean rules # ########################## clean : -rm -f done -rm -f t/lib/XIMS/.ximstest.conf -rm -f t/debug.log -rm -f sql/setup_db.log xims-1.0/Changes0000644000000000000000000003355510276665663012357 0ustar rootroot1.0 General: - New godav.pm handler to connect to the XIMS data repository via WebDAV - New XML-based config files and corresponding config reader modules - Allow deletion of existing Keywords, Abstract, Valid_*_timestamps and Stylesheet-, CSS-, Schema- as well as Image-Assignments (fixing bug #629767) - Allow to change location of existing Files and Images (fixing bug #1196371) - New SQLReport object type (Stores a SQL-select query in the body and executes it at event_default, the results are shown as an HTML-table or transformed via XSLT if a stylesheet has been assigned. If search keys are defined, a HTML form will be generated prompting for values to filter the query result) - Files with with uppercased suffixes in their filenames are correctly resolved during import now - The goxims and Apache::AuthXIMS handlers are reverse proxy aware now (They honor X-Forwarded-For headers) - Added RNG Schemata for UI and published documents - Optional content audit table and triggers for recording creation and updates of objects - Object dependencies (e.g. like related Portlets, assigned stylesheets, ...) are handled by the Exporter now - Various smaller fixes and updates User Interface: - Pagination for container default events - Allow setting children's default sorting order on a per container basis (stored in attributes) - A unified diff between the latest two edited versions of Documents and NewsItems is stored now to track the most recent changes - Added a Save-button next to the Cancel-button in the upper right corner for edit and create screens - Added accesskeys for Save ("Meta"-S) and Cancel ("Meta"-C) - Added a link in the footer to send an e-mail "Please attend to the following object" - Allow displaying content of deleted documents in default container view - Added an example of a Document publishing preview stylesheet - Added a Document's "Document Links" to the "Publish related Objects" dialog at event_publish_prompt User Administration: - Added ObjectTypePriv Management - Added option to lookup users and roles at the role management screen. Will not load all accounts per default any longer Document Editing: - Updates of the HTMLArea integration for a customized version of HTMLArea3RC1 - Added rudimentary support for Xinha and TinyMCE WYSIWYG editors - HTMLArea preserves selection when creating links now - CSS stylesheets to be shown during editing can be assigned now (currently only used by HTMLArea) - Added a "prettyprint"-option for non-WYSIWYG-editing - Plain body textareas are resizable now (tested with FireFox and MSIE) - Integration of BXE XML Editor - Before switching the editor, it is checked if the content of the body has been changed since loading now Commandline Tools: - Moved tools in the 'tools' directory to the more packaging friendly locations 'bin' and 'sbin' - New move.pl tool for moving (published) object hierarchies - Minor updates to the tools - New copy_questionnaire.pl tool Portlets: - Updated Portlet implementation for web portal management (together with the NewsItem object type) - Added Portlet-to-RSS-Feed stylesheets - More meta information is copied from the source now; useful for generating RSS feeds out of Portlets NewsItems: - Updated NewsItem implementation for web portal management (together with the Portlet object type) - New SAX filter ContentObjectPropertyResolver is used for image meta-information expansion now - During NewsItem creation, it is possible to allow concurrent image upload/creation now - Added publish_portlets() method AxPointPresentation: - Nicely display AxPointPresentations for event_default using CSS styles - BXE-Support for AxPointPresentations - Added an option to download an AxPointPresentation as a PDF file Questionnaire: - Allow limited editing of TAN lists (closes bug #964752) - Use a Mac-compatible content-type for result download - Optionally include detailed text-based answers in result download - Added option to download zipped tab-separated raw result data - Allow Textarea- and Text-Types to have no default answer - Made answer-editing more straight forward Stylesheets: - Moved document editor options (Plain Textarea, HTMLArea, ...) to config.xsl - Removed 'organisation' from config.xsl - Updated the default namespace from the old proposed-recommendation of XHTML to the current official one (http://www.w3.org/1999/xhtml) New Module Dependencies: - Array::Iterator - Text::Diff - Text::Template - Archive::Zip - DBIx::XHTML_Table - XML::Generator::DBI API and Internals: - Added caching logic to avoid superflous DB hits - Changed default internal datestyle to a ISO8601 conformant string - Enlarged LongReadLen in ximsconfig.xml to 64mb - Added child_count_granted(), descendant_count_granted(), and copy() methods to XIMS::Object - Class::MethodMaker 2.x compatibility - New XIMS::Iterator::Object class - Added suffix,email,url columns to cilib_authors - Added valid_from_timestamp and valid_to_timestamp handling - Added schema_id column simple.examplesite.tld Example Site: - Fixed HTML namespace - Added System Identifier for xls:output - Copy body elements into HTML namespace to produce validating output - Exclude non HTML namespace prefixes in output - Added MS-related meta tags - Useing output method xml now 0.9.1 - Fixed value of XIMS::Privileges::COPY() and XIMS::Privileges::MODIFY() - Fixed wrong object privs that have been introduced by a typo in the 0.7_0.8/upgrade_common.sql script (for 0.7 to 0.8 updated installations) - Made COPY privilege available to the user interface - Do not include .ptlt suffix in the title of departmentlinks portlets which are added via XIMS::DepartmentRoot::add_departmentlinks() 0.9 - Fixed wrong entries in location_path columns when creating objects directly under /root (PostgreSQL) - Fixed foreign key constraints going to the wrong table (Oracle) - Implemented option to assign a stylesheet directory for /gopublic/-published objects instead of using public/*.xsl - Got rid of hard-coded publishing preview style. It is customizable using/assigning document_publishing_preview.xsl now - New 'is_objectroot' object type property for inheritation logic (Currently set for DepartmentRoot, SiteRoot, VLibrary, and Portal) - New XIMS::Object methods: objectroot_ancestors(), stylesheet(), css(), image(), and script() using ancestrial objectroot settings for cases where inheritation is wanted - New JavaScript object type - Search terms are highlighted in the search result now - When uploading Files, content type 'application/octet-stream' is used as fallback value for unknown content types instead of rejecting the File - Fixed utf-8 encoded strings in XIMS::Importer::_clean_location() - Various smaller fixes and updates 0.8 - Better Performance (children are fetched only if needed, updates for fewer DB hits and cached queries) - Users can select their favourite document editor (Plain, HTMLArea, eWebEditPro) during editing now - Initial version of VLibrary modules. This virtual library object type will support storing and management of documents, links and other media with separate management of metadata. The modules are neither document nor finished yet, this will come with the next XIMS releases. For now, only the import of valid DocBookXML documents (XIMS::VLibraryItem::DocBookXML) is supported. - Fixes for the XIMS setup process (Amongst other things: Support for installing to remote PostgreSQL databases and PostgreSQL databases with password or md5 authentification) - Searching can be limited specific branches of the hierarchy using the "start from here" option - XML object type objects (XML, XSLStylesheet, XSPScript) are handled as full XML documents and no longer as document fragments now - Updated DBIx::SQLEngine module dependancy to 0.017 (fetch_select_rows) - Moved application classes to XIMS::CGI::* - Reactivated cot_creator.pl for creating module templates of new object types - Better path handling during image/link selection using the eWebEditPro WYSIWYG editor - Fixes for Oracle support of the Questionnaire module - Added o:, c:, and u: search macros to enable explicit searches for creators, owners, and modifiers of objects - Updated search result pagination - Support for hierarchical object types - Deleted objects are not shown during object browsing any longer - A lot of smaller fixes and updates 0.7 - The user interface language is chosen based on 'Accept-Language' headers now - XSP object type supports an attribute whether or not to process the XSP at event default - Updated module dependencies to XML::LibXML::Iterator, CGI::XMLApplication 1.1.3, and DBIx::SQLEngine 0.016 - Added "-f" option for fs_import.pl to update existing objects - Intro and Exit text feature for Questionnaires - TAN lists of Questionnaires can be exported in MS Excel and Text format now - Added "-l" option for specifying a setup_db.pl logfile - Show 'id' instead of 'document_id' in object tooltip (container_common.xsl) - Added new $object->siteroot() and $object->siteroot->url convenience methods - removed children_latest() and children_latest_granted() (functionality now provided by $object->children_granted) - Various smaller fixes and updates 0.6 - Added Questionnaire objects for creating online evaluations, surveys and polls - Removed nested set implementation and replaced it with hierarchical queries. With that, support for Pg 7.2 is dropped. DBD::Pg is needed in version > 1.30_1 now. - Added basic documentation for content object class API - Added HowTos for AnonDiscussionForum and AxPointPresentation object types - Restructured documentation - Updated class-diagrams - Added view_privilege_handler() for Apache::AuthXIMS to allow simple access control of published documents - New data format for "Icon" and special MS PowerPoint files. - Renamed DocBookXML objecttype to sDocBookXML with new suffix .sdbk - Renamed suffix of Portlets to .ptlt - UI Stylesheet updates - Added generic constructor, create(), update(), and delete() methods in XIMS::AbstractClass for easier object class creation - Various smaller fixes and updates 0.5 - Filesystem importer to batch import HTML documents or folder hierarchies - Added a feature to create copies of objects (optionally with all its descendants) - Added Building Sites with XIMS (Admin Guide) document which gives a step-by-step example how to build a simple XIMS powered site from an admin's perspective. - Added Auto(re)publish feature for container children - Introduced SiteRoot URLs (former title of SiteRoots). Clicking on the link to the published URL of an object takes you to the server specified in the SiteRoot URL - The DataProvider object and with it the database connection is globally shared for command-line usage and shared per Apache child using now - Changed default value of ResolveSiteRoots to '1'. Users are expected to use XIMS in a Apache vhost scenario per default now. - Updated the default stylesheets for published content in 'ximspubroot' Christoph Wild did most of the new design, Armin Lanzinger did fine tuning on the colors. - The database for PostgreSQL will be created with Unicode encoding now. - An UTF-8 encoded database is assumed to be the default in Config.pm now. - The CGI application classes accept UTF-8 encoded input per default now. If XIMS::DBENCODING is set, the content of CGI params will be converted to it. - Converted encoding of all stylesheets to UTF-8 and changed the xls:output encoding to UTF-8 - Eliminated hardcoded ISO-8859-1 encoding and make use of config option XIMS::DBENCODING() - Added and updated unit tests - Introduced 'admin','devel', and 'install' subdirs for the tools directory - Added publisher.pl command line tool for recursive publishing - Added user_privileges.pl command line tool for recursively granting and revoking user privileges - Added add_departmentlinks.pl command line tool for automated DepartmentLink creation - Added folder_to_objectroot.pl command line tool to convert imported folders to SiteRoots or DepartmentRoots. - Added set_user_metadata.pl command line tool for managing user metadata - Added support for HTMLArea 3.0 - Links to published objects open in a new window now - Added an example homepage "simple.examplesite.tld" under examples - No more hardcoded object type IDs in the object classes - Added a bottom line under "last modified date" and "content length" to optically guide to the options in the default skin. - Fixed editing of DocumentLinks - Allow repositioning of DocumentLinks - Introduced new content object type property "publish_gopublic" to denote whether objects are published to the filesystem or publishing means granting to the public user - Cleanup of NewsItem object type implementation - No need for HTML::Entities any more - Various smaller fixes and updates 0.1.1 - Allow installation directories other than "/usr/local/xims" - Personal user start pages with bookmark management and password update (/goxims/user) - Internationalization (i18n.xml) and "de-at" localization of "default"-skin stylesheets - Added unit tests - System privileges are actually used now - Stylesheet optimizations (folder_default.xsl runs ~25% faster now) - New content object types "Text" and "CSS" - Config directive for Tidy installation path - Additional search macros to find objects by creator or last modifier - Search results are paged and search result count is shown now - Sitemap feature for container objects (tree_view) - Deactivated "patch_modules.pl" - Added "Content Object Type Creator Tool" - Added "show_data_formats.pl" and "show_object_types.pl" in "tools" xims-1.0/INSTALL0000644000000000000000000001077610276603703012100 0ustar rootroot$Id: INSTALL,v 1.13 2005/08/11 08:09:39 pepl Exp $ XIMS Installation Guide ----------------------------------- 0) The following basic prerequisites need to be installed and working: * Apache 1.3.x with mod_perl 1.2x (See http://perl.apache.org/docs/1.0/guide/install.html if you do not already have it installed. * libxml2, libxslt (http://www.xmlsoft.org/), and Expat (http://sourceforge.net/projects/expat/) C libraries Note: Some parts of XML::LibXML (<= 1.56) break with libxml2 >= 2.6.0. Using XML::LibXML 1.58 and XML::LibXSLT 1.58 fixes this. * Tidy (http://tidy.sourceforge.net/) * XIMS currently supports either Oracle (>=8.1.6) or PostgreSQL (>=7.3) as RDBMS backend. You need access to either one and have the respective client installed on your XIMS box. If you are using PostgreSQL, you have to have the tablefunctions in 'contrib/tablefunc' installed. You can build and install them for your source build PostgreSQL version using 'make' and 'make install' in your 'contrib/tablefunc' directory. If you are using a packaged version of PostgreSQL, you will very likely find a postgresql-contrib package for your distribution which you can install using your favourite package manager. * For database access using perl, you'll need either DBD::Oracle or DBD::Pg (>= 1.31) installed. 1) Unpack the distribution to /usr/local: [root@host local]# cd /usr/local [root@host local]# tar xzpvf xims-X.Y.Z.tar.gz [root@host local]# ln -s xims-X.Y.Z xims X and Y represent the major and minor version numbers of your XIMS package. In case you are forced to install under a different path, say "/opt/webapps/" do the following: [root@host local]# cd /opt/webapps [root@host webapps]# tar xzpvf xims-X.Y.Z.tar.gz [root@host webapps]# ln -s xims-X.Y.Z xims Set the environment variable XIMS_HOME to "/opt/webapps/xims": [root@host local]# XIMS_HOME='/opt/webapps/xims';export XIMS_HOME if you have a sh-like shell (sh, ksh, bash, zsh) or [root@host local]# setenv XIMS_HOME '/opt/webapps/xims' on a csh-like shell (csh, tcsh). 2) Check for module dependencies, set up database and basic configuration options, run the test suite. 2.1) Update the location of the Perl binary in the Makefile if necessary [root@host local] cd xims && perl Makefile.PL 2.2) Run 'make' to check for Perl module dependencies [root@host xims] make 2.3) Run 'make install' to start XIMS installation [root@host xims] make install First, missing Perl modules will be installed using CPAN.pm. Depending on your already installed modules and the quality of the modules' setup scripts this is more or less likely to fail. If it does, it makes sense to retry "make install" one or two times since missing dependencies from the first run may be satisfied by then. If that also fails, you have to install the missing modules manually. After all module dependencies have been satisified, XIMS module patches will be applied, followed by the XIMS database setup process. During that process, you will be prompted for database connection information. Having successfully set up the XIMS database, the setup process will continue with the basic XIMS configuration, where you will be prompted to provide configuration information again. Note that this will update the the most essential XIMS config options only. It is recommended to take a look at /usr/local/xims/conf/ximsconfig.xml for further config customizations after finishing "make install". 2.4) (Re)start the apache server. Check if it prints warnings or errors. 2.5) Run the test suite [root@host xims] make test If tests fail, check you testsuite config and|or take a look at the debug.log. If that does not help, feel free to contact us at the addresses quoted at the end of this document. 3) If the installation went fine so far, login to XIMS at http://host/goxims/user as user 'xgu' (pw: xgu) or user 'admin' (pw: _adm1nXP). 4) Consult the documentation documents, e.g. "Building Sites with XIMS (Admin Guide)", for the next steps. Please actually read the file README. If you have problems, feel free to contact us at irc://irc.perl.org/xims or xims-users@lists.sourceforge.net for support. xims-1.0/LICENSE0000644000000000000000000000025607606101256012043 0ustar rootrootThis package is free software and is provided "as is" without express or implied warranty. It may be used, redistributed and/or modified under the same terms as Perl itself. xims-1.0/INSTALL.Debian0000644000000000000000000000207210276603703013247 0ustar rootroot$Id: INSTALL.Debian,v 1.1 2005/08/11 08:09:39 pepl Exp $ Debian Sarge specific notes for installing XIMS ----------------------------------------------- Installing the following packages will cover the needed prequisites mentioned at step (0) by the INSTALL file. You should be able to install them by copy-and-pasting the following two lines: aptitude install gcc postgresql apache postgresql-contrib libxml2 libxslt1 libxml2-utils libxml2-dev xml-core make tidy aptitude install libterm-readline-perl-perl libxml-libxml-perl libxml-libxslt-perl axkit axkit-xsp-webutils libclass-methodmaker-perl libcgi-xmlapplication-perl libtime-piece-perl libapache-dbi-perl libterm-readkey-perl libtext-diff-perl libarchive-zip-perl libtext-template-perl (Perl modules) If you are using Debian's postgresql package as database back-end you can install the Perl binding DBD::Pg by installing the 'libdbd-pg-perl' package. In case of Oracle, you have to install DBD::Oracle manually via CPAN. After having successfully installed those packages, proceed with step (1) of the INSTALL file. xims-1.0/bin/0000755000000000000000000000000010276673764011622 5ustar rootrootxims-1.0/bin/xims_add_departmentlinks.pl0006755000000000000000000000646210276467532017246 0ustar rootroot#!/usr/bin/perl -w # Copyright (c) 2002-2005 The XIMS Project. # See the file "LICENSE" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # $Id: xims_add_departmentlinks.pl,v 1.1 2005/08/10 21:19:22 pepl Exp $ use strict; use warnings; my $xims_home = $ENV{'XIMS_HOME'} || '/usr/local/xims'; die "\nWhere am I?\n\nPlease set the XIMS_HOME environment variable if you\ninstall into a different location than /usr/local/xims\n" unless -f "$xims_home/Makefile"; use lib ($ENV{'XIMS_HOME'} || '/usr/local/xims')."/lib"; use XIMS::Object; use XIMS::DepartmentRoot; use XIMS::SiteRoot; use XIMS::Term; use Getopt::Std; my %args; getopts('hd:u:p:l:n', \%args); my $term = XIMS::Term->new( debuglevel => $args{d} ); print $term->banner( "Add DepartmentLinks" ); my $path = $ARGV[0]; if ( $args{h} ) { print usage(); exit; } unless ( $path ) { die usage(); } my $user = $term->authenticate( %args ); die "Could not authenticate user '".$args{u}."'.\n" unless $user and $user->id(); my $object = XIMS::Object->new( User => $user, path => $path, marked_deleted => undef ); die "Could not find object '$path'.\n" unless $object and $object->id(); my $privmask = $user->object_privmask( $object ); die "Access Denied. You do not have privileges to update '$path'.\n" unless $privmask and ($privmask & (XIMS::Privileges::CREATE() | XIMS::Privileges::WRITE())); my $otname = $object->object_type->name(); die "Object is neither a DepartmentRoot nor a SiteRoot.\n" unless ($otname eq 'DepartmentRoot' or $otname eq 'SiteRoot'); bless $object, "XIMS::$otname"; my %param; my @locations; if ( $args{l} ) { @locations = split(',', $args{l}); } $param{location} = \@locations unless $args{n}; $param{marked_deleted} = undef; my @children = $object->children( %param ); if ( $args{n} ) { my @negativelist; foreach my $child ( @children ) { push( @negativelist, $child ) unless grep { $child->location eq $_ } @locations; } @children = @negativelist; } if ( $object->add_departmentlinks( @children ) ) { print "Successfully added Departmentlinks to '$path'.\n"; } else { die "Could not add Departmentlinks.\n"; } exit 0; sub usage { return qq* Usage: $0 [-h][-d][-u username -p password] [-l comma-separated-list-of-locations [-n]] xims-path-to-department-|siteroot -l If given, this list of locations of the children of the Department- or SiteRoot will be used for creating the Departmentlinks. Optionally, -n can be specified, to negate that list. Per default, all children (except 'departmentlinks' and 'departmentlinks_portlet') will be added as DepartmentLinks. -u The username to connect to XIMS. If not specified, you will be asked for it interactively. -p The password of the XIMS user. If not specified, you will be asked for it interactively. -d For more verbose output, specify the XIMS debug level; default is '1' -h prints this screen Example usage: $0 -u admin -l index.html,contact.html,about.html /foo.bar.tld Adds the children of /foo.bar.tld with the three specified locations as DepartmentLinks. *; } xims-1.0/bin/xims_importer.pl0006755000000000000000000000650510276701455015064 0ustar rootroot#!/usr/bin/perl -w # Copyright (c) 2002-2005 The XIMS Project. # See the file "LICENSE" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # $Id: xims_importer.pl,v 1.2 2005/08/11 16:56:13 pepl Exp $ use strict; use warnings; my $xims_home = $ENV{'XIMS_HOME'} || '/usr/local/xims'; die "\nWhere am I?\n\nPlease set the XIMS_HOME environment variable if you\ninstall into a different location than /usr/local/xims\n" unless -f "$xims_home/Makefile"; use lib ($ENV{'XIMS_HOME'} || '/usr/local/xims')."/lib"; use XIMS::Importer::FileSystem; use XIMS::Object; use XIMS::Term; use File::Basename; use Getopt::Std; # untaint path and env $ENV{PATH} = '/bin:/usr/bin'; # older versions of CWD.pm need 'pwd' $ENV{ENV} = ''; my %args; getopts('hfd:u:p:m:', \%args); my $term = XIMS::Term->new( debuglevel => $args{d} ); print $term->banner( "File System Importer Tool" ); if ( $args{h} ) { print usage(); exit; } unless ( $args{m} and $ARGV[0] ) { die usage(); } my $user = $term->authenticate( %args ); die "Could not authenticate user '".$args{u}."'\n" unless $user and $user->id(); my $parent = XIMS::Object->new( path => $args{m} ); die "Could not find object '".$args{m}."'\n" unless $parent and $parent->id(); my $privmask = $user->object_privmask( $parent ); die "Access Denied. You do not have privileges to create objects under '".$args{m}."'\n" unless $privmask and ($privmask & XIMS::Privileges::CREATE()); my $path = $ARGV[0]; die "Could not read '$path'\n" unless -f $path or -d $path; die "Cannot import from symlink directory '$path'\n" if -l $path and -d $path; # untaint the path $path = $1 if $path =~ /^(.*)$/; my $importer = XIMS::Importer::FileSystem->new( User => $user, Parent => $parent ); my $successful = 0; my $failed = 0; my $dirname = dirname $path; if ( $dirname eq "." ) { $dirname = ''; } else { chdir $dirname; } my $displaydir = $dirname; if ( length $displaydir ) { $displaydir .= '/' unless $displaydir =~ /\/$/; } my @files = $term->findfiles( $path ); die "No files found, nothing to do.\n" unless scalar(@files); foreach my $file ( @files ) { $file =~ s/$dirname\/// if length $dirname; if ( $importer->import( $file, $args{f} ) ) { print "'$displaydir$file' imported successfully.\n"; $successful++; } else { print "Import of '$displaydir$file' failed.\n"; $failed++; } } my $total = scalar @files; print qq* Import Report: Total files: $total Successfully imported: $successful Failed imports: $failed *; exit 0; sub usage { return qq* Usage: $0 [-h][-d][-f][-u username -p password] -m xims-mount-path path-to-import -m The XIMS path to import to. -u The username to connect to XIMS. If not specified, you will be asked for it interactively. -p The password of the XIMS user. If not specified, you will be asked for it interactively. -f Update existing objects. If not set, the importer will skip objects that already exist with the same location in a container. -d For more verbose output, specify the XIMS debug level; default is '1' -h prints this screen *; } xims-1.0/bin/xims_inbodyreplacer.pl0006755000000000000000000000437710276467532016237 0ustar rootroot#!/usr/bin/perl -w # Copyright (c) 2002-2005 The XIMS Project. # See the file "LICENSE" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. use strict; use warnings; my $xims_home = $ENV{'XIMS_HOME'} || '/usr/local/xims'; die "\nWhere am I?\n\nPlease set the XIMS_HOME environment variable if you\ninstall into a different location than /usr/local/xims\n" unless -f "$xims_home/Makefile"; use lib ($ENV{'XIMS_HOME'} || '/usr/local/xims')."/lib"; use XIMS; use XIMS::Object; use XIMS::Term; use Getopt::Std; my %args; getopts('hd:u:p:s:r:', \%args); my $term = XIMS::Term->new( debuglevel => $args{d} ); print $term->banner( "Body Regex Replace Tool" ); if ( $args{h} ) { print usage(); exit; } unless ( $args{s} and $ARGV[0] ) { die usage(); } #my $user = $term->authenticate( %args ); my $user = XIMS::User->new( name => $args{u} ); die "Could not authenticate user '".$args{u}."'\n" unless $user and $user->id(); my $object = XIMS::Object->new( path => $ARGV[0], marked_deleted => undef, User => $user ); die "Could not find object '".$ARGV[0]."'\n" unless $object and $object->id; my $privmask = $user->object_privmask( $object ); die "Access Denied. You do not have privileges to manage privileges for '".$ARGV[0]."'\n" unless $privmask and ($privmask & XIMS::Privileges::WRITE()); my $search = $args{s}; my $replace = $args{r} || ''; my $body = $object->body(); my $count = $body =~ s/$search/$replace/g; if ( $count ) { $object->body( $body ); if ( not $object->update( no_modder => 1 ) ) { warn "Could not update '".$ARGV[0]."'\n"; } else { print "Replaced '$count' occurences.\n"; } } exit 0; sub usage { return qq* Usage: $0 [-h][-d][-u username -p password] [-s] [-r] path-to-object -s String to be replaced -r Optional replacement string -u The username to connect to XIMS. If not specified, you will be asked for it interactively. -p The password of the XIMS user. If not specified, you will be asked for it interactively. -d For more verbose output, specify the XIMS debug level; default is '1' -h prints this screen *; } xims-1.0/bin/xims_publisher.pl0006755000000000000000000001420310276701455015212 0ustar rootroot#!/usr/bin/perl -w # Copyright (c) 2002-2005 The XIMS Project. # See the file "LICENSE" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # $Id: xims_publisher.pl,v 1.2 2005/08/11 16:56:13 pepl Exp $ use strict; use warnings; my $xims_home = $ENV{'XIMS_HOME'} || '/usr/local/xims'; die "\nWhere am I?\n\nPlease set the XIMS_HOME environment variable if you\ninstall into a different location than /usr/local/xims\n" unless -f "$xims_home/Makefile"; use lib ($ENV{'XIMS_HOME'} || '/usr/local/xims')."/lib"; our $total; our $successful; our $failed; our $ungranted; use XIMS::Exporter; use XIMS::Term; use Getopt::Std; # untaint path and env $ENV{PATH} = '/bin'; # CWD.pm needs '/bin/pwd' $ENV{ENV} = ''; my %args; getopts('hd:u:p:m:ranf', \%args); my $term = XIMS::Term->new( debuglevel => $args{d} ); print $term->banner( "Object Publisher" ); if ( $args{h} ) { print usage(); exit; } unless ( $ARGV[0] ) { die usage(); } my $user = $term->authenticate( %args ); die "Could not authenticate user '".$args{u}."'\n" unless $user and $user->id(); my $object = XIMS::Object->new( path => $ARGV[0], marked_deleted => undef, User => $user ); die "Could not find object '".$ARGV[0]."'\n" unless $object and $object->id; # rebless to the object-type's class $object = rebless( $object ); my $privmask = $user->object_privmask( $object ); die "Access Denied. You do not have privileges to publish '".$ARGV[0]."'\n" unless $privmask and ($privmask & XIMS::Privileges::PUBLISH()); die "Option -a specified but object is not published.\n" if ( $args{a} and not $object->published() ); die "No write access to '" . XIMS::PUBROOT() . "'.\n" unless -d XIMS::PUBROOT() and -w XIMS::PUBROOT(); my $exporter = XIMS::Exporter->new( Basedir => XIMS::PUBROOT(), User => $user, ); my $method = $args{m}; $method ||= 'publish'; # default action is to publish my %options; $total = 0; $successful = 0; $failed = 0; $ungranted = 0; if ( $args{r} or $method eq 'unpublish' ) { my %param = (User => $user, marked_deleted => undef ); $param{published} = 1 if ( $args{a} or $method eq 'unpublish' ); # process the tree depth first, needed for unpublishing and handy for publishing since things like # auto-indices and portlets are correctly published in a single step my @descendants = reverse sort { $a->{level} <=> $b->{level} } $object->descendants_granted( %param ); $options{no_dependencies_update} = 1 if scalar @descendants > 0; my $path; my %seencontainers; my $lastdir; foreach my $child ( @descendants ) { next if $child->location() eq '.diff_to_second_last'; # an -exception- :-| $child = rebless( $child ); $privmask = $user->object_privmask( $child ); $path = $child->location_path(); my ($dir) = ($path =~ m#(.*)/(.*)$#); if ( $method eq 'publish' and $args{f} and not exists $seencontainers{$dir} ) { $options{force_ancestor_publish} = 1; } else { delete $options{force_ancestor_publish}; } if ( $privmask & XIMS::Privileges::PUBLISH() ) { if ( $exporter->$method( Object => $child, User => $user, %options ) ) { print "Object '$path' ".$method."ed successfully.\n"; $seencontainers{$dir}++; $total++; $successful++; } else { print "could not $method object '$path'.\n"; $total++; $failed++; } } else { print "no privileges to $method object '$path'.\n"; $total++; $ungranted++; } } } # (re)set no_dependencies_update $args{n} ? $options{no_dependencies_update} = 1 : delete $options{no_dependencies_update}; if ( $exporter->$method( Object => $object, User => $user, %options ) ) { print "Object '" . $object->title . "' ".$method."ed successfully.\n"; $total++; $successful++; } else { print "Could not $method object '" . $object->title . "'.\n"; $total++; $failed++; } if ( $method eq 'publish' ) { my @pubrootstat = stat XIMS::PUBROOT(); my $uid = $pubrootstat[4]; # after install, XIMS::PUBROOT is owned by the apache-user my $gid = $pubrootstat[5]; # because additional files like meta-data files or autoindices are created # by the exporter, we have to recursively chown and chmod 755 the file to the apache-user system('chown','-R',$uid.':'.$gid,XIMS::PUBROOT().$object->location_path()) == 0 or warn "Could not chown ".XIMS::PUBROOT() . $object->location_path.".\n"; system('chmod','-R','g+w',XIMS::PUBROOT().$object->location_path()) == 0 or warn "Could not chown ".XIMS::PUBROOT() . $object->location_path.".\n"; } print qq* Publish Report: Total files: $total Successfully exported: $successful Failed exported: $failed Missing publishing privileges: $ungranted *; exit 0; sub usage { return qq* Usage: $0 [-h][-d][-u username -p password] [-a] [-m method -r] path-to-publish -m Either 'unpublish' or 'publish'; the latter is the default. -r Recursively publish descendants. -a If specified, published objects will be republished only -n If specified, publishing dependencies of the object will not be updated Will have no effect for publishing trees recursively. -u The username to connect to XIMS. If not specified, you will be asked for it interactively. -p The password of the XIMS user. If not specified, you will be asked for it interactively. -d For more verbose output, specify the XIMS debug level; default is '1' -h prints this screen *; } sub rebless { my $object = shift; my $otclass = "XIMS::" . $object->object_type->fullname(); # load the object class eval "require $otclass;" if $otclass; if ( $@ ) { die "Could not load object class $otclass: $@\n"; } # rebless the object bless $object, $otclass; return $object; } xims-1.0/bin/xims_user_privileges.pl0006755000000000000000000001324610276467532016437 0ustar rootroot#!/usr/bin/perl -w # Copyright (c) 2002-2005 The XIMS Project. # See the file "LICENSE" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # $Id: xims_user_privileges.pl,v 1.1 2005/08/10 21:19:22 pepl Exp $ use strict; use warnings; my $xims_home = $ENV{'XIMS_HOME'} || '/usr/local/xims'; die "\nWhere am I?\n\nPlease set the XIMS_HOME environment variable if you\ninstall into a different location than /usr/local/xims\n" unless -f "$xims_home/Makefile"; use lib ($ENV{'XIMS_HOME'} || '/usr/local/xims')."/lib"; use XIMS::User; use XIMS::Object; use XIMS::ObjectPriv; use XIMS::Term; use Getopt::Std; my %args; getopts('herd:u:p:l:g:', \%args); my $term = XIMS::Term->new( debuglevel => $args{d} ); print $term->banner( "User Privilege Manager" ); if ( $args{h} ) { print usage(); exit; } unless ( $args{g} and $ARGV[0] ) { die usage(); } my $user = $term->authenticate( %args ); die "Could not authenticate user '".$args{u}."'\n" unless $user and $user->id(); my $object = XIMS::Object->new( path => $ARGV[0], marked_deleted => undef, User => $user ); die "Could not find object '".$ARGV[0]."'\n" unless $object and $object->id; my $privmask = $user->object_privmask( $object ); die "Access Denied. You do not have privileges to manage privileges for '".$ARGV[0]."'\n" unless $privmask and ($privmask & XIMS::Privileges::GRANT()); my $grantee = XIMS::User->new( name => $args{g}); die "Grantee '".$args{g}."' could not be found.\n" unless $grantee and $grantee->id(); my $privnames = $args{l} || 'VIEW'; my $gprivmask; if ( my $privlist = $args{l} ) { my @privileges = split ',', $privlist; my $tpriv; foreach my $priv ( @privileges ) { no strict 'refs'; $tpriv = &{"XIMS::Privileges::$priv"}; $gprivmask |= $tpriv if ($tpriv and $tpriv > 0); } } else { $gprivmask = XIMS::Privileges::VIEW; } my $method = 'grant'; $method = 'revoke' if $args{e}; my $path = $object->location_path(); my $total = 0; my $successful = 0; my $failed = 0; my $ungranted = 0; if ( $method eq 'grant' ) { if ( $object->grant_user_privileges( grantee => $grantee, grantor => $user, privmask => $gprivmask )) { print "Granted $privnames on '$path'.\n"; $successful++; } else { print "Could not grant $privnames on '$path'.\n"; $total++; } $total++; } else { my $privs_object = XIMS::ObjectPriv->new( grantee_id => $grantee->id, content_id => $object->id() ); if ( $privs_object and $privs_object->delete() ) { print "Revoked grantee from '$path'.\n"; $successful++; } else { print "Could not revoke grantee from '$path'.\n"; $failed++; } $total++; } if ( $successful and $args{r} ) { my $desc_privmask; my $iterator = $object->descendants_granted( User => $user, marked_deleted => undef ); while ( my $desc = $iterator->getNext() ) { $desc_privmask = $user->object_privmask( $desc ); $path = $desc->location_path(); if ( $desc_privmask & XIMS::Privileges::GRANT() ) { if ( $method eq 'grant' ) { if ( $desc->grant_user_privileges( grantee => $grantee, grantor => $user, privmask => $gprivmask ) ) { print "Granted $privnames on '$path'.\n"; $successful++; } else { print "Could not grant $privnames on '$path'.\n"; $failed++; } $total++; } else { my $privs_object = XIMS::ObjectPriv->new( grantee_id => $grantee->id, content_id => $desc->id() ); if ( $privs_object and $privs_object->delete() ) { print "Revoked grantee from '$path'.\n"; $successful++; } else { print "Could not revoke grantee from '$path'.\n"; $failed++; } $total++; } } else { print "Insufficient privileges to $method privileges on '$path'.\n"; $total++; $ungranted++; } } } print qq* Publish Report: Total files: $total Successful: $successful Failed: $failed Insufficient privileges: $ungranted *; exit 0; sub usage { return qq* Usage: $0 [-h][-d][-u username -p password] [-r] [-e] [-l privilege-list] -g grantee-username path-to-object-to-grant -r Recursively grant descendants. -e If specified, all privileges of the grantee will be revoked instead of granted. -l Comma-separated list of XIMS::Privileges to be granted, default is VIEW. Example: -l MODIFY,PUBLISH -g Username of the grantee -u The username to connect to XIMS. If not specified, you will be asked for it interactively. -p The password of the XIMS user. If not specified, you will be asked for it interactively. -d For more verbose output, specify the XIMS debug level; default is '1' -h prints this screen *; } xims-1.0/conf/0000755000000000000000000000000010276673764011777 5ustar rootrootxims-1.0/conf/conf-dbi.d/0000755000000000000000000000000010276673764013702 5ustar rootrootxims-1.0/conf/conf-dbi.d/vlibrary-dbi.xml0000644000000000000000000000267410170325330016773 0ustar rootroot xims-1.0/conf/ximsconfig-dbi.xml0000644000000000000000000000375010170325327015406 0ustar rootroot conf-dbi.d xims-1.0/conf/ximsconfig.xml0000440000000000000000000001673610276641275014666 0ustar rootroot 2 30 -config /usr/local/xims/conf/ximstidy.conf -quiet -f /dev/null htmlarea de-at en-us en-us XIMS::Auth::Password /xims 6 default 1 _ottereendex.html export_auto_index.xsl DBI ximsroot ximspubroot goxims content conf.d xims-1.0/conf/ximshttpd.conf0000644000000000000000000001624410267456737014700 0ustar rootroot# $Id: ximshttpd.conf,v 1.8 2005/07/20 14:21:19 pepl Exp $ # Be sure that AxKit is loaded PerlModule AxKit # XIMS-Config is loaded at Apache startup SetHandler perl-script PerlHandler goxims PerlAccessHandler Apache::AuthXIMS PerlSetVar ximsAuthStyle XIMS::Auth::Password # per default we are using passwords stored in the RDBMS for authentication # # we could also use an IMAP or LDAP server: # PerlSetVar ximsAuthStyle XIMS::Auth::IMAP # ximsAuthServer # has to be set for XIMS::Auth::IMAP and XIMS::Auth::LDAP # PerlSetVar ximsAuthServer imap_host # this has to be set for oracle #PerlSetEnv ORACLE_HOME path_to_your_oracle_home # set custom error-pages ErrorDocument 500 /ximspubroot/500.xsp ErrorDocument 403 /ximspubroot/access.xsp ErrorDocument 404 /ximspubroot/404.xsp # Add XSP taglibs here if you plan to use XIMS object type XSP AxAddXSPTaglib AxKit::XSP::Util AxAddXSPTaglib AxKit::XSP::Param AxAddXSPTaglib AxKit::XSP::IfParam AxAddXSPTaglib AxKit::XSP::WebUtils # AxDebugLevel 10 # For things like XIMS::AnonDiscussionForums for example, we may want to use # public-access to XIMS content. We use the special memberless role 'public' # for that. If your 'public' role is named differently at your XIMS installation, # you will have to change the value of ximsPublic accordingly. # # Public access will work only, if 'ximsPublic' is set and the PerlAccessHandler # Apache::AuthXIMS is not used in the config. SetHandler perl-script PerlHandler goxims # we cannot use user-id here because with an ID of "0" undef is returned by dir_config() PerlSetVar ximsPublicUserName public PerlSetVar ximsgoxims /gopublic #PerlSetEnv ORACLE_HOME path_to_your_oracle_home ErrorDocument 500 /ximspubroot/500.xsp ErrorDocument 403 /ximspubroot/access.xsp ErrorDocument 404 /ximspubroot/404.xsp # AxDebugLevel 10 # Work around behaviour (bug) described in http://support.microsoft.com/?kbid=831805 RewriteEngine On RewriteCond %{REQUEST_METHOD} ^OPTIONS$ RewriteRule ^/$ /godav/ [L] SetHandler perl-script PerlHandler godav # Authentication Realm and Type (only Basic supported) AuthName "XIMS Authentication" AuthType Basic PerlAuthenHandler Apache::BasicAuthXIMS #PerlAuthzHandler Apache::BasicAuthXIMS::authz #PerlSetEnv ORACLE_HOME path_to_your_oracle_home require valid-user #require user xgu #require group admins # adapt to your needs - '_ottereendex.html' is the default value of XIMS::Config::AutoIndexFilename() DirectoryIndex index.xsp index.pl index.cgi index.html index.htm index.xml _ottereendex.html # sth works 'differently' regarding the Apache::Request object with SetHandler Axkit.... # deactivated therefore for now #SetHandler AxKit AddType text/xml .xsp SetHandler perl-script PerlHandler AxKit AxResetProcessors AxGzipOutput On AxAddStyleMap application/x-xsp Apache::AxKit::Language::XSP AxAddStyleMap text/xsl Apache::AxKit::Language::LibXSLT AxErrorStylesheet text/xsl /ximspubroot/stylesheets/error.xsl AxAddPlugin Apache::AxKit::Plugin::AddXSLParams::Request PerlSetVar AxAddXSLParamGroups "Request-Common HTTPHeaders VerboseURI" AxAddProcessor application/x-xsp NULL AxAddProcessor text/xsl /ximspubroot/stylesheets/default.xsl AxAddXSPTaglib AxKit::XSP::Param AxAddXSPTaglib AxKit::XSP::IfParam AxAddXSPTaglib AxKit::XSP::WebUtils # AxDebugLevel 10 SetHandler axkit AxAddStyleMap text/xsl Apache::AxKit::Language::LibXSLT AxErrorStylesheet text/xsl /ximspubroot/stylesheets/error.xsl AxAddPlugin Apache::AxKit::Plugin::Passthru AxAddPlugin Apache::AxKit::StyleChooser::UserAgent AxAddPlugin Apache::AxKit::StyleChooser::QueryString AxAddPlugin Apache::AxKit::Plugin::AddXSLParams::Request PerlSetVar AxAddXSLParamGroups "Request-Common HTTPHeaders" PerlSetVar AxUAStyleMap "#default => IE, textonly => Lynx" AxAddProcessor text/xsl /ximspubroot/stylesheets/default.xsl AxAddProcessor text/xsl /ximspubroot/stylesheets/default_print.xsl AxAddProcessor text/xsl /ximspubroot/stylesheets/default_textonly.xsl #AxDebugLevel 5 SetHandler axkit AxAddPlugin Apache::AxKit::Plugin::Passthru AxAddStyleMap application/x-axpoint Apache::AxKit::Language::AxPoint AxAddRootProcessor application/x-axpoint NULL slideshow #PerlSetVar AxTranslateOutput 1 #PerlSetVar AxOutputCharset iso-8859-1 #AxDebugLevel 5 SetHandler axkit AxAddStyleMap text/xsl Apache::AxKit::Language::LibXSLT AxErrorStylesheet text/xsl /ximspubroot/stylesheets/error.xsl AxAddPlugin Apache::AxKit::Plugin::Passthru AxAddPlugin Apache::AxKit::Plugin::QueryStringCache AxAddPlugin Apache::AxKit::Plugin::AddXSLParams::Request PerlSetVar AxAddXSLParamGroups "Request-Common HTTPHeaders" AxAddProcessor text/xsl /ximspubroot/stylesheets/sdocbook_default.xsl #AxDebugLevel 5 SetHandler axkit AxAddStyleMap text/xsl Apache::AxKit::Language::LibXSLT AxErrorStylesheet text/xsl /ximspubroot/stylesheets/error.xsl AxAddPlugin Apache::AxKit::Plugin::Passthru #AxDebugLevel 5 SetHandler default #\?style= SetHandler axkit AxResetProcessors AxAddStyleMap text/xsl Apache::AxKit::Language::LibXSLT AxErrorStylesheet text/xsl /ximspubroot/stylesheets/error.xsl AxAddPlugin Apache::AxKit::StyleChooser::FileSuffix AxAddProcessor text/xsl /ximspubroot/stylesheets/portlet_rss2.xsl AxAddProcessor text/xsl /ximspubroot/stylesheets/portlet_rss2.xsl #AxDebugLevel 5 #\?style= SetHandler axkit AxResetProcessors AxAddStyleMap text/xsl Apache::AxKit::Language::LibXSLT AxErrorStylesheet text/xsl /ximspubroot/stylesheets/error.xsl AxAddPlugin Apache::AxKit::StyleChooser::FileSuffix AxAddProcessor text/xsl /ximspubroot/stylesheets/portlet_rss1.xsl AxAddProcessor text/xsl /ximspubroot/stylesheets/portlet_rss1.xsl #AxDebugLevel 5 xims-1.0/conf/ximsstartup.pl0000755000000000000000000000031010031774777014727 0ustar rootrootuse strict; # Make sure we are in a sane environment. $ENV{MOD_PERL} or die "not running under mod_perl!"; use Apache::DBI (); # use AxKit (); use lib qw( /usr/local/xims/lib ); use goxims (); 1; xims-1.0/conf/ximstidy.conf0000644000000000000000000000052410232176555014505 0ustar rootroottidy-mark: no word-2000: yes clean: no drop-font-tags: yes doctype: omit drop-empty-paras: yes drop-proprietary-attributes: yes enclose-block-text: yes numeric-entities: yes escape-cdata: yes logical-emphasis: yes indent: auto indent-spaces: 4 break-before-br: yes output-xhtml: yes enclose-text: yes lower-literals: yes char-encoding: utf8xims-1.0/conf/conf.d/0000755000000000000000000000000010276673765013147 5ustar rootrootxims-1.0/conf/conf.d/00core-names.xml0000644000000000000000000002340210242127701016034 0ustar rootroot Session User Document Content Object ObjectType UserPriv Bookmark DataFormat Language ObjectPriv ObjectTypePriv MimeType QuestionnaireResult session.id session.session_id session.user_id session.attributes session.host session.last_access_timestamp session.salt user.password user.enabled user.admin user.id user.system_privs_mask user.name user.lastname user.middlename user.firstname user.email user.url user.object_type content.binfile content.last_modification_timestamp content.notes content.marked_new content.id content.locked_time content.abstract content.body content.title content.keywords content.status content.creation_timestamp content.attributes content.locked_by_id content.style_id content.script_id content.language_id content.last_modified_by_id content.owned_by_id content.created_by_id content.css_id content.image_id content.document_id content.published content.last_publication_timestamp content.last_published_by_id content.marked_deleted content.locked_by_lastname content.locked_by_middlename content.locked_by_firstname content.last_modified_by_lastname content.last_modified_by_middlename content.last_modified_by_firstname content.owned_by_lastname content.owned_by_middlename content.owned_by_firstname content.created_by_lastname content.created_by_middlename content.created_by_firstname content.last_published_by_lastname content.last_published_by_middlename content.last_published_by_firstname content.data_format_name content.schema_id content.valid_from_timestamp content.valid_to_timestamp document.location document.document_status document.id document.parent_id document.object_type_id document.department_id document.data_format_id document.symname_to_doc_id document.position content.binfile content.last_modification_timestamp content.notes content.marked_new content.id content.locked_time content.abstract content.body content.title content.keywords content.status content.creation_timestamp content.attributes content.locked_by_id content.style_id content.script_id content.language_id content.last_modified_by_id content.owned_by_id content.created_by_id content.css_id content.image_id content.document_id content.published content.last_publication_timestamp content.last_published_by_id content.marked_deleted content.locked_by_lastname content.locked_by_middlename content.locked_by_firstname content.last_modified_by_lastname content.last_modified_by_middlename content.last_modified_by_firstname content.owned_by_lastname content.owned_by_middlename content.owned_by_firstname content.created_by_lastname content.created_by_middlename content.created_by_firstname content.last_published_by_lastname content.last_published_by_middlename content.last_published_by_firstname content.data_format_name content.schema_id content.valid_from_timestamp content.valid_to_timestamp document.location document.document_status document.parent_id document.object_type_id document.department_id document.data_format_id document.symname_to_doc_id document.position objecttype.id objecttype.name objecttype.is_fs_container objecttype.is_xims_data objecttype.redir_to_self objecttype.publish_gopublic objecttype.parent_id objecttype.is_objectroot bookmark.id bookmark.content_id bookmark.owner_id bookmark.stdhome dataformat.mime_type dataformat.id dataformat.name dataformat.suffix language.id language.code language.fullname userpriv.id userpriv.grantor_id userpriv.grantee_id userpriv.role_master userpriv.default_role objectpriv.privilege_mask objectpriv.grantor_id objectpriv.grantee_id objectpriv.content_id objecttypepriv.grantor_id objecttypepriv.grantee_id objecttypepriv.object_type_id objecttypepriv.userselection mimetype.id mimetype.data_format_id mimetype.mime_type questionnaireresult.document_id questionnaireresult.tan questionnaireresult.question_id questionnaireresult.answer questionnaireresult.answer_timestamp questionnaireresult.id xims-1.0/conf/conf.d/01vlibrary-names.xml0000644000000000000000000000524510170325330016742 0ustar rootroot VLibAuthor VLibAuthorMap VLibKeyword VLibKeywordMap VLibSubject VLibSubjectMap VLibPublication VLibPublicationMap VLibMeta vlibauthor.id vlibauthor.lastname vlibauthor.middlename vlibauthor.firstname vlibauthor.object_type vlibauthormap.id vlibauthormap.document_id vlibauthormap.author_id vlibkeyword.id vlibkeyword.name vlibkeyword.description vlibkeywordmap.id vlibkeywordmap.document_id vlibkeywordmap.keyword_id vlibsubject.id vlibsubject.name vlibsubject.description vlibsubjectmap.id vlibsubjectmap.document_id vlibsubjectmap.subject_id vlibpublication.id vlibpublication.name vlibpublication.isbn vlibpublication.issn vlibpublication.volume vlibpublicationmap.id vlibpublicationmap.document_id vlibpublicationmap.publication_id vlibmeta.id vlibmeta.document_id vlibmeta.legalnotice vlibmeta.bibliosource vlibmeta.mediatype vlibmeta.subtitle xims-1.0/Makefile.PL0000755000000000000000000000072307675350321013017 0ustar rootroot#!/usr/bin/perl -w use strict; use Config; use File::Copy; my $old = 'Makefile'; my $new = 'Makefile.new'; open OLD, "<", $old or die "Unable to open $old: $!\n"; open NEW, ">", $new or die "Unable to open $new: $!\n"; my $flag; while () { if ($flag) { print NEW; next; } elsif (/^PERL\s*=\s*/) { print NEW "PERL = $Config{perlpath}\n"; } else { print NEW; } } close OLD; close NEW; move $new, $old; xims-1.0/README0000644000000000000000000000536010276663065011727 0ustar rootrootThis is XIMS, version 1.0. Overview -------- XIMS (eXtensible Information Management System) is a web-based content management system. It provides features such as a flexible recursive role and ACL system for securing content, the possibility to "skin" the management interface and content using XSL stylesheets, extensibility through user-defined object types. For more information visit http://xims.info/ XIMS operates in an Apache/CGI::XMLApplication/AxKit environment, and uses the PostgreSQL or Oracle RDBMS for its data repository. License ------- XIMS is copyrighted 2002-2005 by The XIMS Project. See the file "LICENSE" for information on usage and redistribution, and for a DISCLAIMER OF ALL WARRANTIES. Installation ------------ For installation, please follow the instructions in the file "INSTALL". Upgrading ------------ For upgrading from an older version of XIMS, please follow the instructions in the file "UPGRADING". Documentation ------------- At $ximsdir/documentation and http://xims.info/documentation/ you will find XIMS documentation for users, developers, and system administrators. Release Notes ------------- This is a new feature release. Since the last XIMS release, the list of changes has grown considerably. Therefore, and so as to include the new bug fixes, we strongly recommend to upgrade existing installations to this best ever XIMS release! New features include WebDAV support, integration with a new customized version of HTMLArea, support for other WYSIWYG-Editors like BXE, TinyMCE, and Xinha, new object types, better support for web portal management, user interface updates and user management updates. For a detailed list of changes, please review the "Changes" file. Changes ------- See the file "Changes" Known Issues ------------ Using PostgreSQL 7.3.x, siblings will not be sorted by position in the treeview event as they should be. PostgreSQL >= 7.4 fixes this behaviour. Bug Reporting ------------- Please report bugs via https://sourceforge.net/tracker/?group_id=42250&atid=432505 Credits ------- XIMS was originally developed by: Michael Krll Hansjrg Pehofer Kip Hampton Christian Glahn XIMS is currently developed and maintained by: Michael Krll Hansjrg Pehofer Jochen Frhwirth Contributors: Volker Hess Joachim Kargl Martina Kinzl Gregor Retti Britta Tautermann Georg Schnwiese Additionally, we would like to thank everyone who supplied valuable feedback! xims-1.0/UPGRADING0000644000000000000000000003145510276637151012313 0ustar rootroot0.9.1 to 1.0 ------------- * Unpack the contents of xims-1.0.tar.gz to your target installation directory. For example: [root@host local]# cd /usr/local [root@host local]# tar xzpvf xims-1.0.tar.gz * Update database (no existing content will be erased nor damaged) Run the SQL scripts in the "upgrade/0.9.1_1.0" directory. For example: PostgreSQL: [root@host 0.9.1_1.0]# psql -U xims xims -f upgrade-common.sql [root@host 0.9.1_1.0]# psql -U xims xims -f upgrade-pg.sql Oracle: [root@host 0.9.1_1.0]# sqlplus user@db @upgrade-common.sql [root@host 0.9.1_1.0]# sqlplus user@db @upgrade-oracle.sql * Move published content - Shutdown Apache or prevent XIMS logins - Move everything under your old "ximspubroot" directory besides "images", "stylesheets", "access.xsp", "500.xsp", and "404.xsp" to your new "ximspubroot" directory. * Replace the link to xims-0.9.1 with a link to xims-1.0 For example: [root@host local]# cd /usr/local && rm xims && ln -s xims-1.0 xims * Configure XIMS (ximsconfig.xml) using xims_setup.pl For example: [root@host local]# cd xims && sbin/xims_setup.pl -c * Fix title of published documents (may take some time) [root@host xims]# cd upgrade/0.9.1_1.0 && perl fixup_publisheddocumentstitle.pl * Fix portlet columns [root@host 0.9.1_1.0]# perl fixup_portletcolumns.pl * (Re)Start Apache 0.9 to 0.9.1 ------------- * Unpack the contents of xims-0.9.1.tar.gz to your target installation directory. For example: [root@host local]# cd /usr/local [root@host local]# tar xzpvf xims-0.9.1.tar.gz * Copy Config.pm For example: [root@host local]# cp xims-0.9/lib/XIMS/Config.pm xims-0.9.1/lib/XIMS/Config.pm * Update database (no existing content will be erased nor damaged) Run the SQL script in the "upgrade/0.9_0.9.1" directory. For example: PostgreSQL: [root@host 0.9_0.9.1]# psql -U xims xims -f upgrade-common.sql Oracle: [root@host 0.9_0.9.1]# sqlplus user@db @upgrade-common.sql * Move published content and activate xims-0.9.1 - Shutdown Apache or prevent XIMS logins - Move everything under your old "ximspubroot" directory besides "images", "stylesheets", "access.xsp", "500.xsp", and "404.xsp" to your new "ximspubroot" directory. - Replace the link to xims-0.9 with a link to xims-0.9.1 For example: [root@host local]# cd /usr/local [root@host local]# rm xims && ln -s xims-0.9.1 xims - (Re)Start Apache 0.8 to 0.9 ------------- * Unpack the contents of xims-0.9.tar.gz to your target installation directory. For example: [root@host local]# cd /usr/local [root@host local]# tar xzpvf xims-0.9.tar.gz * Copy Config.pm For example: [root@host local]# cp xims-0.8/lib/XIMS/Config.pm xims-0.9/lib/XIMS/Config.pm * Update database (no existing content will be erased nor damaged) Run the SQL scripts in the "upgrade/0.8_0.9" directory. For example: PostgreSQL: [root@host 0.8_0.9]# psql -U xims xims -f upgrade-pg.sql [root@host 0.8_0.9]# psql -U xims xims -f upgrade-common.sql Oracle: [root@host 0.8_0.9]# sqlplus user@db @upgrade-oracle.sql [root@host 0.8_0.9]# sqlplus user@db @upgrade-common.sql * Update object-type and data-format of .txt, .js, and .css objects [root@host 0.8_0.9]# perl fixup_ots.pl * Move published content and activate xims-0.9 - Shutdown Apache or prevent XIMS logins - Move everything under your old "ximspubroot" directory besides "images", "stylesheets", "access.xsp", "500.xsp", and "404.xsp" to your new "ximspubroot" directory. - Replace the link to xims-0.8 with a link to xims-0.9 For example: [root@host local]# cd /usr/local [root@host local]# rm xims && ln -s xims-0.9 xims - (Re)Start Apache 0.7 to 0.8 ------------- * Unpack the contents of xims-0.8.tar.gz to your target installation directory. For example: [root@host local]# cd /usr/local [root@host local]# tar xzpvf xims-0.8.tar.gz * Migrate Config.pm Either copy the values manually from your old Config.pm, or let "make config" do the trick. For example: [root@host local]# cd xims-0.8 [root@host xims-0.8]# XIMS_HOME='/usr/local/xims-0.8'; export XIMS_HOME # sh-like shell (sh, ksh, bash, zsh) [root@host xims-0.8]# setenv XIMS_HOME '/usr/local/xims-0.8' # csh-like shell (csh, tcsh). [root@host xims-0.8]# make config * Update database (no existing content will be erased nor damaged) Run the SQL scripts in the "upgrade/0.7_0.8" directory. For example: PostgreSQL: [root@host 0.7_0.8]# psql -U xims xims -f upgrade-pg.sql [root@host 0.7_0.8]# psql -U xims xims -f upgrade-common.sql Oracle: [root@host 0.7_0.8]# sqlplus user@db @upgrade-oracle.sql [root@host 0.7_0.8]# sqlplus user@db @upgrade-common.sql * Update module dependencies For example: [root@host local]# cd xims-0.8 [root@host xims-0.8]# XIMS_HOME='/usr/local/xims-0.8'; export XIMS_HOME # sh-like shell (sh, ksh, bash, zsh) [root@host xims-0.8]# setenv XIMS_HOME '/usr/local/xims-0.8' # csh-like shell (csh, tcsh). [root@host xims-0.8]# make cpan * Move published content and activate xims-0.8 - Shutdown Apache or prevent XIMS logins - Move everything under your old "ximspubroot" directory besides "images", "stylesheets", "access.xsp", "500.xsp", and "404.xsp" to your new "ximspubroot" directory. - Replace the link to xims-0.7 with a link to xims-0.8 For example: [root@host local]# cd /usr/local [root@host local]# rm xims && ln -s xims-0.8 xims - (Re)Start Apache 0.6 to 0.7 ------------- * Unpack the contents of xims-0.7.tar.gz to your target installation directory. For example: [root@host local]# cd /usr/local [root@host local]# tar xzpvf xims-0.7.tar.gz * Migrate Config.pm Either copy the values manually from your old Config.pm, or let "make config" do the trick. For example: [root@host local]# cd xims-0.7 [root@host xims-0.7]# XIMS_HOME='/usr/local/xims-0.7'; export XIMS_HOME # sh-like shell (sh, ksh, bash, zsh) [root@host xims-0.7]# setenv XIMS_HOME '/usr/local/xims-0.7' # csh-like shell (csh, tcsh). [root@host xims-0.7]# make config * Update module dependencies For example: [root@host local]# cd xims-0.7 [root@host xims-0.7]# XIMS_HOME='/usr/local/xims-0.7'; export XIMS_HOME # sh-like shell (sh, ksh, bash, zsh) [root@host xims-0.7]# setenv XIMS_HOME '/usr/local/xims-0.7' # csh-like shell (csh, tcsh). [root@host xims-0.7]# make cpan * Move published content and activate xims-0.7 - Shutdown Apache or prevent XIMS logins - Move everything under your old "ximspubroot" directory besides "images", "stylesheets", "access.xsp", "500.xsp", and "404.xsp" to your new "ximspubroot" directory. - Replace the link to xims-0.6 with a link to xims-0.7 For example: [root@host local]# cd /usr/local [root@host local]# rm xims && ln -s xims-0.7 xims - (Re)Start Apache 0.5 to 0.6 ------------- * Unpack the contents of xims-0.6.tar.gz to your target installation directory. For example: [root@host local]# cd /usr/local [root@host local]# tar xzpvf xims-0.6.tar.gz * Migrate Config.pm. Copy the values manually from your old Config.pm * Update database (no existing content will be erased nor damaged) Run the SQL scripts in the "upgrade/0.5_0.6" directory. For example: PostgreSQL: [root@host 0.5_0.6]# psql -U xims xims -f upgrade-pg.sql [root@host 0.5_0.6]# psql -U xims xims -f upgrade-pg_eval.sql Oracle: [root@host 0.5_0.6]# sqlplus user@db @upgrade-oracle.sql [root@host 0.5_0.6]# sqlplus user@db @upgrade-ora_eval.sql Add tablefunctions to the XIMS database if you are using PostgreSQL. For the following you have to have the tablefunctions in 'contrib/tablefunc' of PostgreSQL installed. The tablefunctions are only supported by PostgreSQL version 7.3 and greater! You can build and install them for your source build PostgreSQL version using 'make' and 'make install' in your 'contrib/tablefunc' directory. If you are using a packaged version of PostgreSQL, you will very likely find a postgresql-contrib package for your distribution which you can install using your favourite package manager. You can add the tablefunctions to your XIMS database using a command like the following: [root@host 0.5_0.6]# psql -U xims xims -f /usr/share/postgresql/contrib/tablefunc.sql Depending on your PostgreSQL installation 'tablefunc.sql' may be located at another path. * Move published content and activate xims-0.6 - Shutdown Apache or prevent XIMS logins - Move everything under your old "ximspubroot" directory besides "images", "stylesheets", "access.xsp", "500.xsp", and "404.xsp" to your new "ximspubroot" directory. - Replace the link to xims-0.5 with a link to xims-0.6 For example: [root@host local]# cd /usr/local [root@host local]# rm xims && ln -s xims-0.6 xims * Rename DocBookXML to sDocBookXML using dkb_to_sdbk.pl [root@host 0.5_0.6]# perl dkb_to_sdbk.pl * Update Portlet dataformat and add suffix to Portlets [root@host 0.5_0.6]# perl upgrade_portlets.pl * (Re)Start Apache 0.1.1 to 0.5 ------------- * Unpack the contents of xims-0.5.tar.gz to your target installation directory. For example: [root@host local]# cd /usr/local [root@host local]# tar xzpvf xims-0.5.tar.gz * Migrate Config.pm. Copy the values manually from your old Config.pm Two values from the default Config.pm in release 0.5 have changed from 0.1.1: 1) ResolveRelToSiteRoots() is set to '1' now If you adopt this change in your XIMS installation you have to republish all already published content. This can be done recursively with the publisher.pl tool using the '-a' option. Consult the "Building Sites with XIMS (Admin Guide)" about the effects of ResolveRelToSiteRoots(). Only change it care! 2) DBEncoding() is set to a zero-length string now which implies a DB encoding of 'UTF-8'. If your database is encoded differently change this value accordingly. Because of the superior flexibility however we recommend converting your database to UTF-8 sooner or later. The file convert_pg_latin1_to_pg_unicode.txt in the upgrade/0.1.1_0.5 directory provides guidance how this could be done with PostgreSQL. * Update database (no existing content will be erased nor damaged) Run the SQL scripts in the "upgrade/0.1.1_0.5" directory. For example: PostgreSQL: [root@host 0.1.1_0.5]# psql -U xims -f upgrade-common.sql [root@host 0.1.1_0.5]# psql -U xims -f upgrade-pg.sql Oracle: [root@host 0.1.1_0.5]# sqlplus user@db @upgrade-common.sql [root@host 0.1.1_0.5]# sqlplus user@db @upgrade-oracle.sql * Move published content and activate xims-0.5 - Shutdown Apache or prevent XIMS logins - Move everything under your old "ximspubroot" directory besides "images", "stylesheets", "access.xsp", "500.xsp", and "404.xsp" to your new "ximspubroot" directory. - Replace the link to xims-0.1.1 with a link to xims-0.5 For example: [root@host local]# cd /usr/local [root@host local]# rm xims && ln -s xims-0.5 xims - (Re)Start Apache 0.1b to 0.1.1 ------------- * Unpack the contents of xims-0.1.1.tar.gz to your target installation directory. For example: [root@host local]# cd /usr/local [root@host local]# tar xzpvf xims-0.1.1.tar.gz * Migrate Config.pm. Copy the values manually from your old Config.pm * Update database (no existing content will be erased nor damaged) Run the SQL scripts in the "upgrade/0.1b_0.1" directory. For example: PostgreSQL: [root@host 0.1b_0.1]# psql -U xims -f upgrade-common.sql [root@host 0.1b_0.1]# psql -U xims -f upgrade-pg.sql Oracle: [root@host 0.1b_0.1]# sqlplus user@db @upgrade-common.sql [root@host 0.1b_0.1]# sqlplus user@db @upgrade-oracle.sql * Move published content and activate xims-0.1.1 - Shutdown Apache or prevent XIMS logins - Move everything under your old "ximspubroot" directory besides "images", "stylesheets", "access.xsp", "500.xsp", and "404.xsp" to your new "ximspubroot" directory. - Replace the link to xims-0.1 with a link to xims-0.1.1 For example: [root@host local]# cd /usr/local [root@host local]# rm xims [root@host local]# ln -s xims-0.1.1 xims - (Re)Start Apache xims-1.0/documentation/0000755000000000000000000000000010276674143013713 5ustar rootrootxims-1.0/documentation/admins/0000755000000000000000000000000010276674137015171 5ustar rootrootxims-1.0/documentation/admins/building_sites/0000755000000000000000000000000010276674132020170 5ustar rootrootxims-1.0/documentation/admins/building_sites/images/0000755000000000000000000000000010276673766021451 5ustar rootrootxims-1.0/documentation/admins/building_sites/images/bender_role_membership.png0000644000000000000000000001070407775063010026635 0ustar rootrootPNG  IHDR;|]gAMA7tEXtSoftwareAdobe ImageReadyqe<PLTE@@@8S0S(/IDATxb`b`  L8 FfBQ0 F̈́` 0( h4Q0 F` 0L8 FmB2E}tՈPDmbid% LceE3% h&ƫ:G׎&@p4"4 G3h&`@ё4@fL8 hst4 G(`@Q0 h&`@6GG(`@p0OR8ӈ A h9:X)v)"t#). F3 ΃82h&f F1b7/!L8΅ p 02 Ӊo 2@pgBD2YPeX`9[&dS,] h9:xS", @(5V`4 {i-L?r)" +hstP7GQ;{H: Qu6E-L8s!r6› Q{83hF FA ;A9`LQ u G[h&`@6Ggctȉh4Q0 F` 0L8 FmQ0 F3( h9: F̈́` 0( h4Ncjd; >yΰ4~hstp)Pk*8z h4L> 3 mId`A=7݄aA>#8$0la=Ćl@p 1&DƋUX: 1aψ)?o@!eAb `aG; ̈́xfLl( h&'2!l/ʱ4A΄hP074@A'D?H`s]BCgXP;( c80xD@pgBbG͠i  Cm@5 H4Qxcr ;J>|n |Y *fF+ j_bP88r@fQ0: 8 FxbѨ#h& @3@Q0 h&`@6GG(`@p4`@3!^RfXP#o:etZjX@(:EVYJA`̈́` 0 Psiw ҲCԥ,0Yhya" \ vtJDdeHmj(CO1L Y*XvblEPek;Et! 6E(Kq gYplk! 1OBLYߋlLȂ4L8  Dˉ!,,XAo2bSQ $x6GG0'-OȎrf{Ğ G`7Gю׃6Ɂ7m6+9P@@j' 5G1cAja*: FDQRG(@3!MQ0@Ge F2Q0 F3( ht?( h4Q0 F` 0L8 FmQ0 F3( h9: F̈́` 0( h4Q0 F` 0L8 FmQ0 F3( h9: F̈́` 0( h4Q0 F` 0L8 FmQ0 F3( h9: F̈́` 0( h4Q0 F` 0L8 FmQ0 F3( h9: F̈́` 0( h4Q0 F` 0L8 FmQ0 F3( h9: F̈́` 0( h4Q0 F` 0L8 FmQ0 F3(  F( YG(h4Q0 pdB 8IM2b-SB`c,ЅAJ <[)#@YH@,ć4 Uh,eZ`Du$)L[p4LȈK&@m 0W > HCnlu,3#0O'lr1" LśpRF( $͆kb1r-BÖ-]tݟ@gBT Y0 !'u ?,[ " x"0HKbEk[NǑ2!#4/P(D^&,d K)7uCVĂ;la#`QY.dXE5*c StDvs"XPSE%6RBCQ m YXp\LHF|\-.DyV F6dhy3,x nc eCj`[aJd&$Yc 1c3!TC(iq"3!Df=j( ΎYQV\#9 P (N*$eB*>!@ z2-X&‚֥!20Âܾ@xKʄHJIl"Z-E ) p ̂a96YE(@.[4(`\ 왐 `SԡRR WJS ˄4Z8#& `&d` L8 F̈́` 0L8 F̈́` 0 왐 %QT1R,V;[i`Dg1␦ T>ÌFQ@k#!,;ʄ(YkMȆf#Lf#Ȅ-_ȄqɈZӲ&d/LȂ, Qe J4gL6@߂9JD&ilDfBF5!h&n&dlɄ&jv& zG~M@DgBSlԚ`D7CL]%#L0QToH&d(Zbd YpQ3!@ LSgT8XۏOφ9Ck0bel-$i68&7:ʈd7GG8:hI1:†:>Clmh4XHq@ L8G4b4 G(`@L1 F(@@p̄`4 G(`@Q0 h&`@6GG(`@p4`@fQ0 hst4 G(`@Q0 h&`@6GG(`@p4`@fQ0 hst4 G(`@Q0 h&`@6GG(`@p4`@fQ0 hst4 G(`@Q0 IENDB`xims-1.0/documentation/admins/building_sites/images/gdpi_bookmarks.png0000644000000000000000000000577207775063010025146 0ustar rootrootPNG  IHDR3yPgAMA7tEXtSoftwareAdobe ImageReadyqe<rPLTE8S@@@333UUUfffDDD"""̈뻻wwwCCCYYYppp___^^^---Չ~~~...$ IDATxb`bT@ ifh4͌R@Q@*43 H4fF `iUEEK*,\0> TF<&D( 4c5UT0IK3P ifVVGq43@ a%)*8Er0I|5r4 @4I[5*!pK .A%Ȅ@f*B9 ^nn`:eQa(hv8A>lJ3XZgF.W[2`,.4)`5 *.X9$A,;vdE!Q@m@4 iR 3,hu 46h7opAʁqbA&NUUvNBև @i[I ڞ@.60 'RV RK* *Lx@q(Q@m@(iŸ f fNth\hu$ˏBaf1>DNaF@GwPK 2UBGrN$kqcP(pA =ڍU`iS 'LJ[@tΉ &6o6.)ĊaA)XP L.aK3B /fAQ@m@4É4>fXgp[pP0\~P;WF B6wjsAƁY ?804j, @mVbM`Av\iRau(6 ,M\-XfBiehc*F ,aSBcE锡PV3 4Շ 0浹qk㮛رMl"t.<FG c>q`:wbM"О!P \,6&&P3Gh 8y>l4No h4͌R@Q@*43 H4fF F( hM3T@if h4͌R@Q@*43 H4fF F( hM3T@if h4͌R@Q@*43 H4fF F( hM3T@if h4͌R@Q@* pg#p<續3@!gQfHM3 XEh@@iqn4ҩ1H< +΢ >|@/;hM6IU@uZTy@p9@!^hĎ|:2 @ r$I6CJR3.74Ít/RkU]l*q@(i|7 X/4WcO !!=>Čo[ʉߢfZ ,15@9 @/f'/tCM3-"G}(BI3CQ.E ,IX9@ChCːc9A,lCzCQ@*43 H4fF F( hM3T@if h4͌R@Q@*43 H4fF F( hM3T@if h4͌R@Q@*43 H4fF F( hM3T@if h4͌R@Q@*43 H4fF FHgâI@ȨɈ`U@iFVo4~wQ"B4'!/!̧*#!,==rQM6#>ͨ+( I+c ILGJ0*E9E`۩b9I* L +KKKp@EQM6QQA{$K^ECU3j$ R2|X@ldQU3`0ʒ& .jJfT$9 8j' `1 @>11q S$)UP'`1D/nTTHH3*i$`ya))I0H3fdIF[Au4 |9Jn#GKo[BRRJXRA@Y@@O\@pdBU ʃ B!H<<JPL3 "i9 PfT`W^JRXJ^D@*. HFM>MHFb3 FjIEZ ߄\7KKJHIk'B j=`m4C&FbhRFRZZI@0@5wR~*Z4dh O3*"C5J|0Sh I3 hm V MDgF DtQ71wiB2$j4  B0M(< *gh]7 H4fF F( hM3T@if h4͌R@Q@*43 H4fF F( vIENDB`xims-1.0/documentation/admins/building_sites/images/gdpi_published.png0000644000000000000000000004140507775063010025126 0ustar rootrootPNG  IHDR^s+gAMA7tEXtSoftwareAdobe ImageReadyqe<PLTE5]n怀jjqqGsnÔe:dUkۛuvvSSS˪Sl3<_Ej¶G{ɱ鬛hBr:::Blڗe33SKVkXXuGdU}/YDf~[xYqg}EEEFJ^}BazשOyoFp٭ƕhyV!bOlfӾffﺺ9zVïȴ뻻33"z"ffDDidUUŻֻɇ\\\󈷈pxxؕȕŒq%}}?Ҥkkk7g݃sC@ݽ}ŽxƾùOOДWͮo̙/1(?IDATxb`Qh 1 F.@c c̊ttP|{#-%\|PA٠LJ+A}uG[K=U7Cw-Y3\54RUUO55TK}uTR]bh c4{ g,ph){=h){i`'bo2z$'{prhC>{ؾӺ"O!eNN(= yc4{f=ACwU>NJ c'{0g>S' < fi /كLps#HNcgbӧ+=`7@J#c4{ @ GW5كgRg c4{ @ p<{ jX=){@hC7{=q쁭q=@h){iZ@sxc4{ @ U>@|bth ns8{@Wc4{fx {@D.h%{~1=pd5=F@iG( 4tQ ß?)F(X@fQ0 p`4=F( h4{QfW_Z;/e3` GA_"I,*B&2I1ŮӉ 刿cRb5l鏌"S_ :{$@\*a E-Dhۃ$f_M;VA+%\5( 5qKl#{2%' eؿs񷜰7"EUӹ#5 *R iߠ`KP3Bi?Bi\)D쁬T8(+4x4{zA _JY4mlex<# V 5,i 6;lfwiVڢ&qy+]+ﷅL;Kv@ p' ~Ȍ&T"O!7" Y|HV:o"|953 X/Ȫc ~3y[i&zX~{iSv @>i%xV nV{G9Q -p @!(L *PF 0`n"d&>j GH:c~=aеL*en `ᦝV7=J`Fn q_$0Y@ւ Yƿp33EA' = 2mMr+}]QVQҜq>|/X.ARcE5 [E_(VbH34~D@ j*׃nN;\/gxJ[;JضfmHp4 x !@z!aM@"̪dt= 7n/n3!j$QH1 F JPH/ۺ;*x^77v=TeV"zJzZXEG珂 !.=^2LIooz(#8{$$Ȭfr&=[NF(`DkꁙpEnPM ƭvfQ0@AӐټ"=Ɍ ʣ-b[qUuhP9{TfWkyꘃ*1 F  ɓ'׌2 F6@ lll.`, 23[\Q0 nA`4=F(=h4{ 'ē%DTQ&C \SD9S.# 4=8K;I@=GHH:D@9<{2B@c؀pCtfC&~ve1F@afH$(XwN duD 3K2PI,f ZZUH pec;1G)(X#w.`) 8`D R=jIAC X t4(8 Aġj4wRS!f[Ryv¬s(Nh4eXsh9t R;ve[jb)J|H0@k96iR d=(#9=W B LJf 8> J/ e$.0ގuRAb*Ww V!eNBN p֋0Pqg8Sy.b?A e\cAh#d<U <FbnI(9_"hm=W!n48R/BTF"8FɁ@? 5=P@+NPS•=`OL9$ ى!7U'au5%0~$@=FS`{$=Ґ6F߃ MV:Jj$Ur)G@e5UX\@5Dg\F؏=h1Gpe H ȕ4*I%oE#0i U{2~$#A в Ȉt\f'xlg'Fz͕G c^eKaS*8BN1G =FɁ@?hjtjYs4JQG` PPg͹@ݒcq=h4{Q3{Z G5e$Wy6 =-{rs[ 2b"ѣc/{hg1 F@CE2y4{=@AN،fe"c/{hg l+$24y*#͛9LyͰ 3 bRVFX5*ôfQ@@X8 996yp bd*d4 1)ڊ=_MCka zG(s "2ؼy3CT"1{ tfQ0  =~j\Y{Rʣ(@d6k\*=F@f“=~+# a\Aŵ=P#W|6r6:r5 =htQ(8@fQ0 pfYw4{=={P o.MhefZP Q0ij@ꃿ`4 F4=F( hCmk2 4 gP Q0T@>{AFDjRE!` I@4M1 . e,1=FDвE`4Fv8T<0=FU?=FD쁚G( =(c  eT-{`Ik0h B@9hV=" Qc $ ZdpFdx(z`p]xG="1 % e+{U(:%.3=FAJ/ 5=FE15Pc @4ȽoX-|Ѣ2 ``@jZj`4{4=F( h4{Qh' &Q0` вdž] P||!cW| @ ں&[#Lb!ń wSD9S.#xS,r(64~=6ˁh`o17R?{l8 #5{u Ig 6?P=pArE 9`{pi в,7 _Q;{\<l'9{@r4QEu„T_<~%e)FAZr(v.hq9R@eaH[ r֖0#)(/ ڋpۄ*Ѫ¯V0h! Ȯ>_7 pn N51t1 բ@O{5dI0W*:"Y]bzZhX.M|8u"gaR#гpJt jP6,7@B{Q5f Mh? ։0c#Dv$mX;H@#~#)A8{MtKV Ҁ d 5m)w={ 1.QqPh!HȱAzAp^A_mzQpqfG&<*hFld6íd͡ =.t[lR'/7GXUsae1=S=s)n⯌:f f uXBr` j:RVAP@do"kFAֈ"T2nF/܌ U R-;tE?J=Lc4EmI4D>={ 1e4!xȊGr 0Am@h`m(U$@,B֌Q4h;REM=L7uDm0l.S8]+Q( q"J0|kP?p!x w'7{`I + -K410?6!I{qe]"1|!:{2~!h!5Fv >+\ck#XjCWg]-nd$%mـ(GjC]Ԫ=pb?G^ 0~p@LnxB[AP6oDI+(f4VFM c^eL cxQ/(Q{`Tg7@n yHA٪C17tѳX~FMkP Sx_{ lp R ЀJ!P{{=i4!~&X\3{셵d$yYhɁ#J?2nlwDhDy,B/d3;N&' J;ip;d.2 M={ [ 4[}P}* P{`!RDd#pl?FB'e.z0@ V7ar)!f: b2+|r_ @C/{ǏM (#}@e@\).ˍB4W` h'1 FN@c F(8@fQ0 p`4=F( h4{Qh'1 FN@c F(8@fQ0 p`4=F( h4{Qh'1 FN@hvY2a(EaXIjz2mIUB b=>_o~M$¬=C8*DR-`KrKؤ85<0gT@DgD=U?:x4{ح@G3;d$ ui怩ѮS3FZ~PdVB$\?ia"뮊,jDL+nh}0(3н/j!dpnK$ȯ <6#TzQ"0'H$cZ;&1-ڱuQ2A4c5lXblҥ 8㤃+)XO߼.[Fq9 h  +4zPܰ&X&+qzְ]Gg6/ @YJÑ`lvoəsﱋ +%g?UFWC).#A'|\ea9TnyX7(Zؐ6E`0)eh%7G'9&Xr-)grðM 0x=*P|Kbmk-o@:eo'^θ=Q) =Vrc @ &t7&VE醧,Fvv4#kZr+T =V`W/ܛ+} @v<"&{Ⱦ},CI6q_c/Y+=43q+=%޿D40}txWX(;@M:ABF_S9{& >YנJ^ U\))ձd-f+_XLp-굀Y2YgW7[+q 5⸃q~ YT^ 4G mh1=Jh u&j'ϳzVoz%)^x.M'ߙN` ;Y\;tpg[T#'. g @06u:XP7M ¶ \ $ҳJY^g>;hV6N5ufbTCz1(G3aQ#WdUb,``9hJ$فeJWo5s\Mr D,)g/ē#EJwpbg[Ps8 R~I`32mZ.E-Ua-9pCmĈU\?8w=SR{`؁}K-W]6hÓ=p6 7~JV !m#%}x /A}\RxYIgwx=Ps9 ɼJ8@Lf_s&WDDGB6R5r;D5`ώF`B^0ɕ,;4P*VFbvk@z>G E%d4;;6=fB1=(4(߿:ap#E-ht(8@fQ0 p`4=F( h4{Qh'1 FN@c F(8@fQ0 p`4=F( h4{Qh'1 FN@c в_ ض mCGbp6g86m8)PMB/HH<)K 0k88{%|%6j@VDt@Ŀc4{ {;A(zC; ݜR'!@=ƓYenbؕ,IpP`a9X=c ^9=ĩ= `ķ5k|/;Ps70Eդ:@Ckĩs MYŖ&$ rv wl(Ɍ ws c@?'"I*[HW• Jï椔Cpg;pSD=<<ߙڃX=P{7<@ݸ9K[S{6#ş=uPR_&BCyP˾@fa$IpZ' q΢d;IDF&lL2mTvQjU O2fc]-mQ0. T;xUt+m;w\#^MS)9={'<qNqZk?Xw&_ܧ7c9AqCKs,w`{G59df cdv_eh+̶@U|e !=dz?\}y ?/iBM_µ)=cWB=K\@d7BT㊸3ָr.\g{<Ñcݱ2J<@"8rҪz91~Mig>[=A>C1G zaZP`7P2ٸu#W#.N]TB4іhسhC${ΩFrh'1 FN@c F(8@fQ0 p`4=F( h4{Qh'1 FN@ lc fQ0 pm\Qh'1 FN@c F(8@fQ0 p`4=F( htZp F(8@fQ0 p`4=F( h4{Qh'1 FN@c F(8@fQ0 p`4=F( h4{Qh'1 FN@c F(8@fQ0 p`4=F( h4{Qh'1 FN@c F(8@fQ0 p=cw F(8@fQ0 p`4=F( ={I@U`3(!G/Ga | `B"kk"C( PG>!4I/B 企,47FJ XZjZZhY S=+FaO !Cɢg@0{ ƄY(S@_(rJ7Uwu7No(w͜*3ZBF=x>aU,QFGk\#=5ik9@j;s <#rZ@adDUZVg$!iATLOL@dhF=dx"wX 5 Zx ^I@ r,{ L { =[x8)Mw@P""{`-IF)`IǨ=FZ;s e Gs@nFZ f&& G{`fDI=gѮ@Np W&ZXky o\)t dV9K@f1 AU l#GGhFCG>9u0l4{! K>i?ϔ< &ӄ Q0@alEQCV}ECf-#GCW>k7=FZ/ (v`G`Bo\ŅhKFPjdYM}Q0d@"gjah4{QfQ0 p`4=F( h4{Qh'1 FN@c F(8@fQ0 p`4=F( h4{Qh'1 FN@c F(8@O2cIENDB`xims-1.0/documentation/admins/building_sites/building_sites_admin_guide.html0000644000000000000000000004766410276674132026430 0ustar rootroot Building Sites with XIMS (Admin Guide)

Building Sites with XIMS (Admin Guide)

Michael Kröll

University of Innsbruck

Copyright © 2003-2005

Revision History
Revision $Revision $$Date $

Import/Create Site Directory

For demonstration purposes, we will build an example site for the Grey Dahut Preservation Initiative (GDPI). Sample content for that site is provided in the examples directory of the XIMS distribution in simple.examplesite.tld.

To build your site, you have two options to start with the SiteRoot content: First, you could create the content using the XIMS web user interface, second you can build the core content offline on disk and import it later using the fs_importer.pl tool. For our GDPI site, we will take the shortcut of importing the already existing files in the examples/simple.examplesite.tld directory. After cd'ing to the examples directory of your XIMS distribution, issue the following command:

Note: the script assumes that the password of the admin user is still the default password which is set after the XIMS installation. If you have changed that, you have to adapt the script.

[user@host examples]$ sh import_publish-simple.examplesite.tld.sh

This script will do the following:

  1. Import the simple.examplesite.tld directory under /root using fs_importer.pl

  2. Convert the imported folder to a SiteRoot and set its SiteRoot URL to http://simple.examplesite.tld using folder_to_objectroot.pl

  3. Add DepartmentLinks for index.html,about.html,team.html, and contact.html using $xims_home/xims_add_departmentlinks.pl

If everything went right, you should see Successfully added Departmentlinks to '/simple.examplesite.tld' in your terminal and the imported site should be available at http://yourximshost.domain/goxims/content/simple.examplesite.tld

Create Role and User

Now, as we have got some content to work on, we need the users to get access to it. We will start out with creating a role for the Grey Dahut Preservation Initiative (GDPI) called GDPI.

Create role and assign it to parent role

Log in to XIMS as admin user and click on "Manage users and roles" at the "Administrative Options" section of your start page. At the "Create User" screen enter GDPI" as name of the user, "Grey Dahut Preserv. Initiative" as full name and set the "Account is an Abstract Role"-option to "yes". After the role has been created, click on "Grant Role" and grant it the role "everyone".

Assign default bookmark to role

After going back to the User/Role Management screen, click on "Bookmarks" for the newly created GDPI role. The path to the default bookmark is /simple.examplesite.tld in this case. Before clicking on create, do not forget to set the new bookmark as default bookmark.

Figure 1. Bookmarks for role 'GDPI'

The default bookmark will be inherited to all users of the GDPI role.

Create user and assign role

Back in the User/Role Management screen, we will create a user called bender for the president of the GDPI and grant it the GDPI role.

Figure 2. Role membership for user 'bender'

Set user metadata

You can move on to section Publish Site if you did not import your content using fs_importer.pl but created it using the web interface.

Because we have imported the contens of simple.examplesite.tld as admin, all the user medata of the objects points to the wrong person, as long as the admin is not the original author of course. In the case of the GDPI homepage president Bender himself is the author of the content. So, we want to update the imported XIMS objects accordingly, using the xims_set_user_metada.pl tool in the $xims_home/sbin subdirectory. After cd'ing to it, issue the following command:

[user@host sbin]# ./xims_set_user_metadata.pl -u admin -r -o bender -c bender -l bender /simple.examplesite.tld

This will set the owner, creator and last modifier of all 16 objects at /simple.examplesite.tld to the user bender. Note that xims_set_user_metadata.pl requires XIMS admin privileges to run.

Assign Privileges

Now, as bender is the owner of the content, we may want to give him privileges to actually manage it. We could do that through the web user interface, however doing it recursively using the xims_user_privileges.pl tool in the $xims_home/bin directory is less painful for your mouse finger:

[user@host bin]$ ./xims_user_privileges.pl -u admin -r -l MODIFY,PUBLISH -g bender /simple.examplesite.tld

Note: MODIFY is a shortcut for the VIEW, WRITE, DELETE, ATTRIBUTES, TRANSLATE, CREATE, MOVE, LINK, ATTRIBUTES_ALL, DELETE_ALL, GRANT, GRANT_ALL, and OWNER privileges.

After granting to the user bender, we want to grant VIEW privileges to the GDPI role, to let other possible future grantees of GDPI see the content.

[user@host bin]$ ./xims_user_privileges.pl -u admin -r -g GDPI /simple.examplesite.tld 

Later, Bender can manually grant other privileges besides VIEW to members of GDPI.

Publish Site

After you have created your initial content base, you may want to see how it will look like after it has been published. Per default, the XIMS config option ResolveRelToSiteRoots is set to '1'. As a consequence, all published XIMS internal references are created relative to the SiteRoot instead of being published relative to '/root'. For example, the link to the ObjectRoot settings file ou.xml created during export in the published version of index.html, like in every Document, will be set to '/ou.xml'. If ResolveRelToSiteRoots would be set to '0', the link to ou.xml would point to '/simple.examplesite.tld/ou.xml'. As ResolveRelToSiteRoots is set to '1' per default, you are expected to set up Apache virtual hosts for every site and direct the SiteRoot URLs to the according addresses.

Prepare publishing

During the development of your site's content, you surely want to already test and develop the navigation- and styling- elements of the site. To avoid adapting paths to stylesheets in the Apache AxKit server configuration and to avoid adapting paths inside your stylesheets, which would have to be changed from /ximspubroot/simple.examplesite.tld../stylesheets/default.css to http://simple.examplesite.tld../stylesheets/default.css for example, you have the option to locally use the future live SiteRoot URL or a temporary staging URL.

Scenario 1: simple.examplesite.tld is already running on a different server or is not running anywhere yet.

In that case you can locally set up a DNS entry for simple.examplesite.tld to get access to it. On Unix flavor systems you have to adapt the /etc/hosts file as superuser for that, on Win32 boxes, the file can be found at %SystemRoot%\%Windir%\system32\drivers\etc\hosts (e.g.: C:\WINDOWS\system32\drivers\etc\hosts). Add an entry in the form of "ip-address hostname", "138.232.10.18 simple.examplesite.tld" for example. After your local workstation knows where to look for simple.examplesite.tld, you have to tell your Apache server what to do if a browser requests simple.examplesite.tld. You have to add the configuration for the virtual server similar as described in Managing Multiple Sites with XIMS:

<VirtualHost *>
    ServerName simple.examplesite.tld
    DocumentRoot /www/ximspubroot/simple.examplesite.tld
    Include conf/simple.examplesite.tld.axkit-conf
</VirtualHost>

Note: You can use the sample Apache config provided in the examples directory of your XIMS installation for that. Just add the line "Include /usr/local/xims/examples/simple.examplesite.tld-httpd.conf" in your httpd.conf.

Scenario 2: simple.examplesite.tld is already running and it runs on the same server

In that case, you may set up a temporary staging address for your site. You can do that locally in your hosts file as described above, or register the staging URL at a DNS server. You still have to configure the virtual host in your Apache server configuration. For example:

<VirtualHost *>
    ServerName staging.examplesite.tld
    DocumentRoot /www/ximspubroot/simple.examplesite.tld
    Include conf/simple.examplesite.tld.axkit-conf
</VirtualHost>

To point the users to the correct URL of the staging server, you have to change the SiteRoot URL accordingly. The SiteRool URL http://simple.examplesite.tld, set by import_publish-simple.examplesite.tld.sh, must be changed to http://staging.examplesite.tld in our example.

Update Apache Axkit configuration

As you mave have noticed, a file conf/simple.examplesite.tld.axkit-conf is referenced in the above Apache config examples. This file configures AxKit to use the stylesheet /stylesheets/default.xsl for all *.html files. The config could look like the following:

Note: If you included /usr/local/xims/examples/simple.examplesite.tld-httpd.conf as described in the note above, AxKit will already use /usr/local/xims/examples/simple.examplesite.tld-axkit.conf and you do not need to create an extra conf/simple.examplesite.tld.axkit-conf.

<Files *.html>
    SetHandler axkit
    AxAddStyleMap text/xsl Apache::AxKit::Language::LibXSLT
    AxErrorStylesheet text/xsl /stylesheets/error.xsl
    AxAddPlugin Apache::AxKit::Plugin::Passthru
    AxAddPlugin Apache::AxKit::Plugin::AddXSLParams::Request
    PerlSetVar AxAddXSLParamGroups "Request-Common HTTPHeaders VerboseURI"
    AxAddProcessor text/xsl /stylesheets/default.xsl
</Files>

Publish Objects

Now, as URLs, Apache, and AxKit are configured, you can start to publish your content objects. You can do that either by using the web interface or by publishing all at once using the xims_publisher.pl tool in the $xims_home/bin directory:

Warning: If xims_publisher.pl does not have the setuid flag set, you can only use xims_publisher.pl as superuser or as an user with write access to the ximspubroot directory respectively!

[user@host bin]$ ./xims_publisher.pl -u admin -r /simple.examplesite.tld

To have the expected results regarding the use of the DepartmentLinks portlet, we have to republish the SiteRoot. This will add the link to the - by now published - portlet in ou.xml:

[user@host bin]$ ./xims_publisher.pl -u admin /simple.examplesite.tld

If you followed the example config so far and everything has worked, you will see the following index page:

Figure 3. The published GDPI homepage

Go Live

From the administrative point of view, there is little to do to go live now. With the above mentioned scenario 1, the only thing to do is to change the DNS entry for the old simple.examplesite.tld to point to the new XIMS powered host. If you have a set up similar to the one described in scenario 2, you have to change two things to go live: First, adapt the name of the virtual host in the Apache config to the name of the final production server, simple.examplesite.tld in our example. And second, update the SiteRoot URL inside XIMS accordingly. In our example, that would mean changing http://staging.examplesite.tld back to http://simple.examplesite.tld again by editing /simple.examplesite.tld.

xims-1.0/documentation/admins/images/0000755000000000000000000000000010276673766016445 5ustar rootrootxims-1.0/documentation/admins/images/publishing_details.dia0000644000000000000000000000330107775063010022753 0ustar rootroot [ko6_!6-QKq^Zd[Zh, ߾KI~đQVVuh]KJ/_ e p}NO鸭WW/}F.wg4ḧ́.beBQR$Hm]mADRA5"㿧1OC8ck$MVe޹PhFG)cQD{]gZ Iֵ~ۈo@^c#lW6 53$t24:f{PQ6V{x e7Q10I}|5hڄYHH|_T@Uo}Oȭl֥ĵYUQBA~L9]w yY+4\cgk .K R ? s42*͍J1a~09lEUnbm:z-7\fV5F@|߮|'Ku;3YlMf6{ٳ6UmCfSC.A)@6"FV#6M:ZճMvt//T*;߶alg=[Y$dJKT.q!e9=,F\=8<7-[NW:pHC? ˖%p'ڌ~@X:f)Z>@9@uv7Ye싻|`\6f(nw+g* m4F71 dz>|(iΐ϶O@j(7bN^ӂl.-Xb,-dZ,+m҄&ڄP$ Gm}6YjbFpmD"yQɺV /\tI2}22"JJN,).KJʢQ,fý,މ@s)]9eJ-KHZ/M?$q.d*C NKBٺ*OTd~J])o *\9Yd=" ,NW@(mt$xoiHL e+姹7V-6,,}q2{_z"!AƸDWĤrMUlUE}Q6x= B%&ͅp$̫:&{Ӈemdݚ^3rqGlµFHHгE  +]o:$x x3XJmS3pՆ&m6{^UAY<ſӇxPΓ6/ٙGt+򙇤Ū-t>gxl.W7 Q6HB\ʼ8Q{GHHС?XyfP~oqsM\O`$$`Ax@bWo3_O+9fl7t7scҳo>n2$$5~&ca\wh# 4LJ6{tlt/$$ WU;9Cr2? p+\SEGLB('$e2"*J<_ (@$!BM,w:TXs]$$`CCl9,x:$ #<Ĭ=;.P~y~Sw䆳7 8Q6HBI*rDUJHH_Q69 " "SV|C x{=20 c WH$$ 0v%Ӿ+c0߿3|z$$i!lD_{[wֆZ (Юp{q57k!;5Wem*$$(д~qD)q)ϳ +edos{IH@֮ȞNM\ ]&v5FeZ?yCJ^7fuH`ZN@2c] (@d I^ltMe(6F" " " " " " " " " " " " ॆaHp ۤt 7" ; b%!D@$!1NBn& " M -" ths pwX O swtW4EA@$!D@$!D@$!D@$!D@$!D@wـ?=G>HH@0 BplT628||Pfs*+Q6; I{IH@ž1!)Ĕ8u^lZ) ?IH)Hgpp 8([u .% o:u#M_Y,9T6@l@ޚSH3Iެ_Y}/y֛1IH됀}/v׽fƼ$$xHX+85DDHKm\GHHп}L毧߮Y eY皧pN-8j1Z{bdr,84+ٜ+@7A} Q6\nbelĭswmV8K~ÃMObK3qF" WҪ+:$Yo5.ZZIH3gq2F" " "us?@;!D 4ϙMчIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIH@aK_FhC @b3v%$:~nB}CILsd ?"xIHџkr9:͕xa,{7vmw\Zs%f;t*}WsZ^J쉖L'-Nߣ- !0?-NJ5T͖c^naϛ==i/X-N:d xp~<_(&m f,ߋ<`Po-dcAS9Tz]&l^6{[^JjCF37hMŏPQ6Ǿ}7k]g>o&mrCIW֤Ikr6ًߚ=K)}%u<#ΫF%=M7)my55K#)lԑ7ޮeyhQ6)F" " " " " " " " " " " " " " " " " " m^jt(." MHp# " P!6^@$!DCl$$f " t͠ A6,&!M@@|Ϧ?G!>$HB$$HB$$HB$$HB$$HB$$%~c)?*V!0]R j'!uv,敜WY lmc,>$ZyXe6춙VKmťgY,u$$~IXk-:t+x W%x8clҦ]hu$$([u-a%֮7rt)rd}'W֖b HscbN*s %k)Elzb o$xb` Y!SJǗyKZ\z)kKOYIxlcY9=lE6 ylC  Y1W[&1)$9׮IМf'L[c4,Bb_e5b]z #gSg~匲B lpH8ri*ޫsKVv7"!A! " " r/G!D 4MчIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIHIH(bߤiB;3iX߬Ҍ͒Ӱ*?i HH7 okIhq⋿‰ef\,P[9?,n_v.ڛiD&_G@e!^L;M!!^OJ;#L~jc鋟Ni暆̷ mՆWds|싍߻R ߵu\DyZ$$aiJbkm.k^ su6tW͋+Y:=sӶmvH DfZ+TQ6֎tp9ؤkUK'#5'36nXn6)f 'xٻ^ fYw^R>}H1-8n!v0Ǚ.2iU0\/kڽFa_JFVɼ$HB0 ?ЇlGoIHGB MGB GB Al! h\m5! \*~! \gs$FpB I]$$ O[HH\OBU7ׄ$bp?I+$WTG! 8z< I$$QSH#!BBp x3HH@5ţ! n@ppQ-0r҇f8UmnQਦ:*~`蟾xPo/MPe5.Ip6 Ԑ$S#p!I<.#!'#Jp*!I<.&!;#zp$$\gWHIH2CxKB#vpDHHH=Cx4BBnBxCB4I}߷ţ}|0ȼiU\ G} {u*p>\96%<MBZU0#TNڳwkpw#1>6I9׃6Us0_ӜNgYkj^}da5ֶ6sj#ޥ$jmw?L?'k=.Q)9{ }Ht<{\RY.< ZbviyMG^69BLԒO#,"ѹ;H*˪ʔes;<]$GIuU\ZR;NY"g)njeVͩmsvm M$!]}c^o1/qܪ|4XlXVCftcBUnV8)jXer=!2-CA#*S8^ZGɵIuܬ-a9U uc!W82x1 -8+#kj}ն40*hHWSmqp7,;^FS " !rڔfk}Jkl8uH?-lhͼ9t?O|ToL4Z-!UH#cm2uoJT8MVKOɍj2ej>t~d=1I9!`S 6<EUY[uHWY%צ&&-_sbYڐjk5ioS37{컪ƒ-Z݁Gs@$!@.7d됞eDk{z;xun6u-ku $$#gb?{O }[>%eJbWeGE+Wwt}>xkwZ 9W5iXGmȰ. sC}6|U%t&ً???x5l2Uy_ľZP[5l2UW-{sC\.)syIf>lO__kLby# XlRfjBw_p\ׅN0as7;ڤa]-s^q$m]q1yUӛ͓浶m5o0~J7rl>II-|kt3f ^,nRV[m5$>/Wf_=M2PlqA?aGnxs}a]›9|RfSǚ*XbY2e9!W¾}.^vOǬY~}".4 ͪ~>w9m%$jk쫉~޳ҟqw9~t:q#%qH*~N:V=;SySǷ_B>}}P{x7R+f߲'FWG6=X۳{fYTWn#$IDATw/ŕ>KںtS] 7%R⼵ jN9e^CN6L8#$y5oB9̖l.US{ &UWּwE毬m×I9{~k\KWw5>-G[$.cq{Stqځ7]CNlq?[ػtӟ򋟍9/6J3{k̏lyb1x-PPf>)g_I~k^ۣ;f̩l8lO?7{LlɲeŖ@#;M֗_vZMHޡ[W}u9Uޝ=r}Ogȑ(qMj!ƾڲz[̻&!9̻ hIHIHIHIHIHIHIH Ð.~i $n߻sڼ* t x-TiCN%6 6 CQqޮ=oF+ȻԢ :T<47oj o $xn!@\*W҇{_xN3U /Paj? w+yxtCt%yVұdÃCItTтQEY ҇H\R\QXܶx}HHyɛ#zڧ :QֱqMx .vT {TKm@S$$xJ5IEY@Gי耄6ƣ_ꭁ#HHgq6< $t#CIH'$$x6'`3HHgq<23HHxBRaЁw٠~)t@BN|#9a bF~?z zcz68GB#n+ %'ʆIHйiN8 HH \T*3ݦ7]D]l%x- ^j>rA#!0Rᅫ 䐐Ag#!)Lj* ''3[G`$$x~6U \m_u#swC ! I PQ6[ A$$ 7StEg]lv茄;>NؗKi>琍cl |> /\e g: p HytfzPSHH>9iIno b[kZpən%7i? 8KNp -c$xv@$$d|;otCB~9 |> et^@ <t :[<}r2ZɓހZ-䄃W`/ 8KNp @N? HBg#ro( Ї=CSr d#耄ֹFr*tCBL7cg 65tIB>MstLB'oQ"@BW>O7]D]l%x- ^j>rA#!pHHҧIH)~b%Mh$& (˜ŋ;/CIH`_a߀pSeq$$:o 7-W?w78׍tw+z @_Ek-<*t)+tn ]qn p08IfHH''% z6fO?lDlLx ٽxDow$ALC W!!)V8A #!gY .S*%!w @Q-$$蟻 " " " " " " " " " " p-8KIENDB`xims-1.0/documentation/admins/managing_multiple_sites_with_xims.html0000644000000000000000000002051210276674137025055 0ustar rootroot Managing Multiple Sites with XIMS

Managing Multiple Sites with XIMS

Michael Kröll

University of Innsbruck

Copyright © 2003

Revision History
Revision $Revision: 1.2 $$Date: 2004/01/12 10:14:20 $

XIMS Publishing Architecture

The following figure gives a rough overview of the publishing architecure.

Figure 1. Publishing Architecture

Unpublished objects are present only in the XIMS content repository. By publishing them, they are copied to the filesystem of the web-server. The publishing details shown in the following figure should help to unterstand the logic and data flow during the publishing process.

Figure 2. Publishing Details

For every content object-type exists an Exporter Sub-class there object type specifics can be honored. Such specifics can include the use of special SAX filters for resolving content IDs to paths, resolving links, or including dependent objects. Before the final object serialization to disk, it is possible to transform XML based objects using special export stylesheets. Those stylesheets are located in XIMS::XIMSROOT() . '/stylesheets/exporter/'. Through modifying or adding stylesheets there you can control the format of the exported XML files. The stylesheet should expect its input in the XIMS document schema. To get a more concrete idea using a specific example get the untransformed object during a default event by adding the querystring parameter "passthru=1" to the URL.

Example 1. 

https://yourbox/goxims/content/xims/foo.html?passthru=1

In case of the Document object-type, export_document.xsl transforms the original XML document to the model expected by the stylesheets for the published documents. Example stylesheets which are used by xims.uibk.ac.at can be found in XIMS::PUBROOT() . '/stylesheets/'. Transforming published documents with Apache Axkit is the default setup. Alternatively, the export stylesheets could be modified to output HTML directly to the filesystem, resulting in static documents to be served by a non-Apache-AxKit-powered web-server.

Note: The XML seen here during event_default() is not exactly identical to the one the export stylesheets get to process, because as mentioned before, it could be modified through SAX filters before being transformed.

SiteRoots and AxKit Config

SiteRoots are DepartmentRoot-like containers there properties for a published web-site can be set in future releases of XIMS. Currently, only SiteRoot-Stylesheet, -Image, and -Portlets can be set and only the SiteRoot-Image and -Portlets are exported during publishing. In the future, SiteRoots will support being configured as virtual root in the user-interface (i.e. users will see /siteroot/ as root container for the path navigation) as well as support other side-wide settings to be inherited by descendant objects.

Why use SiteRoots now? SiteRoots can already be used to manage the different look and feel of sites managed by one single XIMS installation. This can be achieved by using different XSL-stylesheets associated with different Apache AxKit configuration settings for the various sites. Let us assume that we have got two SiteRoots /foo and /bar in our XIMS installation with XSL-stylesheets located in /foo/stylesheets/ and /bar/stylesheets/ and we want to associate them with two different servers foo.tld and bar.tld. The servers are configured using Apache's virtual hosts capability similar to the following example:

NameVirtualHost *
<VirtualHost *>
    ServerName foo.tld
    DocumentRoot /www/ximspubroot/foo
    Include conf/foo.tld.axkit-conf
</VirtualHost>
<VirtualHost *>
    ServerName bar.tld
    DocumentRoot /www/ximspubroot/bar
    Include conf/bar.tld.axkit-conf
</VirtualHost>

Using Apache AxKit's configuration mechanisms we couple different stylesheets with the two sites. An example foo.tld.axkit-conf could look like the following:

<Files *.html>
    SetHandler axkit
    AxAddStyleMap text/xsl Apache::AxKit::Language::LibXSLT
    AxErrorStylesheet text/xsl /stylesheets/error.xsl
    AxAddPlugin Apache::AxKit::Plugin::Passthru
    AxAddPlugin Apache::AxKit::StyleChooser::UserAgent
    AxAddPlugin Apache::AxKit::StyleChooser::QueryString
    AxAddPlugin Apache::AxKit::Plugin::AddXSLParams::Request
    PerlSetVar AxAddXSLParamGroups "Request-Common HTTPHeaders VerboseURI"
    PerlSetVar AxUAStyleMap "#default => IE, textonly => Lynx"
    <AxMediaType screen>
        <AxStyleName "#default">
            AxAddProcessor text/xsl /stylesheets/default.xsl
        </AxStyleName>
        <AxStyleName print>
            AxAddProcessor text/xsl /stylesheets/default_print.xsl
        </AxStyleName>
        <AxStyleName textonly>
            AxAddProcessor text/xsl /stylesheets/default_textonly.xsl
        </AxStyleName>
    </AxMediaType>
    #AxDebugLevel 5
</Files>

By editing and publishing /foo/stylesheets/default.xsl and the other stylesheets, the two sites can be skinned differently.

Do not forget to set the SiteRoot URL to the respective URL of the sites and the value of XIMS::Config::ResolveRelToSiteRoots() in Config.pm and $resolvereltositeroots in www/ximsroot/stylesheets/config.xsl to '1' if you are serving different XIMS sites using virtual hosting like shown in this example.

xims-1.0/documentation/xims-documentschema.png0000644000000000000000000011134707775063007020406 0ustar rootrootPNG  IHDR =PLTEƄmsD IDATx p  o#lP{wuMJޖ"b.ף F|M?Hm `Ř?SS@2Ұ?z/\ip3ua?ߠ?]kP m}&&q' ~AN|wfsn;?Ns7[q iܿf477Anm %{sZsH;;u JCá/`A4Req2eAŠ?(A1EXO6.x6!ϗnvu35uCYGBP7wN˒Ѡ?ja c|uZ$ywGP̲Ѡ? @1AP bbabCP ?(f?!t`Gs6E]؄ճbGI4P3*!?T(fA?A1p(A1AP k}A1dz?G+0a@iX #f\{ E6LG50 E7@I58״B#$o^՗iU꿜~Q-v=C>$EO? I{g?zÀLN6:WWH4_5m,ª6eEaQl#иEW+OOI&\fͿ ЩW#F0_Ӿ?7_ѽBU={$C"d@t*[{O{K? 90p5?~i/(CiޯA8]@8MW{?He Y e(T*::9{0CNg|݁LPj>e?k}a蟯q)+40 E!3k]슯i QZ70Psf3Cf?!39mR=? H?AP b)v@dz=??50 E2=H?_dz)v@G0:a@b!IY{|13AqDZk>~l50PsFdIԿBQd=|8v]KO_p~ {'d( k!{No۫Vp:r]ۆj/Ӈk@ӑm5jt8!]v([hOGڸ}I>0+s1͢bz@Yg} 35#ߙZ, T?#+~6sg?'Xa3-hlJsa`Gs/b׭-"qƻ~v,Nׄ9(wt aW|7Gf4!o@OHE?0P\jbɡC_H!`ZuSMw^=y~5*@ȫ}/zo}UȪCoEP6S@8@OU^H5?P)[0 D?(A1?@~4N Ҵϝ-|؊do[^5rߚ.sۛrw /ry|1Avs7~b9Bn7s޸ ϭ N?v&ҿ;7/C=q?za%'ԟX XK:UeeG+‘A8R?p~j^)a@?郀 ][]r>Zdo"n (ⷹFH>'E?p`P׳+~[ 0F9Ҵm l ?:\ϭ??|Cvv]uwWCKG$ߌS;Rџ"G}&a``~F3W?m`i_?@v4-P׷"E|? Hѿ6l? H?_RM]_葢io73R;Cok77;H$~l~~5N!:_? H~JkotH?AP b)[0 D'~ IfogS;tvVla@vec ? ԩ\Y@t߭^À| ~ I&=ⵇB4bŠ?(F?`{ E|? HџLR8`@dzfcU; ÀDH@vmWgWi s!anߺс0PsfޮmDCU&Ia@N$o&?ӟC_HCy@{ÀXA@P b#EџLBg=O)kL0 E2=H?_RR;ۑ/b٥/n>7E؎$NjFeU? ԩ\lG?Rs\7}?C2'H?tbb8oaA1APY ; D2=r7ϟn߾yNL)@~e^yyN Q;1/GĠ`e^yyNL!m)a3 ATߣ9Jy{W6ߟ?{o.|S)8 2}OS9d2 `?O}'@RFl*gAT_0 SA*/O(̣̋wb_02/މ|;WG?__-rZnWLL|#W +"W|Cߍ?x?G "Wװѿ{fy?n2ϟnkm"w4T}S9WxM۟vwsc?g?b5k@?տco?+F?wg~Z}#4\j9 ZG?Z_WXO6IA<ʼx'F蟎\u"W|_-r9՟L蟌Ŏ!LE~75K{׋\0rL@X@fIKgvBbv"[-e&a)՚f;a;i}ee΢8i [顯19}a u'[:j9sݪ #_-g?W b??3:r9?=J??"W2=2r9W\ݕΣajq4;2>!?H߯sl nږU!C1j\i/~H41C ggy@؊܉Oיo>lEy@?+_1AW bZ_OFdz@t?__-r''#W|#ӃZOOF:jMzji""9 WŎ+G՟T??WkOBH4;IZN?? [>C_OEy@Ȟ_1AW bZ_OFdz@t?__-r''#W|S??Xտ>_oE/g]mjKg+_-oՎV ߿j\i֌#r>Wd/v|*>ֿg*_K׿yn]U*S׈?诖sJou[@C4_-R&>[uՂG՟蟌X՟ӑΡZOOF:G՟L蟌\u"WѿX EoAWdof6ۃr>Geou0k vy[+\ 5_-R5v?w_|i֍W]>kNZΣ AŎgrr^=7u"V&>S_-'p诖W b#{3??3:r9W\?_ΡZ?;s_ڴW\G[[ _-+Ͳ^2"\UzRZRjMSa-)Ϸf'7.+Z_-'ҟ"\{;>{X EY:jQL|"[W\G'FA.m窘ƾ _-m7:j\i E-h)4k ~_!&vPz)Ey@?+_1r;XL_1?k}???'bOOF:G՟L蟌\u"W[߸c"W,C7]Zjݶ/uv)՚f]N Z?b݇Sf[Wp]*3=dn~sRlv Z3S?k}?Q8|$O| ţO|"_[_},)]3 N0Fجr.6*G})/9 "#\ncd[%ѿٖ #XqCӿ>M a?Wr;ϽLS{kIGǢYNZ;2ߞ{ {M~Oor_ͣ/)ݿ^(sڊ[$ćH?ţ?"^A(?8A<'8eO'Y{ '~韚!kSFS3=[JS$i!-m.!_Z3=k,V"蟊d\+ Lw2dz@3 Z?l ?Ly3p <\#pR?ǃѧ>ʼx'Fg(g|?1K|yyNŎ%T?p{*ذvbJ@T?8~gXCK 蟊zQpWaSmޅXq{vO|+ATN|g6&IB?"[,5T)?ͭyZfSuX&IV.6zmI|@T??Wk{o36e&1y{6?vP;߸5zmVcǟ} }wzU`۠ ??MK8Ʉ2@kjg|D8X#s}-g;,j[ۺ Ʋ(~=N 2@Wxӹ~ʣ̋wbIiګWo9Xˣ̋wbI3Z/9yyNŎ&%#L|̆b?'O.R^*蟉GOEg]x&)*蟉^@L0K3A/E { wSA*b8_0XZ揭^ok}+SAׯ{QQ ?u/*;jE+;z"[!c$Wv|D?jpߕۯLB#QCEg \DLreG#*.1H{0 E4CI ^0;SQ-ߥs?log"#/WE_j9ɠZ_|ρR??3:r;XLEdz@d꟯sdzP\?__-rtz_-r'>a o;/7jWQWjMK}H4k[? [}! rK _-g?W b{"W2b'#VFOG:j??uLj??Ef>ZA?B]kݪ.z Eħi֮ol״5)՚fmg"WZ?b+ޛaۦΡZN?l?}!rD1WBZ΢ GŠ?+_1rg/'#V2=13:r9W\?_fzx{"W2=2;AL|"W`<EhԿA葭]k=E.v˫uƯiàZdo8+mخG[X j\i #. À܉On7_cCl O+wgOC_l ~_-_m"B_-_1AW\YɈ՟L蟎X?X՟L蟌\uLj??E;O )[^cS3lۮWZlއ@'_-Pα{5ߦY ƠZ??Wk?s!;;W)ϷfW1ƛp?!w޺n[XG1ZΨΨV_-AW bZ_OFdz@t?__-r''#W|#ӃZOOF:j oQ,B *ӃJ96{_?$_-s3~2 |-|~'7U'zE)k6uծĵi-qXLeC߿~~-]a6 [ĽAXɲI7I;_/\}ez?n ˱8-f O3=L}{|,oQ~"EZӬ/G~W qk{]3Jabl ~ׇΡZpmSr9Evx_-g?W|CֿT W bZ_OFlOOG蟎\u"7''#W|#ӃZOO#WLͪGZoa byq#77Df:T9]9Wp3=j\"EZr >|T <_FuCADboyOg*' Wr6c@ȎjAW$^W?&k{{ !E)ZlD7jH*|i6*ӃnX(?=(LQs<ʼx'FQo2/މ3= {6d/LÎ词WŎ;)N&>S! W@u L, "V=F2 s_ rЃj~E5?19??b9ezpu0MW\M3=wAȍMNe \O')_ R5Fezw|@5gzxyW|7fz?W?&C?-:|̋wb-[=C,w2=΢N_ c}@5WŎuVL|B9Od7 7 +C{dz@e09FL"8?MW\2=>3B ٱL o`F&c.~Au?&Ӄ}#] ) i6*C>"ōIW[LQ~i0n298~T#<LC_ k2=2΢%Ӄ0^Ȏs@1 8KW\YObG(wObGg*dzxw@u?__-rϗ"68 SL{^*r'>u"3|:L@Ox"[vX74Opuk`"=ٱ[;;ú^=)՚fm:+s-Zۡ?ס"EӬ?::ZdC͂Oyz_-ooj]l:yz_-sٱwX]šZNf_-/XG@)׃jAW\s'VcyyN?kw2/މV=C0~ [5Cy׊۟pNrB_-';ٱ&_+ߠ^п#sεgJy\WraEY_T@nt?l]Wypp =_faW?@5+tGjAWYc-Z#W2bc2=:bgGt꟯sb{"7''#W|#ӃZOO#W]>]Eb ߜV&>S9w3o׷\[~|@k"EZLS.";}oB)_-g?!|@ȝ?: |@=Vp:;2=jNٱ_-AW؟蟌X՟!'W\?_??Ek2= &dTWnqE_2=tv}f50.C;3B_-C翚C駁XLǂ_ Ro1ͮ/mF 诖30~?0Av"Cg7 нvj2dzȞ БV#oΡZ诘ZZ_OFdz@tFi?K׆\ez@m?0 m Sc@c^\Av챣6oukݍ2<`i<6o׸*׭2K^j0y|ez՚%0]Cv'ox{ XM(hS׼A_R5>MHƯm k ?+F3=tMUxW\M3=,~G=^*UȍM2=t~Ky0 ;K')l(0^nUX{ejM2=حf#"cLC&A!_ O_B^)ӃM09m!b:L|*CHr083vCE_-c(+C1FϕG1cLCGBt诊,v|0QL|B @ 诋@] Y3=IiI?g} b\*r߯j3:r%ӃELOOEu :~:s A٨L=_3й==Av/r?|}X??7k0ҡ>?b>7e^#<~]@5?2Ӄ5|S>2d?!G Av?:ӃpsjqΊ_ħ;ۘ_ a/2]K>˿` d[e׽"]B`'F}pag^>șDTܚ{k9пo Kr4Ρk/mm7Nha; f9&Wnn',yKb5KľCvt+ŷ}^%)OTFyFXh'7M5QwbI]{CE*Hwe? ͧtt sƇ}qC`sqbŎqkw{};z\.*~z4u 6_lǟ-Def?wo{Yq ?0~:"jZ@+>Nd6:?}e^ِ[r ] !7/_V(ok~sP}o!w'Bځ_/4?AT/LDe%wȽ'_I=_U_/ݼFa_ E5J ?Y;Zڸ /iпvԿ+;F}'wa#釾9@T`Y~!ПO9=A=x{`O"7Zw2/^.v̚GB_0}s"J/X^2=٭A!J|S{KaW˝9/:|KP[nMͺee'MQҮ1_|ҨΡ?ˮՑZ՚f]E?r*KPe/Eۮ3D%@2=ObCߦq j=@!pw?ᇾY@T`Ab<=S@=x{`OvП/??21_g*r˿`Uv?˯?"׍?x?XпUr'>]F>,K;,wqyܸ߹/]k&?kkc¸m"/AbŎ>CcF}7,.DؗdjMnc}4@(Ϟy~j]n4Ç@>ݮ?QTֿ<M2^5N}+KP_pc7_dzOEoпU/XG`ПLyyyPȯ?F=x:9PC_2=ҿ_b|#C ПLyA!/=D_Fnz^־_v/_-}ͬp^ھܻ[Һ< _*cn0o/J^ LCs&`lAT!R3Nw<7k{})?Jj?祿~}}a !s8%L*cM IDATZ8/g%RB_3/}S{Z_YW~ϟ?=YnY3=[ۏ2/^4ǟ+gR|9?O#dBEP7F .٥ ٽ=xn.VKU٩5~GGU>B3?yhc㍫ڵ <עo/5#?6'"̏_{[\? ZqBvnknCO,*놥f߻ 3v_۽ʹZԻNX#?#_M܍ oDUVe?K4d4 l"?*;5'}ocp46B+@w?CSr82Ip0Ҵ*;5GH7a*_B3? ^B !L9Ʊ\Il zqWa8UkP壬Ssts|ps|::Ψq,:O& Vif4N͙w3:/po܅Qibg~vv¦RTc?*r)h¦9רhR[4 MWQSsVCh6]CɞyuFD٪Pt*/Ln5ō [k}ҟ¦h Qo¦  EvD6^.|JӪԜOFs;З¦Ti𙟔ILkOSJQ@aSP MRp\ JӪԜ]i 4MMeQə %<o=SOaS6M#8"Y JӪԜj¦Ubg~*!]-M} s65a(KlXiUvjnnBYa*_Bf~CYq3[AJ95EYaS1SSe&6%dKW 0 Yיi~oEvv¦*4W{wA?UVeM G~¦R2՘XR[d`ơ"vi+LSQrKbK wk˼?v^Xf޽Xwōj_l}SaSۓ臢@*MSs ^NB`ﮫ M;_Y5(lZig~07i[.*/ ~!O۽fzv0N=mG¨MXVG_9|AC7j>ܫTPdiop37c~mM!3O5}0wC^.QHF_&T|H]N76 c;?&7WVشG)y'x_;_ /6<STUVe̻u?vɨ43?;GaTa ]T9PBaSuz?ک-jH|~l4TԜ:dK8! :[Ti_55%^L*v.W[ŕx*8Zȭ+jڎKη|o9¦ ?,RaS[˪yݖn(ve8QԚob\𣢰)dqc}k;-H_]պ/ Dn^.|JӪԜ߇:зnK3;rCߨg~޺2L|RZtO?蟥itIWg*(l Z CaTiZ6-Aɝ,Կ09Gvz B!`_)l U]pGd;OaӼTiZSm7WSشʗPO%믥i/aA*Gt6CCRħ:OA9#ݖ05tn7l}ƕ9m[n Ǣ,aU٩9nM]u;vkl~Cs|GeM4MPqnV}W"HʊUavVD{rd¦&1JjZb~q, a?=O@B3?6-D&oiƥF״Pޢ; pB2 _CaS(iK/͡cm'[u Bg˘jloNX JӪԜՅMw)lZ*M=3/l ~J كo{@k<^ ״Q/Mv|e  DlD6x9S JӪԜi2U&{'6-AJ)l erMA6tGde(-{;==M4N us_)l*M<ݢzԿ0)tC@j I_Ka*9p조imTiZ&M%Qig~(l**/Ln)l :PCaSHDrDFaSIT(Ԝ?MeP壔<#Fu?Mh^(+l u!x8(4N͙w3:s؟*M;cgKPɨZGʓQoUWb:ӟ|TiZ5&7Oп4M̏3弊ʢ}SmKPɬ5ۧ?8?!Z¦/}S-3pf&7x!,OC_*MSs>Mk @Ti왟￶"J SBqUFCjr8.  4Nz/Aɝٹ)dJ #@frv`2|F3Ӱ #'"UVe&@OOn:JK+g?_ShK?g@0N>fެYmҴ*;5GR7veۡ*_Bf~ 5&%,̹oqywm?PƱ,{Ask.ɎoKp0BU٩9Uv % y*_ ZN?Tq,Aj8.L@|k}OU٩9Uv[Vdzx] 9-FTq,?C_kTqaGN*MSs&oAKXq2UANTX9p\nJӪԜ*I-y +sB;Fe| sv5~:Rc!(L9p\2=lJӪԜ*I!/aNs׏O{?!gMNTXoM=wg{0AvwC,?T ]scC_S DžYOﺍOU٩9UvsiWpo  gꃟ*_hпI{sr j @1/S DžA-TiZSe7 B^*%, tCZ_P s0[Ҵ*;5noAKXܑa*_œ]|Tq,dzTqaFf{ij|:4NͩK]M@0ϒWSj?R֥zuCMNTX2=X;Y2?lBO-mT@j8.wm4NͩKC}}M ^[%, tCǂϩ 4Nͩ!/aNsZe| srRXA19p\2=lJӪԜ*I-y sB;2=,SKX럯jˊ??͊?>Bj8.rybRsذׯ{|ezh8+4n zcK99# u_Jܴ1;8xp~?a# pi!:7uhzeݟ[)_pB>tv:l`Ef|w8;b7ӹyK7)u*ޟpy=oܾC~|7^'=":Z_H#lZSn// r$?lf/?f{ Ӄ(Ȓf~:[GG~M73ᦅ8S#ng^8ܴw*oox8%"&g<߸rkBsFv*XC/9{֗_+'~lziOP] ~ڏtW`ڜ:5}wȴF56N*ZK;k>7K|b7΀iVM M:_%:}/X񑴔xm?@$ןѿ~Gd;?m>-TiZZ|$MwBU)!pk OCUz%BU)!4N [x|8 *??5%+!a UVe@-TiZiTC?mQ_5RT4ݐhk9UVe\z_ݶKPeak8?DQsfw7|ICwdz2џ@GT*MSB 4N L[x| R1 ÀgпjJ]lS4PtWiZǵW_:q/A‡LW[G`ZwGrIC>i8*‚xGN*MSBXs\%SBࢇ-`Zwe@P TX뻅*MSB 4N  O?AdzOJJdzBU)!oJӪ6dzX׮AQs!Cgz Hmmп Uz%ՙ6״nNU)!]uVe[x|Vgz $$OȌ$b/CTa UVe[Ҵ*;%SsP)v@dzF^  UVe@쿅*MSB 0-*;2=@O)kKPWB`BU)!0oJӪ/xnfy|gSsicg8T>O՚;d?.ȬE+!ҟSiUvJ>z08q/A[x|ʀ=+!4N PiUvJSsG(a蟯q/A^ L[Ҵ*;%2=lJӪXL E?R  JK:3cu.CT_iUvJ;D'ncrG/Ar_=v@WB2UVeĂTiZ /iyA1{ +!w*MS!UVe//迄`G̲Z?(fWA-XdF쿏4NKPiUvj xثDi)ju\CTN7_L֯1V]C tt7[_U_-B"{g WGU٩tKQiUvj5yb6XVcoӹ4;t]pK)P7%K"2/CU٩  4Nؿe@1EXϺBHEpD- 4N_UVe`JfJр%kZz݃aVK ִ X`W4:׾# IDATn2=.׿]qn>9Rw77N";"O_*MSkp>=mW%Ҵ*;vryHK ִ rOCP7\FƂs!vNH^(wuJMSk`տx7Qe@-;X#ÿX*LirBk<ăioI6\MmW?/ϦNAb }[Wt WiZܼ`k?@mi',[ztWeT)DְJbCcv mmGwz>K/o{7Ө|ns{nX_%{j6ߌtw7n7޶g`ƦvBU%":S˽7/vonvfs^af7レ/7qݼ;6Dz⚟??vAɽB٣"?蟗sMo46o|s(b?&w{pq;+;C蟗/OOW{'b;-l>3WGLws%@/3pwzxտL;swQ\p>oMKi< NK3 '@ H+;|Yr\s43n\τ}sKߴ,"=y\fK˼ .$=p;_Nz2p ` Hֿ^`C7F@iGh߄9w G{P{+(J}<ϝnn~2_nvC:>ht[{R AgxS/\ncx߸nEsa"-IkZj{h?/~x %ō X~пbMC_SsZ`|~_[/dzا)9O`L_YT3ߠ?|E{]ߠ?CYb8}2B5vKlp%@xv}_-'_1Os+ U@7J_/zY YAx@{!GDi܉0.+y]Ai,Tv.w@_Ҽ~OBF'-؂ ϘƔ{.wl1U_nMml~' J-io~{_Uqh|{7яB M;sws%fw><77._F+ŗw@RjzVs{[=z|D ﰄ 0-p+Yzmt_]@x%aߓb'7/MhIOw5Lyǃ`~0vԮ<J;/ 0B{i\nfX8!]DwrGq2 {GiGp{nBgw֏@?;s{W*JƎ ĚVmkF<$ O{Z=_ګ۵b"V@R]n AipvM]女:;ߵN{sLu)/dzg~y79WYS%@x5cп5jo4om|"\Ys~"V׻\wX*`׋пm$ؿϮ$+#V}!ִ [%@xB_?Qǃߓ?+F LN<,=wk3@Bi?pmm慁"wB{\ް'0BwS15]%GS 0bw4CUG/C_Yֿ /x*^.0'A1A(~!a1nA?/u51<ߚ7ghמF{chCh_.2s u?؉P;ztp$o'[.Zv{^?7W1{c G •ϥl~oƣ1e8jb܉0;?WY?PX3vK ִ Tuo\6 @/ ^xs_ IW\?fa7kE#Cw_bMCߧcj~ۚ!/dz{m/櫿c|sY1io|nd'{17Πzjۡ3/ ĚV%ve<_] G_W IW +F;%kZV ?/d?/~O?(0 q__wv@oӻ*8|qC| .Ks_LG{r_.ϟ>e;]A5/fĿ\7{Tk(uw~W(dӪfݔ5_Vm{n`K @<}foF6^B1?3Fg<^쑭B#(|v՜=9 /S?:5>ExC`N?e?߉D3q.ث;4QG#=i/b3Y;o6yN?f8/oHKLs^WBߝ ^/qaX{m9 qH6Jݥ2\0s o6Aؿ񣿽<3>E._ $RH?ͧD~4?@??/TxyVh h(ѠGgEc_G A1<~NO%@%0PP5 Gs?~;/~n56Pec{} ??/@!_ C/bx|Az,vo? Hѿk1h?O9g?A|]Y?J7g)^0a@ݵ麶iښi8%Ǡ9ϣwm& o{[@c@ղ՚F:774ҙބ>v6? ~?(o?$@AW ??+_1RϷ?^? ?ן_<蟠2=? TqџL0 E2=HGs쟬1^Z\z?AIkħ3ko׷.Wes)~W:nM0PswAsĤ|@c@?@_Zӈ%KL|*ARn e[|J4GŠ?C]b#EJ?^2=GtR=##CF"D ?\^eUoxx'a׈쯟A!<(#N?=wzgǠMKIn?S;ˆC__/Vqɯg%pËe>BJ}&IM?{3Դnb!􇁶{g1ٵ a}?j5 \;t Bb1&Hg, 1?,Cߪ}}T.YY_P͊k~~C"$H@+>_ =mZnA6Jߐ Y W &Gm}dz+i&ljNB!O{;U$ TLPUS`\򴒪^X>s^EVko~AN?~/mC?9Bcf{s_.@c)zڸFny3>EPگyzp,vLd/w/Ϸ Gƽ3>QZӈ]{3Xc Wm41C\ l366ZDȉ$~fߦ\D!oO [4'4~Aƀϳ9[C.wsjf5E e_=r_ܼ?H(7s R'9Cb4 | wbý8r"Ӄh;џL GA=蟠?&)P?4JͣL3e ~4AϷFHCAYՃ?p'(A=?x?A|]A( @1dzҐA= '>w(?AYbȢ+lh;FDŎ?W7+ɓ顯im0W?bLK4?Ył eGGGhE& ;-}?f:蟨`}dMu~~àa<ŎntHB@8=L#!T- ,Yf~^u?4LT?@fgO] ~?oV ' 1qolչ*_)d^^Uz4יfx؀v;@0f//oZ} A t;(fA3mr?W&:{F#w Æa0yxn@ ^Ϗ!$RrZ?,4Dq=! %^z,-_Jl+l]_dI?%?&"ׂJN6{1w5+&荿r//n:u_ soY-L2;/m+7!X21kR|Mm7NfƏzPm6Dҿxt݀ALLmAh^b} VEۗnUJJ[s0]ܛ6sƫCl9|%mKC̀w4n/ ,^sqbsۛ!x"N'CHbO{,!e?<[a5m>[K[.Ε{?܎gIj"$}Wȏf49naV;tν[RsV 7։m Q/xzSsqr`ui0D>~#aX!Tg}r?B¹Aq/l'I;ЈZERzHPe"?ȉg5h{jSg&8sp.:N ϡ׈gv.xϠ1EC?5?NcbpSQyqFq&aυ{S"[}&xyG3pDпsp;ֿc*Nr_wt pl]Z}%;v X#2"q_ bXiWYjuKNnܡ$~OcCg??'UceGF|Ѕ)- >N[o=`t;vZC~%Sޞg.w,sn~)=LlssE>o!Pf6PRnOĶ0k./,dCcOR&)\/ZW+l1_-P4IB.|>ZIDATn"_~]ݜR !{?x2ǐE: #<.(SeT}x߶jlK׹ ^,;A0cEUK ĹĮlVn]._R|9ҡrͲ `;AnK ȭ pk *f3dFP).gM\ OGz1m^K7(:5]6D~;{?lb>lw?l:=,̀FI,l?D::sak܋Pq/K7Jҙ_6_io[?(| ddUC"sGl? G?T"uBVEô0L:W6O:G:i$?BPꟴLzW;Gfw'jlo/(txY:|[y~EYǘھE=,eACR/jK#_>ZE?T^$_oku0>YKfo^-~3@שoٸ.Xǵa?PkP5E#K7L=K*tleR?3=@.UMF_:uGqO Doߊϭ=?\7{|=ㇸ\PUT宫m! 2rEޏ4˥EMB?_՛m]v}"SU9o^p/7|[^&)8GW_ze Td/zUe+z"]TKFA0 N}W//7aՁ0lr0&Varaaء4.@7u(|MGl ' R@7\]l~"KxOuҭp kAM@7AMn6 ÆqX_ XL6,t;ۍn^&J:W^rru=ZfzqBEH&`|tzbs^ (&|SE`l^&$=EI6Bg+\?x T"tl>ŀKmNvQ&I3cCE}qAn'z/vlY |{Ot5Tߗ߫Buk7C9\;/rj*m6{jS"1E~VCulF+01ͅ{ЛO~*ss>釩v1U5ASߞ"x2!P;A+!BLs/d" O/~%,I 0U􇹸洱GdS~"F6/˽ɸVIaη>9;`\{e]_2qg4h=ҋ(3vUWwma _E o.B#[Z,b%jpNen”"G{1\ϝ53 0__E?3=՘M_w@X6BFĆ"Tz4`YcK5̫T!&?ꯝ)p߿Y!V诊ME>Cχ|=N$y_cCKϣl??[bѾ5,4>pNoGY}hѭ'8UlF`>}=?B'rSڈD&FMnNL ׿?Y._Z{KّzT Q_ʇQVo(k !Z֧򦃭IeM?Ua۬{WHDszr{VvAgQ~dA?gA՗]{Bø%7?K:}o'I|'sp._ZA# 'Xx̽bUnM 5/}gr[mj}o+A~\Y'Eŧ$ajk*$t&ʫaO?\?P=[IIENDB`xims-1.0/documentation/xims-documentschema.xsd0000644000000000000000000003650507775063007020422 0ustar rootroot root element non-localized message-text id of localized message verbose version of the message-text (Used by body parsing test for example) For listing grantees For move and content_browse For move and content_browse Used for pointing to the target of Portlets and SymbolicLinks The sum of childobjects. Useful for sitemaps or displaying discussion forum thread information The most recent modification datetime of the current object's children Needed for getting the paths for portlet x:includes (really?) For editing user-settings or privileges For user/role management or looking up users/roles for new grants For id-name resolvement For id-name resolvement For displaying privileges granted to user on object xims-1.0/documentation/xims-publishing-architecture.dia0000644000000000000000000000414507775063007022201 0ustar rootroot \[sF~ϯ`+,{ե$tiҦt7fAkP+KT݇0 XCLb]]wsW^GO*$O ?^x7Mu3}vѝEw̓Eej"9?t/ןd. 2pU';i$J']t_^?gE\+)$ ^~7߸y+;k|B2RTdTv"Rڴc+R"+RR+Rl4Op40t\t5)e]'^UUKW@kZ ײC=VM4^pF o# p:˷0ޘ4PiMc0j6a eT 38*ܘ#ghˬrF EVGQ%w+PNQ acz~ui֘nƆ>Usçi\%*p"vFGN-pT 8Z{GlPzkvbЌ^erLk g ȽϑǨX;FOd,J҉qhVn8&Xf TP̶*CfG?,L#ȵdLڸ.6̂@@|,IAedD >eZ#E$B\?Yquna !2Dsp/1 i$Q8 iM5iO EuJ6c;ܧQإC`$kPTMލXQ d:?2G>l2T< 6b_`ޭDXۃ,iDVAM .=z}u֒kR-uM7!`=a){ Rӵo!9Y]M/{dOmNz!3}dːY+w6Ų7}h']MFhI$Գz<;~x`IQQ^`&S۹y^'~u,~X$-ļ:Nz Ub3@">vŠ; 1iv/ zdFwo'9q"UFT;ȱi YEN<|儐ٻHI̋G}+YuX G.EbLeO}&Cv0˘4%Z[UJ@ jHwyо8o7\u)C(p$p|zXo7\ubga$Ro:{gm4.Z0غ0aه)nTг -DՙuZ I"6bS*k1p3Z1ݺb244Ht;)9+31bp_nݧ~udZ%W._^쬬~alv9g[; ~[II/\|75uڵ| a#F1jM B#;+ҥnݺ]v횿~ 544d12l%Ž;Dw̼؞a ^9xU||<žOsrhтr@'7 և񗽶vvl{;wv9:鯿7n`Bлk=?Z[[ ^jckۋ@8իl^j``@ իk^S. ];v t5׎_9ɩMRUQ4..y5Ȣe~S[(nk2Q^]|خBWQ".>iGyyDU7x VSmGۊAhQ[0}Oj=z۪7j{TZꬓG{OP 5+T}rQ}ZmJd-iY㵽=F*`Zo؀g[EOhdB{l2DoXxf-j[P?Uohh:zm;:B$m58BWjݣՍ׶8Am5he1wͺYÈ/9c5﬍S䫵b 2{K] W-_ٙYllzo.toݹuXm?4@ІzP]p!;!xCwBɓ|/_laai&}...;wݻ5k-,,wL6ȑ#,5yfTTٳDQҥK bmp';v찷9rdgϞ-CCCY ?ӧΝ;YSXfffDuEEϝp%K;!OOO?}tCCCe2ٳYJQv @͘1~vCrss̙JUp'o񆕕W_}%Hw<ՕFǏr9sgttƍ^uv;122z ٳg5<33slW5[hL&=zt֭Tzꕖn:|"wƚ5kbcc'L/=ҥKK.w^`` ۥ@ͺvZPPpaoo5kyyyǏg4N]Wׯӣ:vvE "h̘1^^^nnnW:u*qzUD"B@? 6yX/HNN"'|GZ0$$dܸqZTm޼ShvsG}~zV@@޽{Ys'%%]|^0,]z@QխJǧ*[[.]km۶]vZCzns۷ooٳgqx;+&L0a„z-vĉ>;Ta>|xaa!Nϟ 6̚5ѣG/Z~c<Pt_~e#}=x7FU^^by\z~˗/W_(߿^>}zxx8[?ロ;wg}V#Fٳ'NJlTz۶m[v;7ߨ>jll֥K &\pU?ʕ+'MTۨ)S6m6k,}zԩ2L@5ÇܫWF622`Сbxܸq믿u~}s2FVʘI=YKDDDqq!Crrr4N.y3EDDرcر\_|~6mjifXF رc?ևxs?6n8sLͮ;w;vɒ%fW/^o]vΜ9_y޽:t͐~O.pOvرte˖icB8p 36^@߬_~O/^0a'mlݺu_}^ڵEy"i:66K/;^\\bodff\ۤ`L.ּysmQuQTZǤ`2wYfjp'4씇luAO?Pm _:iG>7v}SEG-CͭGR>5k|箠0gj}E3? V4jMR-Okpgʿ>Z 4Uk՗a/tW Y{nէ=Pغ @Ө1k{TyeyO_eT&w`УC!)G%U!6C/]1 0͜hjm;"kTLc`{x%KNϫ~߼Dmuwՙd1tՎ|pýsPiw @ILCwBthݻ]E]vl@:zvfּcvfflɓ']dO2yo_ 5-_Sjll5_gpג6oyp{mV*BڶwuvV*(((..f TBHnNۅp½RዂҒzKOK#$߸v!p‚ zIe? ܼv-p)+3v-PI7oTBn\O`A܈tJ^b.17ܻsvKW\an\n%P/;M W-;/)zs>ePSyY@eNABH~^t6MW.G[)> ^ !Z\02+b8CwS>ݺ}j关FG]H*]Btݽ,7@G'+J˻l!wBYjBȺU8ztO.GW2⍄?`erPv܂1J%ٮM& U!+ BLvPo2=j(@:H.ǰLuJB=w]$YsT"T{5JBdrPp^I@2Pp^I 4|92BVpČr0cd2^½]&3:=wUJLhH#˄BYsTb>52L(LYU +aX@Gd[:{%@@q *9*12@drs ^i;ɤ"Z½1w-ksWpPH Upߡw#I1qX5J"w$1qX5J: sd2BV?G%;P1̞*{%$9P5R\ [½Eh$h8C@78wUJs et\kVp|cX@p {.ցp12i?G%;TtvBWon)Ĥ^1wc2\:9*192٫^ QrLp T"HJ!]E,?RL"]'N!'Ï鄐E/ WxZO~=dR鯻wɇ.+߻W{|{R =}zU !ĺMgů--۵wfPSݕGmvݠZ۵wcNAߧrd{O;n롸EK~E172g-[01 E;t ](/. {.ݺB9;c"ݵ !֢E k{..|&p!K {%OBH;g Knl-J&J[(Ei׾=ۅpKY0kvyIJႾ}>vl-_ldv!t~mruЮ}=ySl-En ݩ" [7od;ֳZ)>&s֭2 &v7>>;w:200p] ?8q"U ڵk]4܌3"""xGh& ("gk8R!xCwB7:4(VW~sTRgAt}+\ C.*SwQyNo` %y/tZ|Sj;O4B6>aF}mzYyzm@ ^@jէOc|}UM_6nk;Xsj`&=:"{;q)uV[6@<2͗,HD%=ei%;4Z)QWHjQ,F3"ތM~ǾjxДz}/W4T3܉ʻUUձ~Jղ5n97ކ{n(GpJPs[K߳jۉʧe+iu\jzv!܂(J@~BR !enAWzr/-BBU +%% ܿ;.y:!$Tv-p@{Z@-)nBI?^_܈bPӍD܎aNAɓGۗ/"tÕъ۱u{,'77''Ӝ'O32tpu]dHXiYfRL 8 MiSS66mXX[YjeٺP$dcdRg9rsxiii3s0ML7&S\\sfvvvvvX,.رc7\۷wtZ&k iB@@HݻwԴ;w*Zb;{^=̡k+++Sn)wXQQ!\;tpuviЮ-(_o. M ?:!#Az/^yxxwg:::j$f͚>$DGxp響bɩO~De~ήgϞ>ݺw$#\"i $ߺ߯oYYYUEQNNNNNNC Q)H.\pΝmmweO]<)L\-QWXd{9:ԩ7o̙,nC갲}K+**$bvKx%cCCkNKLLivvvlWWA 4hΜ9+WD]wCP!+.!t,͌M*JJ.p,<<''^>}/u5رcǎKi::::,,lg9;;G:miŨcǎݿwo͛uw6++#F15>>ѣ~uPPP߁T[dFD&BC=z8((hӦMlץaEիW^wz $$d+1:2L >xXxD" \z+ui5k=z`!#G{X&ׁ\w S)wvܙoGDDɁM/^xX,޿z{ﵴ 1ҥK/>r䈡!E5GG9s̙3G*{?lٺhHaJrz׶myyᖸX֭[Zj…W޶iݻZqĭؽ{~d?2"xO.&';'?#ЬYovs{]˩C>>sLW\+C= %s>())as>|xZzj_)vRVmmF]v=ş.iWT}vjݺ^FP3u?[֯_lׯwppK4̹ XKUS֭wڵMҵJ䘛5A]С3C)MJ >i^֘6ڴUt׵kfffs%c,,,Xy)~ֱYԸxh-ʝ)̚: ʧݾUtʝ}Miaaq-W\ w\՗m+vOQʯ q [E($&&6 QC%rWژL<Ϭ_]X)g1JFFF6KvU6u࠽W(rppسg_ZSRϨo[+yHSSS&ޣ;!dܸq+WLIijʽ:R^\y='51B\gϞͮY@@={\+x:P ĨvTLIIYr%3 Gp( =:c j|GUj=n5n"siz۶mk֬9q%I 8qb͚5۶mxwdwS7j8iT={̘1ѣFFFYFp+lmm###>|ٕ׸}ީ!ߒ!n8p\.?~x5ZF͏?.v9ÐH[[[˩smٲ uvQr[8pƆr(Z` >ߟ8ڵk[nH$[lqvvfp.OHHزeKff{7j(=FǞ={|||6nX%[4~KMMݶm'|2}7|ؘX#vioo`.Nϭajvw}%''{yy_֭[lW^痟m6$;4177m۶^:>>ڭ[6l陜o߾{r9 g{ڴizO?رc_uRRR>}ůٳG9rg}]/^hQddݻgΜ2p@%ITTTxxŋ===njs-]i: e2YLLLxx]\\ƌ̩ v9995k֎;teK=AQСCJtBBBxxnmm=nܸn>WEEExx_u޽^{mܸq_ͭ3  {\4ŋw:ujff}@@׮]uQRRܣG_~ܜ^nݺumEEE{O߿oeeн{w3ΜS򄄄h&Lz?hтN]Y-,Y~qLLÇ/_NQONvÝ=_v-11͛III~~~ӧOf:277_`s;''ʕ+֭Ş^^^>>>ݺuNK,'&&&$$ܺu+11ݻ?ޞ4+^R\(#1kppp7nܸq!r<22ѣG MLL:vaggk%=zt픔TDҪU+www//{[SC.=(/Ȫ@U?z1kfFP !4M߸q͛G/ eff0155yLÆ 4UCFFWB+u .hjm`ذaTTT0!{ŝ;wBRi6mlmm?͙nLLLja+KKKJKK233O>544mڴvww|haa2mڴ.]h䳧9Wp%sss#""֮]U ______=Ϟ=c?3%% ?[jUߴi:77Wy"gVVH$bczxxhs}=8HkE;ȵolqTDA똉kQ<_XXx֭ٳgZKj@KWm.P{dKKK57W½MVVVAA6Ҳo߾}U$2ggg2A^^^M\*2sd2'4mee. hǏ4m#Дt3 ׯyO055i`_ÿj|'OfeeVk>B L$I$'4ݺukEKҥK```>' ++ gtUNcs,]ty )E*N:l9?֕C2W5xd2VRҭ_v$wݵO׮>͚5{ݿ)S>}U(jݺu֭9Fͫ~&N.O:588;_>}߿S\9U“'OƏjժ'N] 5ɓOlWwSS簾Aŝ ,2e<ȩ]\]1 'M4iҤlkġp'L4C aNۿ֭[8pWֵk׽{]E-XojU6~P@`ޥ}9;tȐ!F?IZ\p!Y~-TVB 8pO?5/uvYSSSGGǷֽR}bS#iwʠM_~UXX(:yv߭G哟Sn:2|ٵkݻwٲe jak׮500jժTǹp'j*44499?OOO5kرcq}ݻ47't_k~ߺu맟~;L2ENDrPK^U#Ν;ڵٳg{=z̙3teff~gϞIDATyŕ+W7o\XXd}NSiݻLIIIaӦMfP4ݰCBBBBB!r͛џ~iffX,vssSSSSsY[[,Yݝ@@Q6ZZh1tСCBhNIIٺukfffNNb0777u,XL3jhhhoo߿Yfyyy5~SW=;+|K6r=gل\NJMMdNNNVVV&*jd"Cy>zȨcǎӦMsppx?~G>]'ԈSWJKJ?yF(iӦBh~1ϟ?Ν GGG'''I^x<_vvvnnÇB!ڵĉ۶mG?df`\ 6662L{Gwedd0˗ӧa'R6qXYYs)J+**Rbڵk```v`LYYYII &kE0+ UC*?_.|6ivEQWf_AAx䉁H$"X 27$X,hӦsȐ!NNNM0L&KOOo3U/&@ ӧϊ+Km3QQ4(~D"ؘq3f0#\GUQ~f ٳ3߯`g>DtyyyQ*ט+VӇ;{??˗lIEʡbx֬Y}s۵&I=q O6Nhh([G7R|if닦+V]K%|0v% Sk 4hԨQ>۵#]ۣ44{QF 4luO>2dEQvb*8sglذիcƌ3f̼ytZ}/^駟:vv9MOCW^Oۚ,]F{oɒ%҉nJbx۶m޺uk.:nݻwٳ خ+_>}N:EDD OMU{?Uv萎;FFFzxxO>lWiii ,ٳͥK8섃=wEQ'OcL6wA[ dGݹsg6mϟ- jرcǎzw}ٳgi4?l߾](Λ7o˖-lWTsG6mڴrK-Drܹ𘘘Ç۷ʊxE{l޽}70@V3sܹ޽{o۶ё^pttd–-[pvvf߿',**rts +u?3 [qM 999ϟWghh( mllj@YfR4̍҇2J$kkka>>>3fppp?JMqW.dV_􄍭x͞Okhh|Ǐ^ٳh%0޴iL͉??~L&g~m߾qڶmO9M&&~=3}t EQڵqG%Mُ=RٳgeeeEEEYZZ*l۶m6mWv֬Y3ql:Ϩqc׬Yٞ*=O>Ȩ6k~~bf͚)cV-֖A={tg̙SyKy{ZVFNQ]ӿtc} 7yҒsBCCg͚Jmڴa0aaa{_~fJ{  o\R*]UTT,Z(ڵv-+E}k-`dV߶ʩ8##}cmkv9prNmOBp]{ c:}t=ZZY#gíp'P!>?k߾}bdǎWq4glW|֣oz[n;v())a"ݻӧp;w^i;4)1-2b7Ι3bFҟʎ?~ь~ d4M8<Ý"2 藛3!!!m۶e@`fΉ044>|O?1oղEI1ۥis bСCutW?qX,2dȂ%-mmK+ {Wz+VTn5yKZ^q~avvagddvRVV?=z1b_DrBHZn( >2x7L}1jƍqqq&L4hpBllSlmmGo۹Ԥ&ե3PR^N8!&QGEEmڴ)//? Ã7J7n`}w.-WTH$2)P(г{>fƗ_q]<<χ>:[(wB P!rȅt`/hNTfo/;HiSS.; pi)ʧ۷y0_)_N$ϨV-DwJ$bV1Mb2t]wzHl8c,LTi2Ƭ1A ئ'ok~4',TXXxt:=11;K LMM}9uDW,Hyݺ%0|<?~ǟ]SqRa$J++xleYaBoOTrHKTʱmyak״_}288822;THTQBȡHKk?Ge\'RL&z_ooIENDB`xims-1.0/documentation/developers/0000755000000000000000000000000010276674155016066 5ustar rootrootxims-1.0/documentation/developers/class-diagrams/0000755000000000000000000000000010276673767020770 5ustar rootrootxims-1.0/documentation/developers/class-diagrams/appclass.dia0000644000000000000000000000520107775063010023233 0ustar rootroot msںߟOз`yJ3}:=iۙc-@+΋v6L8^];7n.m6h 6|k1K7` ҿ]6JNgZ|%҈hsҁuo"RM6攸?R,/\-WyhlS! XC1hSpmw?=m%y~t!W'r΂Ԕ'aC+1LKK!KI(TNIRrI\:䎙)%eyQ^y{jk<pnYĦn|`::y4wvw\=?4?W'S8YS{ g'PW^h7sE5-feKw Tͮo#{մtÍH0t˚Epeܦ)2Ib6Bf*K1_]ߌ?]1DJ*4;Ə4P"Sx5qU!gBD&,c2֍rOd6B`] `N'3Zo6fg|}E وZ.h{ dS ] G -ݑzћ{3Xã, ىo;v/y &[ǗmADN}OwARIO5>8A%e<{(Jb!H|- {xGʃ.E |[Df#z H;^z;dE9 S/TEϽdKry#=^6#u^[H| 4"et#g]>߁W O3z-Fn@Zj<#NH8!q (0{+3?o~-&0Y-;JǠtAk`8e(H6\ Œ(l$ ]L(Sw KOͺUNX0hXI QP+yS/1b_%\X:5UU.eX:oha.zqцjJLPnIFOW1$&oÐZ%4,[p@bv 5 (F+gR}Žc{q{VR V91nddرd^&rH G{(mwC@ƫtװy&DJZrR$W`Fh$*ZC+dӚ3xjC:x{ ֳCM+ˎ}*z[6ܡN6 \eRB SCy:x60^thٿiNKdţ]LV6ZZZF-ᗄV_߭- b`[` K O4pO> endobj xref 16 13 0000000016 00000 n 0000000607 00000 n 0000000884 00000 n 0000001041 00000 n 0000001175 00000 n 0000001552 00000 n 0000002093 00000 n 0000002132 00000 n 0000003911 00000 n 0000007554 00000 n 0000010231 00000 n 0000000710 00000 n 0000000864 00000 n trailer << /Size 29 /Info 14 0 R /Root 17 0 R /Prev 12734 /ID[<3f396362bb249458de21e7963e5ce4cd><41b8bc039073561df206a4665370387e>] >> startxref 0 %%EOF 17 0 obj << /Type /Catalog /Pages 3 0 R /Metadata 15 0 R /JT 13 0 R /PageLabels 2 0 R >> endobj 27 0 obj << /S 36 /L 76 /Filter /FlateDecode /Length 28 0 R >> stream Hb``f``:| bN(f`PgaOUv桗X(qH3@ - endstream endobj 28 0 obj 64 endobj 18 0 obj << /Type /Page /Parent 3 0 R /Resources 19 0 R /Contents 23 0 R /MediaBox [ 0 0 1577 1432 ] /CropBox [ 0 0 1577 1432 ] /Rotate 0 >> endobj 19 0 obj << /ProcSet [ /PDF /Text ] /Font << /F1 21 0 R >> /ExtGState << /GS1 26 0 R >> /ColorSpace << /Cs6 22 0 R >> >> endobj 20 0 obj << /Type /FontDescriptor /Ascent 629 /CapHeight 562 /Descent -157 /Flags 35 /FontBBox [ -28 -250 628 805 ] /FontName /CNEPMO+Courier /ItalicAngle 0 /StemV 51 /XHeight 426 /StemH 51 /CharSet (/X/I/M/S/colon/C/G/B/y/e/plus/v/n/t/underscore/r/a/s/h/c/o/parenleft/par\ enright/space/f/l/d/g/i/E/u/b/p/x/m/D/O/H/L/P/j/k/w/F/A/U/R) /FontFile3 24 0 R >> endobj 21 0 obj << /Type /Font /Subtype /Type1 /FirstChar 32 /LastChar 121 /Widths [ 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 ] /Encoding /WinAnsiEncoding /BaseFont /CNEPMO+Courier /FontDescriptor 20 0 R >> endobj 22 0 obj [ /ICCBased 25 0 R ] endobj 23 0 obj << /Length 1704 /Filter /FlateDecode >> stream HWn8}WEX/~뽻h: h Cح|$lKLiC^:)*yv2U&VT8GqiᓫYXrg򯄦۷+Tz2ttf!LlkuH \\%!um~U EdE$3  f*BQ1 e! ev ū&A3䝼\">QVr˃q2)%'L! _Ly&"rǙIcݜAz[ds7 \XL 5v:*ӜDjjNr.lF'ԗ%ZY|c2-|Vkǀlr300yoIJi5s_νﯼիGkwUy3?fE;үfb__~|=~A.0{4\oTp@gM k[\6ljޛiYXzANz;%MlH7mODҼ,we\#?Nln.E9?%dY$s].]t]D0s5[]#%\aj'8g4"fN-Pɭ Rb!1ѽN-qhP 'mô!B p;oRvDKKIaMʃ5[`,ʭéi%(rɒEWYj%D3Eeo- ;a)p_ID*er|c.H Q m"0DtX60@Yנ<; aU'ބehR cq?"c3 ik^{8_ۣx7*k%DEB&hݧR D 02zRF'/BN*EU.q=Są6J? xZ}5v%Tx=p(:X4:4G|X҆>*ځ=@ r/WČR'~޽ztH8qS!T4O&co|psm1YHaFڀ |o o1ic#LHxa;)l4P^0;pEHǘWc úu{0vhM HdJ0 4ZgpP8*`ИB(AA(y-&{c%̸ؐɮl8ցkuy.G>PcC"@poXle j (A2a/;# {rP#҂ݶP &$"gr " m 3([7OB! =9PC̠a]!`uKPYiJZTcɿ5f& endstream endobj 24 0 obj << /Filter /FlateDecode /Length 3551 /Subtype /Type1C >> stream Hd Pwxw{"(0EQ@ y墤(>2X' IgPD 4W@mScllcmmߚ1I;fw~eeâD-|#,o-jX5<4O7VR|A;؆O}zƁe l2xy 5oIu` A5+4-bZTTƚS5?75ϖg[ƚWhvW܀rWj+?cX0.,0Ìtf|YƏe&L Ä0L,?z9Ɓqd QYwEa}W9:;m J{>&v Ϝ8v]"]s7$zEWk+qsw+wuzn ,4GA6}ƚp/w_ Mk|TqCq^h03|+5 \wԙptAtk+0ƙtP:jgP1b1c!cTtF+ Qs+Z}"̩dkxm$A2 F/`Vax[(2<gs/sjI]JF#s&cZ"ʢVJ;fRvFQ Kz G s ԯ۷nk.1`!g}by]z+%$˷-)h0Z//ǤHb֥S%CY.m'| w޹yvry B!zeBb_p D;%3f!,8~| Tgk)( M &l=DKH5,W=U z OjI S/4%=Jyz.p=[W]1C0`*b,_3隥`ҏV]݁;ЬMD*jh`f b+l`/ $v#cFAya鶑$k6c4c<[9g$Q]Y050JsXvhEh4u ?(0~J(Qh7*/u=8| SSSGOa|Fseަ&b|gmӻrBvԶ8 9( jdžY3yTZQ H Y$AZsOfp1=H23IP&ܹT7:m[(<ɷ6Ҽg(0J>x>~IP!&U]$IFݬb9$N~yA[9՞dr(Ylf&/uLP"AQ >XbOlL5Źb㇅蕣DlL_yDZB徒6 NOUp1|\Dy7t55ݺHDIjN` *EAhwFU:t&:DJr:4c*Ĉľ~xw1CQmغȌ(RMHQ RG} PTTE-^,EDe@}iԨQ{=蝡$w朹|wʹ}]qG Mԍ!`hr ^79*6ʬLW.Z+&خr#=pi(6tݽ%XoWlSN-`K'mV\F4:*?(D 18d)#%sk)xExL+F6tкTlmwQU!"XPkH$3W]\*XBe SfiL ˄_~`Y#~QʑY )_ia0oΨMr \J]✤%=lD'1Wj3Bܙ+=!RigGXG g)]Yqh^i<=XCF1? ,U1K{4|5aVi)S!*@>}WF-*;9V9`Q]$&'.D(U+ V'lL(ݵd- ɢZ!o%/-Ѭ Dݟ~D:%3&ڄ_;)X@6Xڽ#_[&X<->/LHX"tYы}@WWuYn_D"CD1G< 'S =}Du/(,z G:8&x $XVR*ݽQ>^ǒX TmUE>=ϟ5ճM_k82d5 m| (H=+޹HG^ mFP܍`%WV0=, OmPnWء(cS٢}+R?ʫy;!;$Uy+%ٜxbt5̞u']?ɰKܙni1ab^аwc׵6SMxƘncn)+?Q`I+/5A* @4Qls\IkԺTF1j,:ybzepzoy ~TA.XDҋ{. ;:%>)̶~' l Csj#w)'=j1wn=gnЇ׊NY -4.%L8;=tP(@3]ՅYL3Fˤ4DRѰBomt&za"La˗YtmpOC.\q2?F/e|d$ YKw&UaK p V$0<_yvh`|Ev2΢!2tj +_i)~Be@AwC< endstream endobj 25 0 obj << /N 3 /Alternate /DeviceRGB /Length 2575 /Filter /FlateDecode >> stream HyTSwoɞc [5laQIBHADED2mtFOE.c}08׎8GNg9w߽'0 ֠Jb  2y.-;!KZ ^i"L0- @8(r;q7Ly&Qq4j|9 V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'Kt;\ ӥ$պFZUn(4T%)뫔0C&Zi8bxEB;Pӓ̹A om?W= x-[0}y)7ta>jT7@tܛ`q2ʀ&6ZLĄ?_yxg)˔zçLU*uSkSeO4?׸c. R ߁-25 S>ӣVd`rn~Y&+`;A4 A9=-tl`;~p Gp| [`L`< "A YA+Cb(R,*T2B- ꇆnQt}MA0alSx k&^>0|>_',G!"F$H:R!zFQd?r 9\A&G rQ hE]a4zBgE#H *B=0HIpp0MxJ$D1D, VĭKĻYdE"EI2EBGt4MzNr!YK ?%_&#(0J:EAiQ(()ӔWT6U@P+!~mD eԴ!hӦh/']B/ҏӿ?a0nhF!X8܌kc&5S6lIa2cKMA!E#ƒdV(kel }}Cq9 N')].uJr  wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó ti zf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4 n3ܣkGݯz=[==<=GTB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY .=b?SƕƩȺy چ k5%4m7lqlioZlG+Zz͹mzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś nLl<9O[$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km endstream endobj 26 0 obj << /Type /ExtGState /SA false /SM 0.02 /OP false /op false /OPM 1 /BG2 /Default /UCR2 /Default /TR2 /Default >> endobj 1 0 obj << /S /D >> endobj 2 0 obj << /Nums [ 0 1 0 R ] >> endobj 3 0 obj << /Type /Pages /Kids [ 18 0 R ] /Count 1 >> endobj 4 0 obj << /Dt (D:20040106224221) /JTM (Distiller) >> endobj 5 0 obj /This endobj 6 0 obj << /CP (Distiller) /Fi 5 0 R >> endobj 7 0 obj << /R [ 1200 1200 ] >> endobj 8 0 obj << /JTF 0 /MB [ 0 0 1577 1432 ] /R 7 0 R /W [ 0 0 ] >> endobj 9 0 obj << /Fi [ 6 0 R ] /P [ 8 0 R ] >> endobj 10 0 obj << /Dm [ 1577 1432 1577 1432 ] >> endobj 11 0 obj << /Me 10 0 R >> endobj 12 0 obj << /D [ 9 0 R ] /MS 11 0 R /Type /JobTicketContents >> endobj 13 0 obj << /A [ 4 0 R ] /Cn [ 12 0 R ] /V 1.10001 >> endobj 14 0 obj << /CreationDate (D:20040106224221+01'00') /ModDate (D:20040106224221+01'00') /Producer (Acrobat Distiller 5.0 \(Windows\)) /Author (c102mk) /Creator (Dia v0.91) /Title (D:\\data\\michael\\progs\\perl\\xims_sf_cvs\\xims\\documentation\\develo\ pers\\class-diagrams\\appclass.dia) >> endobj 15 0 obj << /Type /Metadata /Subtype /XML /Length 1307 >> stream D:\data\michael\progs\perl\xims_sf_cvs\xims\documentation\developers\class-diagrams\appclass.dia D:\data\michael\progs\perl\xims_sf_cvs\xims\documentation\developers\class-diagrams\appclass.dia D:\data\michael\progs\perl\xims_sf_cvs\xims\documentation\developers\class-diagrams\appclass.dia endstream endobj xref 0 16 0000000000 65535 f 0000010370 00000 n 0000010400 00000 n 0000010442 00000 n 0000010507 00000 n 0000010570 00000 n 0000010592 00000 n 0000010642 00000 n 0000010683 00000 n 0000010759 00000 n 0000010811 00000 n 0000010864 00000 n 0000010900 00000 n 0000010976 00000 n 0000011042 00000 n 0000011343 00000 n trailer << /Size 16 /ID[<3f396362bb249458de21e7963e5ce4cd><41b8bc039073561df206a4665370387e>] >> startxref 173 %%EOF xims-1.0/documentation/developers/class-diagrams/dp.dia0000644000000000000000000000415307775063010022035 0ustar rootroot _s8SP+`0$[3;{US5ݙ}r [ne'$gB /ØNU@V-Ւ!R3)av;T2`bq_}OoF.wH؁"N]uZGݝ1RK8'8hнޮM֊Vv UwFJD%sKU<-012vv%JͻћR됨(E N6\9b/J+t.g&%DdZѲbpԱ 3esB5O0*B`[EX} e1qс ]SºZ}bvne^:أcKz ]'kraY'X97u>u_87_̂t@Fr}ǰ{N+6Ș:1rzL9 =_*quLEt?g{h+YRX./`o_..> {kLi,@8B/hJVQh{9vxYezxX:|Iϥ 3ӟQ X-egNBWP GħN׉'EO4|\f[Ph*lO޶bln96X23(JFp^D>!yO/>֑8-w䮷ߍ/W!S~S>3l$XR(Z30EbtV/ы}ߤ_pA#-+r6m^Ē*,z[xnTj/^t0 'ᾠ G[LF7r#䭆|vC-{tŠToBEJFo;~Τk24Hvz ty:BEu#mG=9br̓)Uz)ʳi,˜o$ׅNv11g,! H<bM@Ao1!uDtyB!ywexYJ:bL;~7NB/vQL@cĹ#HlE==2MKWd6/_)GOR0DʃGM`rVrV95j$mebN6 gL.֊zj5rQX1+&bDb"VLĊX1+&bm<+b0Qey *ͻ9bt7:(I9?:~&yuDs5LdX3=b?tb%~f='L߇zJ4#sQG[C82bI2 s)o(/}I(s'[m에p-.kW.; F&œĘ8}{dXN2o3fjz`Ǭk0[~l~=(kPg7$f߆3?ZMl9ӛG}/ /9ưv{}Ӱ4׷W\ovCn~o^-² dyaI7_TU`xaH!xqOg]P# .7Nb -`t1N-.A"a3Eu-1p@|fzFTTw1_Q7(4\$13^!% >OJvvBBeTPzs ;yD)yW5/RtD3[ZPʫ Vo-Jn{]MGGj,˭ MMFlkGґ1t[24S2/d˭3lٓ J/4INiNkYc׃EE<-My5.a^״y0nhɅd!,'ImmXPم!8] ?\jO]zT8,aX1,ˬa(3J&ib]}Vs80ִl\8:RKha'fYoE#}4܇+-hV,be؊JeȒ{ ډ\UW4 }K5+}ɚ5. F1>xims-1.0/documentation/developers/class-diagrams/dp.pdf0000644000000000000000000003100607776627430022063 0ustar rootroot%PDF-1.3 % 16 0 obj << /Linearized 1 /O 18 /H [ 710 175 ] /L 12806 /E 10051 /N 1 /T 12368 >> endobj xref 16 13 0000000016 00000 n 0000000607 00000 n 0000000885 00000 n 0000001040 00000 n 0000001174 00000 n 0000001558 00000 n 0000002099 00000 n 0000002138 00000 n 0000003459 00000 n 0000007205 00000 n 0000009882 00000 n 0000000710 00000 n 0000000865 00000 n trailer << /Size 29 /Info 14 0 R /Root 17 0 R /Prev 12358 /ID[] >> startxref 0 %%EOF 17 0 obj << /Type /Catalog /Pages 3 0 R /Metadata 15 0 R /JT 13 0 R /PageLabels 2 0 R >> endobj 27 0 obj << /S 36 /L 76 /Filter /FlateDecode /Length 28 0 R >> stream Hb``f``:(-ĜP/:+]~l`QF2  i endstream endobj 28 0 obj 65 endobj 18 0 obj << /Type /Page /Parent 3 0 R /Resources 19 0 R /Contents 23 0 R /MediaBox [ 0 0 1506 879 ] /CropBox [ 0 0 1506 879 ] /Rotate 0 >> endobj 19 0 obj << /ProcSet [ /PDF /Text ] /Font << /F1 21 0 R >> /ExtGState << /GS1 26 0 R >> /ColorSpace << /Cs6 22 0 R >> >> endobj 20 0 obj << /Type /FontDescriptor /Ascent 629 /CapHeight 562 /Descent -157 /Flags 35 /FontBBox [ -28 -250 628 805 ] /FontName /CBDIHI+Courier /ItalicAngle 0 /StemV 51 /XHeight 426 /StemH 51 /CharSet (/X/I/M/S/colon/D/a/t/P/r/o/v/i/d/e/B/plus/s/l/f/underscore/u/c/parenleft\ /parenright/space/g/p/n/m/x/b/hyphen/y/h/w/j/E/T/R/O/Y/q/A/U/L/Q/N) /FontFile3 24 0 R >> endobj 21 0 obj << /Type /Font /Subtype /Type1 /FirstChar 32 /LastChar 121 /Widths [ 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 ] /Encoding /WinAnsiEncoding /BaseFont /CBDIHI+Courier /FontDescriptor 20 0 R >> endobj 22 0 obj [ /ICCBased 25 0 R ] endobj 23 0 obj << /Length 1246 /Filter /FlateDecode >> stream HWnF}WiwvIV*")\4$R%)_$˒JU=;{fvpty]J?.}R8.ZfHI+ CZP$5 mKzagxz)L>'O<~VJ{.|Vjĸݷ*`.DXPUl<{K?)oVC>iўXځDL15qJ Yi0ѰS ƌ/ޖf99p!EB.-TЁ3h& ”Ʉͷoo|K H `M՛W?%.LTǘd̢ 7)TaTUE>T/.}4K̋[SQq=\Piizm*ͳ!ݻg6yYe*\&Χɫ(>/S{^K:gaU&zrHnkakbdI{2_}4ru; taH h H).:BSa6`X3TrNpsOiM a7 g( A^mYJ3DqP% 2`竇 HQ:TMWyxfVwJج٥Ffy\7\Z xr0( HN qеP]{ tpHJi %tw QGى" vAO}qGuaG5IA.UNX"(ǚlrIwdA*c"BXB s~x1$ 2? pzcTq;_9֢֡Fv}PBS7C򗏷}M/P1K@f1b93GvaؑhhQu~~3l~lJ~==0`wwZ ֓ > stream HdT{TftWΠ(>QP (U8GI  yiWhVSTm6';9v rf{w);iАy ,uqiui%*rP<\tpkun`ItĀK+uPט5D򺘆b^{hcHǢ'^C~_M6DMO bТo,ZakcIcQ(&O7Lk JC^hCT FXQV4KhrȜa<8Ӱ${i-K_!d~"$-  БS e2xa302dy`hg/ L:b?P` zRDJLޏ:Q)򊥼jC'>?Zx7#ho'߷>˿sRz^yi7e٫v$ )ڳJ;Җze3Vk֯]cwp*ă7U"04fUnA훃$pY ~=7+ӏ,} h]*:z1Dm$qQ`sqR6oVHVKoR=V_$9 mЎ6)F.C̀x 껤2&a7`f.jj]IP 'pç828IU\X1c´ॸ06ÒwTM_F"h[aCg˰ DjQ,f#Q(Լ+ЪrHFC_/Q P˴CGnp a*>s~3,*Ԃ? Ш]TFi}D> VެHljj5bK3>["Ybuk6(<-Z__˕+0p__7p;[|bA,aqr[s͡*tuwѾmk'D[?Z)| YZ_&4Pco8l0{a%Y7aViVp{߀+ \aq¢eKikv97(VUk-K-ƵC7Fݫ7hfuШD]O9D]fFCȠ.+Z !(꧶Qtl2.ɖ> stream HyTSwoɞc [5laQIBHADED2mtFOE.c}08׎8GNg9w߽'0 ֠Jb  2y.-;!KZ ^i"L0- @8(r;q7Ly&Qq4j|9 V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'Kt;\ ӥ$պFZUn(4T%)뫔0C&Zi8bxEB;Pӓ̹A om?W= x-[0}y)7ta>jT7@tܛ`q2ʀ&6ZLĄ?_yxg)˔zçLU*uSkSeO4?׸c. R ߁-25 S>ӣVd`rn~Y&+`;A4 A9=-tl`;~p Gp| [`L`< "A YA+Cb(R,*T2B- ꇆnQt}MA0alSx k&^>0|>_',G!"F$H:R!zFQd?r 9\A&G rQ hE]a4zBgE#H *B=0HIpp0MxJ$D1D, VĭKĻYdE"EI2EBGt4MzNr!YK ?%_&#(0J:EAiQ(()ӔWT6U@P+!~mD eԴ!hӦh/']B/ҏӿ?a0nhF!X8܌kc&5S6lIa2cKMA!E#ƒdV(kel }}Cq9 N')].uJr  wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó ti zf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4 n3ܣkGݯz=[==<=GTB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY .=b?SƕƩȺy چ k5%4m7lqlioZlG+Zz͹mzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś nLl<9O[$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km endstream endobj 26 0 obj << /Type /ExtGState /SA false /SM 0.02 /OP false /op false /OPM 1 /BG2 /Default /UCR2 /Default /TR2 /Default >> endobj 1 0 obj << /S /D >> endobj 2 0 obj << /Nums [ 0 1 0 R ] >> endobj 3 0 obj << /Type /Pages /Kids [ 18 0 R ] /Count 1 >> endobj 4 0 obj << /Dt (D:20040106222908) /JTM (Distiller) >> endobj 5 0 obj /This endobj 6 0 obj << /CP (Distiller) /Fi 5 0 R >> endobj 7 0 obj << /R [ 1200 1200 ] >> endobj 8 0 obj << /JTF 0 /MB [ 0 0 1506 879 ] /R 7 0 R /W [ 0 0 ] >> endobj 9 0 obj << /Fi [ 6 0 R ] /P [ 8 0 R ] >> endobj 10 0 obj << /Dm [ 1506 879 1506 879 ] >> endobj 11 0 obj << /Me 10 0 R >> endobj 12 0 obj << /D [ 9 0 R ] /MS 11 0 R /Type /JobTicketContents >> endobj 13 0 obj << /A [ 4 0 R ] /Cn [ 12 0 R ] /V 1.10001 >> endobj 14 0 obj << /CreationDate (D:20040106222908+01'00') /ModDate (D:20040106222908+01'00') /Producer (Acrobat Distiller 5.0 \(Windows\)) /Author (c102mk) /Creator (Dia v0.91) /Title (D:\\data\\michael\\progs\\perl\\xims_sf_cvs\\xims\\documentation\\develo\ pers\\class-diagrams\\dp.dia) >> endobj 15 0 obj << /Type /Metadata /Subtype /XML /Length 1289 >> stream D:\data\michael\progs\perl\xims_sf_cvs\xims\documentation\developers\class-diagrams\dp.dia D:\data\michael\progs\perl\xims_sf_cvs\xims\documentation\developers\class-diagrams\dp.dia D:\data\michael\progs\perl\xims_sf_cvs\xims\documentation\developers\class-diagrams\dp.dia endstream endobj xref 0 16 0000000000 65535 f 0000010021 00000 n 0000010051 00000 n 0000010093 00000 n 0000010158 00000 n 0000010221 00000 n 0000010243 00000 n 0000010293 00000 n 0000010334 00000 n 0000010409 00000 n 0000010461 00000 n 0000010512 00000 n 0000010548 00000 n 0000010624 00000 n 0000010690 00000 n 0000010985 00000 n trailer << /Size 16 /ID[] >> startxref 173 %%EOF xims-1.0/documentation/developers/class-diagrams/objectclass.dia0000644000000000000000000000554407776627170023751 0ustar rootroot ]o8WC[t0AdNhE-%'^o_RRDZQVW>ZPzII9^-sAnuO|h~p蔑Mh7TXRhtnW4&١]*hcKui z9H/(ZK,?zci|ݿ5vp)ߜ+G{ɔt&q2gdKhNld'@[W0 #.mB 92d3B ,'pEĎn-$Bx*Q2*MɲpSesi5k>87buO?Vav vqbH3Zu8"^޳#_ *Pxa])g%F:5-Rz{ K67՜|u+l|`Ԭa%JPa%oA -=lq8Yw]oXlM1#l$l%g`uNDkQF܀$eE.L'xa͙~lYǿ6ᒑta Ǜ-!dAYUu[큔XdL$H{XQ ; yBp ÄOy#tT$|]}AY,Hy8Xzpܻ{U@zII$N ! Pp;I!/uf @^,\;pepN~) _6;t ۤ;wD4&EV); HO.ό@y!_1xrې+-" g ,y1_;@2"r@|Ms8;_.^L\ Wa*edN`.0exr86> jҰx0w'Ķ4Od~z#@Դɧr9PCiP_e,%c <'{R)K72md?v62)%i+IǙXV=d8H5lDp"ۣj/P,`YX]'?qؖmn%,Q4Hɉ-l Ш?iwL'?2SzaDfAS]u%+qz @k~+DJRG#y.}JL4m4kW@hRvM,}<#$5h'qar.q[gu.ftokV'iț2:_LvRf6v65l<.@ڙm}gfҎdCZ ]/mfOʬ3ʐS^YZWӗ!Rm9^;VvV>+ kSuf辎ɠUM<^;] IV朇Ynm5~Qݹ;^{ IV枇ir:s:_ʼjR `egheNkVvp OX"&+]RRwB*HR%7`/B3(s2Ia?xgymrhFXCA`.зk"\Y,Epxims-1.0/documentation/developers/class-diagrams/objectclass.pdf0000644000000000000000000003053307776627430023760 0ustar rootroot%PDF-1.3 % 16 0 obj << /Linearized 1 /O 18 /H [ 710 175 ] /L 12635 /E 9841 /N 1 /T 12197 >> endobj xref 16 13 0000000016 00000 n 0000000607 00000 n 0000000885 00000 n 0000001042 00000 n 0000001176 00000 n 0000001548 00000 n 0000002089 00000 n 0000002128 00000 n 0000003830 00000 n 0000006995 00000 n 0000009672 00000 n 0000000710 00000 n 0000000865 00000 n trailer << /Size 29 /Info 14 0 R /Root 17 0 R /Prev 12187 /ID[<22ad79ba821b6507e9a69da0cbab1789><58ba60f7f4e60f7929014d8488ac0e79>] >> startxref 0 %%EOF 17 0 obj << /Type /Catalog /Pages 3 0 R /Metadata 15 0 R /JT 13 0 R /PageLabels 2 0 R >> endobj 27 0 obj << /S 36 /L 76 /Filter /FlateDecode /Length 28 0 R >> stream Hb``f``:J(-ĜPÞ/r[,?6(# ), endstream endobj 28 0 obj 65 endobj 18 0 obj << /Type /Page /Parent 3 0 R /Resources 19 0 R /Contents 23 0 R /MediaBox [ 0 0 1372 1434 ] /CropBox [ 0 0 1372 1434 ] /Rotate 0 >> endobj 19 0 obj << /ProcSet [ /PDF /Text ] /Font << /F1 21 0 R >> /ExtGState << /GS1 26 0 R >> /ColorSpace << /Cs6 22 0 R >> >> endobj 20 0 obj << /Type /FontDescriptor /Ascent 629 /CapHeight 562 /Descent -157 /Flags 35 /FontBBox [ -28 -250 628 805 ] /FontName /CNJKOB+Courier /ItalicAngle 0 /StemV 51 /XHeight 426 /StemH 51 /CharSet (/X/I/M/S/colon/O/b/j/e/c/t/plus/s/l/f/r/o/u/underscore/y/p/parenleft/par\ enright/space/i/d/n/w/g/h/a/hyphen/m/U/v/k/F/C/D/L/T/A) /FontFile3 24 0 R >> endobj 21 0 obj << /Type /Font /Subtype /Type1 /FirstChar 32 /LastChar 121 /Widths [ 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 ] /Encoding /WinAnsiEncoding /BaseFont /CNJKOB+Courier /FontDescriptor 20 0 R >> endobj 22 0 obj [ /ICCBased 25 0 R ] endobj 23 0 obj << /Length 1627 /Filter /FlateDecode >> stream HWnF}W1iZ)R̓T@RDJ(!چHsιm],z(WHf"ƍ!H8GqѕU)]ݯuD+o_#NP.+^0DkWnV=["_q3ΡBZ\U2W=6;՛?ܭon>mjںC-qnr "ZLSo~."+EݘvDZcƐ%Ŭ&SZ.O7_D#hCdy=l@+*ͫ8K1<|Sr>_ez ={J*9&Kg~NIKpEPtJPPERU<[&_ CC>abmFxAE>١ /˛E880$8':RE{>iU|,Yu~ ^&>>S2Y|J3omb%"?,.vnFa{wcx)+(tҔ@䑥X1cv:[dw`0E)g#^l. ^Ġ,RE l!`jeje$QL '~7 ,>Af=$.IN]Mϵs@k5\aQDr ީ.]m!k"(T"SC{В8Au*,>|+z*\HҙaJ+P2F/փÚ4tbm zm 7BȢTJ y1dߢHDg'0vt#e ;bE,-KfhǛ->rŪ hH8&J6GqΈjٓ/)ck *AsFF.'o2Z^A_61|Drg5cfQX䑓G*bS+{ Ac3{ ZnièrYN~n[sSU~BVڏeBk+ % DGh(P>_P},*;8[xY/zS,Gj!:V["k1h,pB q׼5o:z)?BXqC5T(8` EJy(Cj% ~>&(E!b ˝Sa=Z\{u8%DK?.p_9MkS⬪58OCq֏",#bß Fek8jli{LwnRo_ u ; 4k>4[ P.\&?v]U/~}߃ ߋ[x翄i@NߩE n܎ǰR: n؂)UǠI1ӃI+,TfK@D"Ǒ˰y2fZKίy>zTWA endstream endobj 24 0 obj << /Filter /FlateDecode /Length 3073 /Subtype /Type1C >> stream HdU P岻n"P@|" B.JؚT1`0PQ0GjT:Z'gsgՙNgwsew7eYST\ s#EY}>ӫ? ZhfX8Ğ*{̱AaaԆMt o qP,Kfy[Y`/,/_bwD^w3rwbVQJa bO120o2(c d Ƅ1L41osRG ed3^:;-bx7?Xn =s_p!Yv O:_Cf0szbmχKIlda.o{ʧ܉FYPE O `6J_kF B%%B__!QcF3 Q00 5a z:# 2` AҞ'W.]]WxѿWp 4rȆx?z$WUV0B67A#X?k%~z}'gHRnM4}Tt[֫lQM3s5JjݖvܪcqD{FM>YE=.Y[g FEJ̄xثw{΂ NA]"v(b$!A0C!9qQNy0SX~ݦ?vbg&DK/BMEmiR_yNUI\5궖Pk*ӗV.1498*Ĝ۞V!‡/- M*e*6["-z+Kw}c؏#ۂX Ua Cev<^FM>A/_ TؠKGJ3|w&@]gԍ1(e%6} -6Xisu,-FVi 2QsX㏔h 2~ے s-*OثEW.Vb3WtIi/z ߟA1殺4f0JR@ ,ޡf`4Ps~(F4!: !. /MD4@'S&~&@2B0NA0CBEBY!_cK> O1, LbIL6M:7X5r5sW=&ˋ endstream endobj 25 0 obj << /N 3 /Alternate /DeviceRGB /Length 2575 /Filter /FlateDecode >> stream HyTSwoɞc [5laQIBHADED2mtFOE.c}08׎8GNg9w߽'0 ֠Jb  2y.-;!KZ ^i"L0- @8(r;q7Ly&Qq4j|9 V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'Kt;\ ӥ$պFZUn(4T%)뫔0C&Zi8bxEB;Pӓ̹A om?W= x-[0}y)7ta>jT7@tܛ`q2ʀ&6ZLĄ?_yxg)˔zçLU*uSkSeO4?׸c. R ߁-25 S>ӣVd`rn~Y&+`;A4 A9=-tl`;~p Gp| [`L`< "A YA+Cb(R,*T2B- ꇆnQt}MA0alSx k&^>0|>_',G!"F$H:R!zFQd?r 9\A&G rQ hE]a4zBgE#H *B=0HIpp0MxJ$D1D, VĭKĻYdE"EI2EBGt4MzNr!YK ?%_&#(0J:EAiQ(()ӔWT6U@P+!~mD eԴ!hӦh/']B/ҏӿ?a0nhF!X8܌kc&5S6lIa2cKMA!E#ƒdV(kel }}Cq9 N')].uJr  wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó ti zf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4 n3ܣkGݯz=[==<=GTB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY .=b?SƕƩȺy چ k5%4m7lqlioZlG+Zz͹mzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś nLl<9O[$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km endstream endobj 26 0 obj << /Type /ExtGState /SA false /SM 0.02 /OP false /op false /OPM 1 /BG2 /Default /UCR2 /Default /TR2 /Default >> endobj 1 0 obj << /S /D >> endobj 2 0 obj << /Nums [ 0 1 0 R ] >> endobj 3 0 obj << /Type /Pages /Kids [ 18 0 R ] /Count 1 >> endobj 4 0 obj << /Dt (D:20040106224240) /JTM (Distiller) >> endobj 5 0 obj /This endobj 6 0 obj << /CP (Distiller) /Fi 5 0 R >> endobj 7 0 obj << /R [ 1200 1200 ] >> endobj 8 0 obj << /JTF 0 /MB [ 0 0 1372 1434 ] /R 7 0 R /W [ 0 0 ] >> endobj 9 0 obj << /Fi [ 6 0 R ] /P [ 8 0 R ] >> endobj 10 0 obj << /Dm [ 1372 1434 1372 1434 ] >> endobj 11 0 obj << /Me 10 0 R >> endobj 12 0 obj << /D [ 9 0 R ] /MS 11 0 R /Type /JobTicketContents >> endobj 13 0 obj << /A [ 4 0 R ] /Cn [ 12 0 R ] /V 1.10001 >> endobj 14 0 obj << /CreationDate (D:20040106224240+01'00') /ModDate (D:20040106224240+01'00') /Producer (Acrobat Distiller 5.0 \(Windows\)) /Author (c102mk) /Creator (Dia v0.91) /Title (D:\\data\\michael\\progs\\perl\\xims_sf_cvs\\xims\\documentation\\develo\ pers\\class-diagrams\\objectclass.dia) >> endobj 15 0 obj << /Type /Metadata /Subtype /XML /Length 1316 >> stream D:\data\michael\progs\perl\xims_sf_cvs\xims\documentation\developers\class-diagrams\objectclass.dia D:\data\michael\progs\perl\xims_sf_cvs\xims\documentation\developers\class-diagrams\objectclass.dia D:\data\michael\progs\perl\xims_sf_cvs\xims\documentation\developers\class-diagrams\objectclass.dia endstream endobj xref 0 16 0000000000 65535 f 0000009811 00000 n 0000009841 00000 n 0000009883 00000 n 0000009948 00000 n 0000010011 00000 n 0000010033 00000 n 0000010083 00000 n 0000010124 00000 n 0000010200 00000 n 0000010252 00000 n 0000010305 00000 n 0000010341 00000 n 0000010417 00000 n 0000010483 00000 n 0000010787 00000 n trailer << /Size 16 /ID[<22ad79ba821b6507e9a69da0cbab1789><58ba60f7f4e60f7929014d8488ac0e79>] >> startxref 173 %%EOF xims-1.0/documentation/developers/class-diagrams/sax.dia0000644000000000000000000000425507776627170022246 0ustar rootroot ]s6_pD `ܴәf#Ees9п1XF$!YZ˿]ʄQ٠q$,^7㗫cF{*ɼus~}*!%Jh?9i77WIJ i*hFL9"їx_ .d+wپy~tm1YP2_)ZZ?sR(ݏ޻?*Ή8g%)pPTiK !SIX )׬RUY%9<We0ai*~jL%i{6Ngoon`UW[X䰪ġ.٘&fw,@~NvIdEes$Gb7\?>6$I+[;nGPzمxjA4ma$re5?pסY5t>VA3nʟbG]#63ʦ Uk_}?W+U~V)KIRIF@5x)<ϕ3"#nFfI2{=:`{c}],IKXt9{͊O$B|qyV p9~KW}M-)v}qUE;ȇA经G6Rkrx$][Q>9{W6jicY**yL Ar?oae7 CK,c }~[&S FܣpQ1̎G1Oo3rPPYb&z`&vlf,U.rZ꠺T56zߧ[]J \cxpرB5:<KV!3! Nn7S*b ƂQv(sA>IkU_PiMk׻ ɠfg\od]]##G13- 2Q-kG$.B|y0 v^%+;avp-:qZR)ʳyww䶗gkO+.@y'вn> endobj xref 16 13 0000000016 00000 n 0000000607 00000 n 0000000885 00000 n 0000001040 00000 n 0000001174 00000 n 0000001542 00000 n 0000002083 00000 n 0000002122 00000 n 0000003624 00000 n 0000006696 00000 n 0000009373 00000 n 0000000710 00000 n 0000000865 00000 n trailer << /Size 29 /Info 14 0 R /Root 17 0 R /Prev 11853 /ID[<3b9f6eea8b188e9ecb715ae3e75f9f6b>] >> startxref 0 %%EOF 17 0 obj << /Type /Catalog /Pages 3 0 R /Metadata 15 0 R /JT 13 0 R /PageLabels 2 0 R >> endobj 27 0 obj << /S 36 /L 76 /Filter /FlateDecode /Length 28 0 R >> stream Hb``f``:(-ĜP/2 *@ = J endstream endobj 28 0 obj 65 endobj 18 0 obj << /Type /Page /Parent 3 0 R /Resources 19 0 R /Contents 23 0 R /MediaBox [ 0 0 1667 828 ] /CropBox [ 0 0 1667 828 ] /Rotate 0 >> endobj 19 0 obj << /ProcSet [ /PDF /Text ] /Font << /F1 21 0 R >> /ExtGState << /GS1 26 0 R >> /ColorSpace << /Cs6 22 0 R >> >> endobj 20 0 obj << /Type /FontDescriptor /Ascent 629 /CapHeight 562 /Descent -157 /Flags 35 /FontBBox [ -28 -250 628 805 ] /FontName /CNHEAP+Courier /ItalicAngle 0 /StemV 51 /XHeight 426 /StemH 51 /CharSet (/X/I/M/S/colon/A/G/e/n/r/a/t/o/C/plus/s/l/f/p/parenleft/parenright/space\ /g/underscore/c/i/hyphen/h/d/m/y/w/u/L/b/F/D/P/v/k) /FontFile3 24 0 R >> endobj 21 0 obj << /Type /Font /Subtype /Type1 /FirstChar 32 /LastChar 121 /Widths [ 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 ] /Encoding /WinAnsiEncoding /BaseFont /CNHEAP+Courier /FontDescriptor 20 0 R >> endobj 22 0 obj [ /ICCBased 25 0 R ] endobj 23 0 obj << /Length 1427 /Filter /FlateDecode >> stream HWnGWQNV:6X`Jt$#WݯkzU};=:<2]r~&1hҚk1DGa,Y%tz:c"ͦ'L-Τ`w=$Y)UFå2g3_%*pm\.^qcJXnElMxK=,Mg?}J.;,NCNS;M~'vM %YT}!5$]) g *^rn}1۬FMHgm7  l2K{6=!rM8lcccr[6V);;#H4|Zo;~{?5/Qs0%Cpa;Y\`lBJL')rQ6׽¡ 3|"%: 7 5b6XɅm!si}!ᯉJ11U] ϭ%q{u\EێN t!lz1<ڣ]P Zr,gBզ$uX{~`^&k!q~DU ך} 80a,QF 1!1_eKD")d건 ):Dh2aE7.-϶^*qD]eW,$ a`E W,6IhR-p#wzU c a1 v rtVqFYbZ+ʹa@o;RE X`b&ƂTO#K n TS6]S^ڥ0j{{UyU4c6V5x;j 3"S{l`"UG,aHHdqr> stream HdU PgaTj)wndGg ˀ Q%#g$F90i"(<$DG-ATWm3cy?Xu{XсaY%<.jNh+KC.YXQlڈ[_/[9vG1w [._GmȤa0l{v nŖ<+J~Sl-)f˝ZX8\ꖘWg-ߚcX0#Xƙa #1; 3eYf&BP!\9-qjs#CFyiԈQGU_a41$~)eF: wAqf7|*N&:F)7X9K:}Qoq(Գz zHPkiUha'a<&$A ^r‚tZ&,7 50 (>E9CUɋ,k(9~d;~ @m4l|FQӤ㵻VӶڲu?6 bخuB#w=1ֺJ8V'` b{-0Z *OYiީM7= t8v2C߹W{W#>M:fl*A̠S5q")5a#ƗM=sysq顗LUt?09FRnK^tkoLf|iZ]$?PkWc=rIնz%tp{Dj+t>YJKh.|*>?cwrWagrvW[uNRL~XpelʹE{ 87́c ^b*xL"/-5-_ @O`:޳u/B}d~(\|<w-)E8Hf58iKj?B͡Vi:Qs>[\SVC2I3%mk@K*Wɐ2C}fUH Z9KRH͇Nv74쬕i`cSWrg#v|pMݖ{$j2*7<=lb{8Ot54JwƎNK\]NJ2aq_dJS_ۘ%Ӌ91hvF {ݖ';v@-vϱ1Iz5|Kɺ&jE/Dw0Wo}Qv5([A |vD9 ~._O(|YtGM>t&̄,A>WbXfذj>j!m~ȄVȠ4Qi&lk(2o!N De$АHTzI5+D|#$x2H V}^uԃkpogR]|%S]X4p endstream endobj 25 0 obj << /N 3 /Alternate /DeviceRGB /Length 2575 /Filter /FlateDecode >> stream HyTSwoɞc [5laQIBHADED2mtFOE.c}08׎8GNg9w߽'0 ֠Jb  2y.-;!KZ ^i"L0- @8(r;q7Ly&Qq4j|9 V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'Kt;\ ӥ$պFZUn(4T%)뫔0C&Zi8bxEB;Pӓ̹A om?W= x-[0}y)7ta>jT7@tܛ`q2ʀ&6ZLĄ?_yxg)˔zçLU*uSkSeO4?׸c. R ߁-25 S>ӣVd`rn~Y&+`;A4 A9=-tl`;~p Gp| [`L`< "A YA+Cb(R,*T2B- ꇆnQt}MA0alSx k&^>0|>_',G!"F$H:R!zFQd?r 9\A&G rQ hE]a4zBgE#H *B=0HIpp0MxJ$D1D, VĭKĻYdE"EI2EBGt4MzNr!YK ?%_&#(0J:EAiQ(()ӔWT6U@P+!~mD eԴ!hӦh/']B/ҏӿ?a0nhF!X8܌kc&5S6lIa2cKMA!E#ƒdV(kel }}Cq9 N')].uJr  wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó ti zf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4 n3ܣkGݯz=[==<=GTB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY .=b?SƕƩȺy چ k5%4m7lqlioZlG+Zz͹mzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś nLl<9O[$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km endstream endobj 26 0 obj << /Type /ExtGState /SA false /SM 0.02 /OP false /op false /OPM 1 /BG2 /Default /UCR2 /Default /TR2 /Default >> endobj 1 0 obj << /S /D >> endobj 2 0 obj << /Nums [ 0 1 0 R ] >> endobj 3 0 obj << /Type /Pages /Kids [ 18 0 R ] /Count 1 >> endobj 4 0 obj << /Dt (D:20040106224230) /JTM (Distiller) >> endobj 5 0 obj /This endobj 6 0 obj << /CP (Distiller) /Fi 5 0 R >> endobj 7 0 obj << /R [ 1200 1200 ] >> endobj 8 0 obj << /JTF 0 /MB [ 0 0 1667 828 ] /R 7 0 R /W [ 0 0 ] >> endobj 9 0 obj << /Fi [ 6 0 R ] /P [ 8 0 R ] >> endobj 10 0 obj << /Dm [ 1667 828 1667 828 ] >> endobj 11 0 obj << /Me 10 0 R >> endobj 12 0 obj << /D [ 9 0 R ] /MS 11 0 R /Type /JobTicketContents >> endobj 13 0 obj << /A [ 4 0 R ] /Cn [ 12 0 R ] /V 1.10001 >> endobj 14 0 obj << /CreationDate (D:20040106224230+01'00') /ModDate (D:20040106224230+01'00') /Producer (Acrobat Distiller 5.0 \(Windows\)) /Author (c102mk) /Creator (Dia v0.91) /Title (D:\\data\\michael\\progs\\perl\\xims_sf_cvs\\xims\\documentation\\develo\ pers\\class-diagrams\\sax.dia) >> endobj 15 0 obj << /Type /Metadata /Subtype /XML /Length 1292 >> stream D:\data\michael\progs\perl\xims_sf_cvs\xims\documentation\developers\class-diagrams\sax.dia D:\data\michael\progs\perl\xims_sf_cvs\xims\documentation\developers\class-diagrams\sax.dia D:\data\michael\progs\perl\xims_sf_cvs\xims\documentation\developers\class-diagrams\sax.dia endstream endobj xref 0 16 0000000000 65535 f 0000009512 00000 n 0000009542 00000 n 0000009584 00000 n 0000009649 00000 n 0000009712 00000 n 0000009734 00000 n 0000009784 00000 n 0000009825 00000 n 0000009900 00000 n 0000009952 00000 n 0000010003 00000 n 0000010039 00000 n 0000010115 00000 n 0000010181 00000 n 0000010477 00000 n trailer << /Size 16 /ID[<3b9f6eea8b188e9ecb715ae3e75f9f6b>] >> startxref 173 %%EOF xims-1.0/documentation/developers/xims-access_control.html0000644000000000000000000003760110276674152022737 0ustar rootroot Access Control for xims

Access Control for xims

Christian Glahn

christian.glahn@uibk.ac.at


Introduction

If many user of different motivations, skillevel or institutional position work together with a content management system, the system must check for each single data access, if the current user has the right to do such operation. For operations like delete or store, the reasons for such control is obvious: Not every user should be able to modify any data stored inside the system.

In case of XIMS there are many varieties of possible operations to describe a user's relation to the data. This starts with a simple 'read' access privilege telling the system if a user is allowed or not.

This document will cover access control in XIMS. There will be two main sections in this document: One will describe the privileges and what they describe in case of the three major object types known in XIMS: container, text document and binary document. The second one (?)

The Privileges

XIMS implements the pivileges as bit-mask stored for each object and role. All privileges are stored as 32-bit integer.

The following list shows the object privileges currently defined. The symbolic names for the numerical values are stored in XIMS::Privileges (contained in XIMS.pm)

  • VIEW (Access) (0x1)

  • WRITE (0x2)

  • DELETE (0x4)

  • PUBLISH (0x8)

  • ATTRIBUTES (0x10)

  • TRANSLATE (0x100)

  • CREATE (0x200)

  • MOVE (0x400)

  • LINK (0x800)

  • PUBLISH_ALL (0x1000)

  • ATTRIBUTES_ALL (0x2000)

  • DELETE_ALL (0x10000)

  • GRANT (0x1000000)

  • GRANT_ALL (0x2000000)

  • OWNER (0x40000000)

  • MODIFY (0x43012F17) (combination of VIEW, WRITE, DELETE, ATTRIBUTES, TRANSLATE, CREATE, MOVE, LINK, ATTRIBUTES_ALL, DELETE_ALL, GRANT, GRANT_ALL, and OWNER)

  • MASTER (0x80000000)

It should be possible to grant '0' privilege masks to users or roles. This would simply mean the explicit exclusion of this role or user.

There are some leaks, where currently the numerical value is not assigned to a certain privilege. This is because I tried to cluster the privileges. It shows that this list is not considered to be complete.

There are some privileges that have the _ALL suffix. These privileges are ment to be document-wide while the others are just content related. For example a user who wants to delete an entire subtree of a folder, but has just the ordinary 'DELETE' privilege, can't do so since this would require the removal of the major document object (stored in ci_documents).

The grant-right is somewhat more complicated: If a user wants to grant a certain right to another user, the grantor needs to have the right he wants to grant! This is to avoid users granting privileges to others they don't own themselves. Any ACL-implementation should follow this to avoid security leaks.

The last two privileges are more symbolic roles in the content. They are not defined as 'real' roles, so XIMS can implement multiple ownership and general administrative privileges on subtrees. The owner flag shows that the current user is the owner of the current document. This should be a workaround for the missing document-owner. This flag implies 0x0300031f (which is a combination of the xxx-privileges) on all content, which means the owner is entitled to perform simple operations on the document.

The master flag shows, that the user is the master of an entire subtree. This implies a privilege mask of 0x0301331d. The master flag is for administrative reasons mainly. A 'master' has also the right to grant/revoke privileges not owned by the master himself. As well the 'master' is allowed to delete an entire subtree regardless of the rights the user has on any child in the subtree.

Since the master is generally not responsible for the content he is not allowed to edit the content

Roles and Users

XIMS implements a cascaded user/role system. This allows fine-grained privilege settings for users and roles. The role system in XIMS is level specific. A role is more specific, the more direct the user inherits it. This allows users to have differnt roles on the same inheritation level. On a certain level all roles are equally significant. This means that all privileges granted to one of these roles for a certain object are available to the user unless a more significant role level defines other privileges.

For example: If the role of a user has full access to an object, but the user himself is explicitly not allowed to access it, he will be denied as a consequence of this implementation.

If XIMS can't find privileges neither for the user nor for his roles, the user is assumed to be part of the dummy role 'world'. This role is similar to 'other' in Unix systems. No user is directly granded to this role, but all implicitly belong to it. This implicit dummy role is required, since otherwise this role would overide the privileges of more significant roles of the user.

Access Control Implementation

The following section describes the algorithms, how access control is implemented in XIMS.

The access control in xims has four stages:

  • System Access

  • General Access Check

  • Operation Control

  • Display Control

Each stage represents the different level the system handles the object and user data at. While all access control is orientated on cascaded role definitions (see there) (?).

System Access

The first stage of access control in XIMS takes place when a client tries to access the system. At this stage the system simply checks if the client is allowed to access any XIMS data.

The basic operation on this stage are login, logout and session validation, implemented in the separate mod_perl module Apache::AuthXIMS.

Algorithm

At the start of each request the system checks for a session-id that has to be stored in a cookie. If the cookie is available and if it is valid for the clients host, access will be granted, otherwise the request will be rejected.

In case a session-id is found, it is tested if the parameter 'logout' can be found in the GET querystring the session-id cookie is unset and the user-request is rejected.

If no session-id is availablem the only possible data allowed is (POSTed) login data. If such data is available, the password will be validated by the configured authentication method: currently this could be either IMAP, LDAP or internal db-stored password.

After authentication is successfully passed, XIMS will test if the username is available in the system.

If the user succeeds, as a second step the session-id is send as cookie to the client while he will be redirected to his preset default bookmark (the item in the ci_bookmarks table where the default-flag is set). This default behaviour changes, if an 'askpath' cookie is found during authentication. In such a case the user will be send to the requested object, which allows client side bookmarking objects stored in XIMS like ordinary web pages. (needs more explanation)

If neither 'askpath' nor the default bookmark are found, the user is sent to the configured ximsDefaultStartPath. This behaviour is ment to be changed to a redirection to a user information page.

All rejected requests will be send to the default login page.

General Access Check

This is a simple test, if a user is allowed to access a certain object. While this test is as well general and affects all operations on the object this is implemented in the event_init function in the XIMS::CGI class. (?)

Algorithm

It is tested if the user or one of his roles has the access privilege on the object. All privileges of roles on the same inheritation level, will be ORed, so a user will not lose privileges for any of his roles on the same level. This is only done for roles on the same inheritation level, so one can define exclusive privileges for special roles or users. This is nessecary for example to create exclusive lockouts like "all but not my secretary".

At this stage all privileges for a certain object and user are loaded, but only the access privilege is tested for. These privileges are bound to the object. For document-like objects it is irrelevant if this information is set to the user or the object, while container have a more complex structure and require to have the privileges set seperately for each containing object.

Operation Control

Due operation control XIMS tests if a user has the permission for a requested operation. Since this test is related to the operational event it should be implemented there.

Algorithm

First after the basic event initialization it should be tested if the user has the required privilege(s). If this privilege can not be found and the user is not administrator, a message should be set and operation execution skipped.

If the privilege is set or the current user has administrative privileges the operation should be executed.

Display Control

While all other stages of access-control are required for all objects, the display control stage is only needed for container objects, because in that case the child objects are loaded to be displayed. The concept of XIMS is not to show data that is actually not accessable for the user. This affects even the DOM.

Since this information has to be evaluated partly by the stylesheet, there has to be a simple implementation of a "display access control" inside the XSLT stylesheet.

This means if a certain user or one of his roles does not have the access privilege for an object, the object should not appear in the DOM.

Algorithm

After all child objects of a given parent are loaded, the privileges for each of these objects have to be loaded for the user like it is done on General Access Check level. Each child the user has no access privileges for should not be added to the DOM later being rendered to the client.

The stylesheet has to decide, whether certain Operation Widgets / Buttons should be displayed or not.

The Algorithm differs slightly for parent objects. Since these objects are relevant for the path, they must appear in the DOM. After the parent objects are loaded all the privileges for the user must be loaded and set to the DOM. The stylesheet has to avoid offering a link for this object.

Display Control and Stylesheets

Display Control is not only application related. A part of the display control has to done by the stylesheet. Usually this is related with operations which are related to the user interface.

For this, XIMS provides the privileges available to the current user in the administrative DOMs . This is split into parts: The user part, which holds the system-privileges, kept in /document/context/session/user/privilege.

The second part are the user privileges for a certain object. This information is kept in the privilege section in the object. Therefore each object has this section in administrative mode.

Inside the privilege-section each privilege owned by the user is presented by an empty tag where the tag name is the lowercase version of the privilege. E.g. XIMS::Privileges::VIEW will be found as object/privilege/view in the DOM presentation of the object.

xims-1.0/documentation/developers/xims-data-diagram.dia0000644000000000000000000002001207775063010022021 0ustar rootroot ][o9~2Ah/,d[hc[lEPlY de2هݲ[օ m%jLJ]_Eus]s0n_?#? n/F۫u~.WոS߸g&ϯ^+vןz ^_vz/~A2?| jg^f߸]Ƶ?ׯy򷿽n9σ=ϣ}6=o>%e}M|5HgP)Q\G2Bex<O$a4oSb.Vsu |N&2)>Jx9\ {TSN^$·(/ݢX?<^%Rv6gZ-{'Ӿsч\LЙo/گ_|xTMHiI]kD*}p +$HbeB%$f]Mb4w/`g dOէɼ5a9fk{[{nT+.?^kon\˛|ruMJpG|qǑLAbP w)&QȸYLܣw"BpuN} >n.F_Cp%jwo;UDu"(ZE"SϺTlpu{3/71|yP_ 3I<20F,l:ZjwYI>/&P{:sؾ`v[NW(/~owe}vt{˸m4;٫dx3o>?/j_O/aAuvN{/#vѲӨ1eց|lQzxx;(pxiSs,?X̸ khJ<4u{^:YYU^|Yy`q(pʣDiz?z̽h,̐LrZWgNO*_DDnLD,ɼQ?y| ~Y v"v")$p"ds"<qcd]#* <%-Ʉ*%Su"g^"IBZYZXARS@"$5̒L(Iz`>&F}~V0)L oHw9d")I8Mzg 9i4{gͲ /rinwGG=/* Ͷgl$ Cz+#$P#ƴ" K$/ Q%!nHT(O2Qh@EȇVm @څ<+!it2WB5l?J 0عBƢL ,+ɓLrzdq]IQb?+!ޫ^iTD I2\L:K)o^QQh)fjy"fXc$X=0Pk xa/nq]Mɛ@oexX4ۙ}{i@$ 6w==|wnJS7b3* iXsYHjC}1B"̹H^aLc#ݔj H4I&y=@Eɗ<)~ FA4+YJ2W3,+)J> Bwd-Q =UC\dp~0R)px @$=5/~Rm>;Ce< ާ^y(J@XPUDWR| ,ά  =U<$Gb(aVw)8CD aCu3@$%H Zuj:Jv&P%.QjHdDնPNRjĕUb$Z ,"}j;* SV&gr ө#8@[Y۸ }ڧl|6J<{.q>GV|~ش'S 'qm5<:kwZO읿jŜ@9$_'!&;vgEfg w7l?Wf\J'tκ@l}*`pY7X)4@;7J$VrmsX =qor…%@yɃ_@EȋVnq%ھ-fG)6!J !UڕWd/̓Lrz^qjWR @>-wd@VHM` eTDJ $ R_4ms8u2T%obr@10 { 6m ;ovAN}\œJ)sŘ$NK@bM>_Xy?n>lkNs|=nwvgw}UJ.,:~J/{~:<?m8}4$=XKD@OKqJ"+ؑ I+ Ү%s @yIN>,r%dȇ񶥥fHPcgH!/$W)IbI&q⪩3r@c缧%Y)΢aLo&`#AI;jXwa"nV*7`Z*P[KIChL\TEARLՏ8'>KouzG mNTI][y:]QU39L$( F'( GDb(Dk;ѵTT@yINLc@E=-~Lq%ҾO;r *WQ%Ʉ6Εd,$+)H^L:2!$S'ȴ x29¿Bs kvsSH$VPК?n-V{E.%T]\?mI*GxMX9`0D6Pˑm5 YM席E7n󰂹05oe.GЀ{{fdJgFbu\1iKg'j]̞Dݙalٛ@l{FHadi*u*eHxƂrmK~ň! BxZS5hʓLz4&/0!BYB1C0NxJؔJ#fPs%kHE"EyIN>C:cQAzި^X(ⴰҢ(Bh^~6Lcn8v'ϐ&ڊU7QP+Y&jܼMVI5 s cu)45 h;1Q +M}w*w>l:_n6N^&Ûݤ9~Q:|}kjk_읶E`Wmwp W:<y[zot{붺=_mqV6;8ozF{}gShl%58bc4WK1Z[=Us]WKR|e{ݻu[,02f&4fd~yXOzmOːJ  D z $558msICBE *gd1E:}$$=XS=@v Xռ')!3GLirLX켡o+aAVL(O2уZVg.?6G_(x/r`i(k&pa:pfӄ+ħ,L:%/Wn0N V^<}]/9Dzp{UI?ENI?O^)SuFEpd$Q* nSj}X"DODUd7vdG4PA^1,AO DkuB1")IM4C3S'2EbUa c; z1(aHGK;JY²4yVvjOӜ!^!P3s]aatB1Bi`} v*-GwsG7M !"WyEJB)G&Q2v.5Dp([b̨K>CKm|oOلM2|0 &Kl{KXn#M,؄w`%RDXw8h=v3Za-T]D`qJ1$V #.sX\2K"P*#WHBIJ`̲P† ?J^Cid[\P_!@GмܨLQ)Cc&&2 :XXqfͽz,iX!6Hi$R2,INH`p=n+SvxhHV0%D;eIJlfE]Vn}BFJהKB&^=v\a޳. 2 U] E6GHr$u;2҇EB+ҭvd6.oHaĖ$ /̵ko ={8;VBtt f4Ґ!%ɐ \G!nfȘZH \]je\cٿSR:a X Zaӎ&Ι )aNC񿔓@e [ytIHR$-D\{7u7C”-Yܘ(c5&1l_(Bǭ"!nëniל;MrK+#Xml~tR*LiԽ5@ HY L'v&B2|3qmT4A0l0$% HɆv$!L6tB{h7=pTp- uegBGEuu79RLH57d:3 n]ЀUk؆*#م4HE Ul.ޜ7Nf#H[j, P8(8P9PXCL(¢֚mDt9t)wKm!39D H²؆>;6jnhWF”6RN FKP' G#aI&fm?!CmP:Nl0ހmtJۆr6Tm(n_k28U*wKmC;(T"H8G`JRFKJWȍiwϪ R IZ1L Q1-H݆`"U٬T1i HNG Ⱦ iɔ <ɱ|#He*R ev#qa((|2N؆* 햚8@Ua*Q6TqxFKԥM ݨ0n]9cHu#He,G0Nr-qIhk P$%@*h V,>Z'7PxK-Dyə6Ċ=E˚jÑUz-pa:*dn8%I-DuiE=X<Ϊ75񖚈 kT)L#͙#i$LYƂ{l"U\Tچdn9[oq&W ׉S Zq흽?nu~oWo-Kƕ@Bsi1kpI,,VNڇV5M%Pi,ס  gF߀$C’LZ쎅`>x|[I3 Xi$(0⚹ۃX``(٠88-5APӓ* Z&?{I[*Hm8\G_>/7_ὒm#Sz.LB$Hr)cpew1Ѥv4˯ p^@[ۡr]:[z`v>>/}۔de]w*-tK#TH$DPv m\`H@<Ϛy럝GWtS?NwMo`4jwp0/3 iZ Me\rY1᫚كxoZ YΘf>iwY}vwӿϪ53քD A#TDqXk&DB@}uߜEld(}Y,n/Rn+{/$T GJѐ@0鐛șz1r"gWec|vxlT2VӬ`b&PۙaI\(g*SQx !07oHYazm'Lޔ^.> 1f > endobj xref 16 31 0000000016 00000 n 0000000967 00000 n 0000001277 00000 n 0000001487 00000 n 0000001632 00000 n 0000001940 00000 n 0000002245 00000 n 0000002691 00000 n 0000002730 00000 n 0000003275 00000 n 0000003296 00000 n 0000004114 00000 n 0000004135 00000 n 0000004927 00000 n 0000004948 00000 n 0000005700 00000 n 0000005721 00000 n 0000006392 00000 n 0000006413 00000 n 0000007273 00000 n 0000007294 00000 n 0000008146 00000 n 0000008167 00000 n 0000009041 00000 n 0000009062 00000 n 0000009820 00000 n 0000011628 00000 n 0000016310 00000 n 0000018987 00000 n 0000001070 00000 n 0000001257 00000 n trailer << /Size 47 /Info 14 0 R /Root 17 0 R /Prev 21196 /ID[<92e5e0eaafad08daff837b0d951b1c63>] >> startxref 0 %%EOF 17 0 obj << /Type /Catalog /Pages 3 0 R /Metadata 15 0 R /JT 13 0 R /PageLabels 2 0 R >> endobj 45 0 obj << /S 36 /L 108 /Filter /FlateDecode /Length 46 0 R >> stream Hb``e``cם bi(f`ee}!d'xJc 66@) :U 1j'j#s ${ endstream endobj 46 0 obj 96 endobj 18 0 obj << /Type /Page /Parent 3 0 R /Resources 19 0 R /Contents [ 26 0 R 28 0 R 30 0 R 32 0 R 34 0 R 36 0 R 38 0 R 40 0 R ] /MediaBox [ 0 0 3220 2693 ] /CropBox [ 0 0 3220 2693 ] /Rotate 0 >> endobj 19 0 obj << /ProcSet [ /PDF /Text ] /Font << /F1 21 0 R /F2 24 0 R >> /ExtGState << /GS1 44 0 R >> /ColorSpace << /Cs6 23 0 R >> >> endobj 20 0 obj << /Type /FontDescriptor /Ascent 626 /CapHeight 562 /Descent -142 /Flags 262179 /FontBBox [ -113 -250 749 801 ] /FontName /EPBHJF+Courier-Bold /ItalicAngle 0 /StemV 106 /XHeight 439 /StemH 84 /CharSet (/C/I/underscore/S/E/O/N/D/A/T/F/R/M/L/G/U/B/K/J/Y/P/V) /FontFile3 41 0 R >> endobj 21 0 obj << /Type /Font /Subtype /Type1 /FirstChar 65 /LastChar 95 /Widths [ 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 ] /Encoding /WinAnsiEncoding /BaseFont /EPBHJF+Courier-Bold /FontDescriptor 20 0 R >> endobj 22 0 obj << /Type /FontDescriptor /Ascent 629 /CapHeight 562 /Descent -157 /Flags 35 /FontBBox [ -28 -250 628 805 ] /FontName /EPBHKG+Courier /ItalicAngle 0 /StemV 51 /XHeight 426 /StemH 51 /CharSet (/I/D/colon/space/s/e/r/i/a/l/S/E/O/N/underscore/c/h/t/v/y/n/g/parenleft/\ three/two/parenright/U/R/A/T/B/zero/H/nine/L/C/M/P/m/p/w/o/u/z/equal/Y/f\ our/F/X/five/six/W/one/J/G/K/greater/V/comma/eight/b/x) /FontFile3 42 0 R >> endobj 23 0 obj [ /ICCBased 43 0 R ] endobj 24 0 obj << /Type /Font /Subtype /Type1 /FirstChar 32 /LastChar 122 /Widths [ 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 ] /Encoding /WinAnsiEncoding /BaseFont /EPBHKG+Courier /FontDescriptor 22 0 R >> endobj 25 0 obj 741 endobj 26 0 obj << /Filter /FlateDecode /Length 25 0 R >> stream HnA )|a<ǝHpH8DAjU*(I O_.P!F?^+ |yj`5YMb5:qeRpp<\Jo)gTAc> $O .|*Cֵ|<+9B@L\i[xo)e GTœI|lXRof"Lx]zQ )C?G|%aT(6+8#{^Zi:AR2Zݸ^X!ro]L\s+%u)CC= YhM> stream HUn0 }W1ND]0u5k@ (Cڇذ8nMs$JH{ i`@P.ƙEJFUO"fŕ"=+AyDP6$j@+\sYXͯ1Z?gIXiSXD_jy#S5Vk,qoty:ddնW d t,mW gUu9'IR⥜k]' zx/g$?h58NSu0_nRq9iKqpQSbOł)U]4WK"Ʃ0@{TNx~VVǭFnjpU:C!xNFfW[ 7^ݲ% ~]PWMhxlAU܌eI- [Rv嘫ug˿w=Ed<ԭ8r;u>ٷx{]%S㨃=&5]ߎ*U q]W(6 }ƟDl1eeq)S|Mwpo+`[nlr='6\=On&$ Xǘ2< MC|!6ֽ7f;dN󀔦)ZI7ú6*͑ ' endstream endobj 29 0 obj 674 endobj 30 0 obj << /Filter /FlateDecode /Length 29 0 R >> stream Hn1$U|݆5ն DkmH+h i}%@VBf#8]^jooBیk./q1hmncF$)rpq\u·qS^j2}'E8C=?*jd>X>mrXUV6nCvX/x{i:=}>kT uDuYaU?K:37âlGup>~l/I1bT+%Vn ^ fRsdM9ZBCuJS 03( %vNeY'slߺNe+Dos.&NX̕~Tp5b  {6lg0/l3/i=. $Ӳ?}=~\XM4s~<cr?a (7G/߫ah"/6zptPTG0P -7m9)PÒP ֈS 8IQHnkc5qX$M/'P&M"p oNQH)ô:.E_ \Hazc:>PM{jcK65(,cY1ˈMIOȠh.fRBg endstream endobj 31 0 obj 593 endobj 32 0 obj << /Filter /FlateDecode /Length 31 0 R >> stream HSێ0}W#Tkǹ"!7֒%F QRq -~}UV~qf9sA"N`epdPĶG=lYȰ ;6C T ( 8# 6&q)j$̴'epLYaW2@=8eQ*z#$Y< 'Tmyᴮ?: >n]yyXiޣK]qHfUMGSyhUf*W:jP~PVq'Ȣ\nU.YzϦYg]o.ua{B< `^(&œ.3ӇE]4=- ]'wDY8I䯤ˍ'_ID> stream HTNAW"5mFb7HHeY@#'(Tڻv|ڪꚩlT7l<7t4PrY?˧_WGN_7* ^]̦uxSz,.LƧu38_4hˁޯ7WGPMLJO@>l맷IPp8nNgh%ߵȪVGJ5Q򛟞WlEUF&^2Yu_ 1rWQI~"dkRbS4/i]c A(jyv_L@*[H ﴡ1>f#fdPquTV!,f˚u<`&F!+=B΅41-·4H!Q McK^;ȸ"a%(&w4}=a= O>e}!Z-VNhpP/0dؒ\XE#RR~lfZm1%m1-XեYŬB',*0쉦"$UW%V;d%~qB{Hm3@qبca$j 6O5%Ʋj,a\rCݰKڶZ )XFM,Jpٖ):,h7X# H%3b1!&ezAD^uUXMKwXI[b8$xSڃ%> stream HlKc9D絊!$zzڵi#oQ_#;2l>}! ZS|gdIeO3>q'@r>wrK(MudWPol G˘_&N vL'<:f(H]Rcx."M ],:&ٛTL ( 1Z 7Y>d.a%!mX"PZXZ=YH{Y{yN~ea@fe!me|:9jGy=捺̭f7~qڳytv`yL0ӻ,s x?q"qs 9+:r1P!Bqqڒh=b@r{q%$դ"~YZzd ZmZ~]pJ7Tgސcٿ!]V^?+'gk4\? V` endstream endobj 37 0 obj 796 endobj 38 0 obj << /Filter /FlateDecode /Length 37 0 R >> stream HtUˎ#7 +tLHяǘpkɇ`sfrHHL`mSEYO>d$%+'2G9Pa60B~rDw)[pgG{=9+pFTˀ yDY DG1&!,BgQV&ΔP(),r *aFA =eN=J&C[X(b0S)+TȑmAP +qiR)gB6Ȳ&SB$2Z0Z2Yf*ɭmڝȰT%}`bB {nx'qPsrl}vZ/qP p.8uwi[A% r86]/| f0C鉀Ѳ}H}(A騔N҂2Bl~TK-ѣ L>i项 GzG>@^+Ot]kLKs~"c(pyўbs0e.[ģk5-h"HÜ#o bLVqm6a,zxyB `[/%&H$T~rNs > stream HU]oA |_j\DkJB4M_jM77d &ׁn=<,ńP9o$nF$І(Ydӷd'Oefe,CN1h6LF AJt;83}Jb%R'1}a1}^VSLfihKxXlg'a zUoz9 {1Rwl3?.6l~}w1x{.!F w@dx#}=΃أzlˊ>Kj:biʩ{{޼!da3+.uȒv: ; Iځ%iZOiN(2$& u~OKWDSGH"vWǝ?[l 4@֦,ˬ|}dmfQ%'@ }-Tm Z m(fkͪiE? 3Ewފ Ґt endstream endobj 41 0 obj << /Filter /FlateDecode /Length 1716 /Subtype /Type1C >> stream HTT{TaNtWgW:6>PC&Uۢ`C^ R0%HԂō&)=Gh MM,у_rιseeCO]H;-JOP:.P} X|e c܅Y˔?Lj>,ae~R&%cpZ27g9sI2?=ݲ鴬;#rAL q$OM$x '}>Q[#5@THp o 96-KS A31ԁ{pu h] Oj)Lq23+2LVvi˟r,w˸h(V I) Lh@Kqpm{_& <}utDp,Q #a&j}W -4bZ5ZgF`,728g1su{y3d $&s2M/9`Lq`'Xd. ]>'[Ǟe˲k+Sa+|`,nӄT{$\g/yʎ-a2 %R\# ovmqV)PNN~\=ݧ|g|wUثCQBs(7<ҫ O¡+w:y6¶܃&Dtޘ8 mB W1DGCQXd2N6̙S(OH7v/_ U_%[5v@$W Me;kJbl;itߔ>dG*luim6KâϤo?O}'򓅉_'%*HF jPZ>$~]  Үdz1@0赙T6Q1XB' 4?=<*0ٲOe8zQXwqOvQDo}Cuv7*u􁏫R+8-GpÛ'GxӮO ({DBY\&0uxxePAv~rzVAj%ZA_\K{aavu<牯ӞZzn7(]zy endstream endobj 42 0 obj << /Filter /FlateDecode /Length 4590 /Subtype /Type1C >> stream HdUiTWꦪZn™n q׃QF!Ոqih- bP6MgDW6vpa $Qg :e^9SL̩Wߏw޽HEA$=7,bĐV:KzR"p,5wv h`> ηZRRs%0IA:q DA N23r3Y֕)^^^1sb9fk?r)p'Ibsb D XE$|T'&Ww"NHrRGMJoh[>FÈL#ӥ SmW=niW5yv=uG$h0Ͱa=&z${jq z»BlH)ލ gz`^-I t}\7VdOScJx $:ohu1"\49R\T>N⯤.o ӯYSU/[S|JTUˊt0"k!9oJ1k7:=rLم :`A -7oURoFҡ5$ Q")r*2g8(z3 ]AMQK V{_'*,(f~F3>HC+I;LJ)ܫÖm@ #,O4s4`kxh YBjUld{r"4dU={=>2'veVJ־yϱ0"$AJDjMOtT݂A)C5g%H:] eG }6&xg ` ќ)Tyv+5.֟XPZyS81.fy|yWZv{~~.֚Su@v$wht$!HqՒRϳ/ZvN|u_4*i9+Ͼ^]AT{E4p L{l[sE mv4W]:n^G%Lc>ۏ ܅>VՆ̴ʴ2nOm m~D۸z_#y ] ,̝U'ԅ (%7ZElUGO?r8wߞ#RR=r}83H)R~\ ~ӏb;hgPM[ f$Sxh4Q""ѧ1M!iL/ԀHDZpCpEld \O?T_{d׎}i55l b(Bw^~Bw賖+MsYgZUM6W؅6s?qWk7ɐc3g7؄;2zBR!i::TRlX|=Nx ~~+F,(&cո2~GOux2"z7hV40DV_r;r?5#:E+~QFjj[7{zCNd/B2я[V\d5- q9rG8Au?I' ׵xCݵ#rx ,a? ]5erQ3 c*T0Fd}Wj@ѫKMX,S0^q/A y M3]ޜ㻈e}P}a 4.op~ <RȢ=ͦa*L=GP<@&}"ZlW PmN{Uk\<ed%%Bƥ?LX{%l5k‡m1X|n }uk T܁454y?!?,f2 ;-yxG>X,}a)a'd1p\~ Ւ ')=/ĝzW.O* G#,cXİ"|+EOb) :ˣ'j:h; jElJ.gV%Ϯן1ȓi$y:QSPh=yŭ7lkU6`xʼnoTTTAM4EU\/[UJ' Wd;o;k,-;90-\s_Hc{˃ @w@A=~׷{F% P==   EX+׫ZG+%gNldl4!7`3mXH3]R%zz9ڑtkv&=> kд%_p= l ḡȨŒх1EzTgyGZ8^=[X:Elzoq`Q+33S[a }P+hPv)pe꒔s‰YAWLHuA`8T.W6 ^4\G/|~FDlt_}E+] %{z3p*Dk?GBߍЦ^-ڒ|p/;-_"S6VmlD> ƃ+)8r^4s[g迀}!|AÍ"@KV6-woN ][nK"j6V+yu35$ƍ +,<$xrQx,)'G$R [!/ ΢Nq'wA寧U{2֪ߕsO-N !VaCzύ}k<,C}Jjd̍Zn97e' N Z?Η:0yoPwżwQp(3"gR*+#V/c7ΎcN ( ĽO$  54JI-),,&ddc!dJ†iь!EꛅX~sw9؋}甖 k:M,֞$ҙzse=2(0OCDĽz=ՄlLFXD/.4v1D;RN0 Cf9her_1 ,)SCu#,,*ԙ"Z0ąQh!0ߨzDX|7lF{Gm2,Ϥcu#1H~;P!;$oF TEѮeK7G1bTmٷԺm]}.受z.Gӟ) endstream endobj 43 0 obj << /N 3 /Alternate /DeviceRGB /Length 2575 /Filter /FlateDecode >> stream HyTSwoɞc [5laQIBHADED2mtFOE.c}08׎8GNg9w߽'0 ֠Jb  2y.-;!KZ ^i"L0- @8(r;q7Ly&Qq4j|9 V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'Kt;\ ӥ$պFZUn(4T%)뫔0C&Zi8bxEB;Pӓ̹A om?W= x-[0}y)7ta>jT7@tܛ`q2ʀ&6ZLĄ?_yxg)˔zçLU*uSkSeO4?׸c. R ߁-25 S>ӣVd`rn~Y&+`;A4 A9=-tl`;~p Gp| [`L`< "A YA+Cb(R,*T2B- ꇆnQt}MA0alSx k&^>0|>_',G!"F$H:R!zFQd?r 9\A&G rQ hE]a4zBgE#H *B=0HIpp0MxJ$D1D, VĭKĻYdE"EI2EBGt4MzNr!YK ?%_&#(0J:EAiQ(()ӔWT6U@P+!~mD eԴ!hӦh/']B/ҏӿ?a0nhF!X8܌kc&5S6lIa2cKMA!E#ƒdV(kel }}Cq9 N')].uJr  wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó ti zf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4 n3ܣkGݯz=[==<=GTB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY .=b?SƕƩȺy چ k5%4m7lqlioZlG+Zz͹mzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś nLl<9O[$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km endstream endobj 44 0 obj << /Type /ExtGState /SA false /SM 0.02 /OP false /op false /OPM 1 /BG2 /Default /UCR2 /Default /TR2 /Default >> endobj 1 0 obj << /S /D >> endobj 2 0 obj << /Nums [ 0 1 0 R ] >> endobj 3 0 obj << /Type /Pages /Kids [ 18 0 R ] /Count 1 >> endobj 4 0 obj << /Dt (D:20030628214602) /JTM (Distiller) >> endobj 5 0 obj /This endobj 6 0 obj << /CP (Distiller) /Fi 5 0 R >> endobj 7 0 obj << /R [ 1200 1200 ] >> endobj 8 0 obj << /JTF 0 /MB [ 0 0 3220 2693 ] /R 7 0 R /W [ 0 0 ] >> endobj 9 0 obj << /Fi [ 6 0 R ] /P [ 8 0 R ] >> endobj 10 0 obj << /Dm [ 3220 2693 3220 2693 ] >> endobj 11 0 obj << /Me 10 0 R >> endobj 12 0 obj << /D [ 9 0 R ] /MS 11 0 R /Type /JobTicketContents >> endobj 13 0 obj << /A [ 4 0 R ] /Cn [ 12 0 R ] /V 1.10001 >> endobj 14 0 obj << /CreationDate (D:20030628214602+02'00') /ModDate (D:20030628214602+02'00') /Producer (Acrobat Distiller 5.0 \(Windows\)) /Author (c102mk) /Creator (Dia v0.91) /Title (D:\\data\\michael\\xims-data-diagramm.dia) >> endobj 15 0 obj << /Type /Metadata /Subtype /XML /Length 1080 >> stream D:\data\michael\xims-data-diagramm.dia endstream endobj xref 0 16 0000000000 65535 f 0000019126 00000 n 0000019156 00000 n 0000019198 00000 n 0000019263 00000 n 0000019326 00000 n 0000019348 00000 n 0000019398 00000 n 0000019439 00000 n 0000019515 00000 n 0000019567 00000 n 0000019620 00000 n 0000019656 00000 n 0000019732 00000 n 0000019798 00000 n 0000020032 00000 n trailer << /Size 16 /ID[<92e5e0eaafad08daff837b0d951b1c63>] >> startxref 173 %%EOF xims-1.0/documentation/developers/concepts/0000755000000000000000000000000010276674160017700 5ustar rootrootxims-1.0/documentation/developers/concepts/portlets_and_portals.html0000644000000000000000000007460610276674160025045 0ustar rootroot Portlets and Portals

Portlets and Portals

Christian Glahn

christian.glahn@uibk.ac.at


Introduction

XIMS data was not only designed for monolitic content. One key target was to be able to have information areas (portlets) that can be added to any page as prefered as well as combined to complex pages commonly known as Portals. This document describes the concept of portlets and portals in XIMS.

XIMS itself will not handle the presentation of a portlet, but helps organizing the content a certain portlet offers the user. This may differ from what a xsl rendered version may display to a user. Therefore XIMS offers an abstract view on a portlet or portal.

This document is split into two major parts: (a) A major outline about the concept of Portals and portlets in XIMS and (b) an introduction into the technical implementation of these special object-types.

Concept of Portals and Portlets

Poratals and Portlets should provide a different view on data stored in different places and/ or different ways. This is often called content syndication.

Portlets

What are Portlets

A portlet is a special view on a set of data. On webpages portlets commonly appear as boxes aside of the main content of a page. E.g. a site navigation showing the toplevel documents and folders, is such a special portlet.

Technically a portlet is not part of the content of the page its shown with. From that view a portlet is part of the interface and needs to be loaded by the associated stylesheet. From that point a portlet is similar to a widget of graphical userinterfaces. XIMS itself stores only the information which information should made available to the real widget (which is part of the stylesheet) - once more XIMS splits information and presentation.

For the content manager this means he has to decide how to organize the information that will be shown in the portlet. To understand this workflow there is need to explain how portlets work.

XIMS implements portlets as filter on objects. This means a portlet is similar to a symbolic link: it points to the object it should filter. Then a user may specify rules to control the content available in the portlet. This filter behaves differently depending of the general type of the object it points to. From the view of a Portlet there are only two different types of objects: content and container. A filter on a content object (like a document) will only filter the column data of the object the portlet points to. If the portlet points to a container object (such as folder, DepartmentRoots etc.) the filter will not filter the object itself but the child objects (descendants?) of the given object. Therfore a portlet pointing to a container has an object filter in addition to the content filter as already described.

While a content filter restricts the data of an object that is stored in the portlet, the object filter allows to define a subset of objects, that are made available. For example a news portlet may only display those documents of the referred folder that have the new flag set. How these filters are build are described below in more detail.

Where to use them

Portlets are always useful when information should be made available in the same (or at least similar) way on a set of pages. Portlets help to organize such views.

Therefore a portlet is always usefull if such a view is shared by many content pages or if data has to be collected from different content objects. The latter is important for portal pages (see below).

Portals

What are Portals

After discussing portlets, portals are the next step. Basicly a portal is a page containing only references to portlets (no other protlet types). In common such pages are found as the startpages of a certain site which is where the name originally comes from. In XIMS such pages may appear at any level an user preferres.

Inside XIMS a portal is stored as a container that can only contain symbolic links to portlets. In the exported filesystem the portal will be transformed into a XML document containing a bunch of x-includes. This means the portlets of a portal are not loaded by the stylesheet. Instead they are provided directly by the portal document.

When to use Portals

Portals are useful if there is content spread over various object or folders and should be shown under a single location as an overview.

Technical Outline

Portlets

Common Implementation

All Portlets are special symbolic links. Different to symbolic links they don't make the referred content just available. Instead they are ment to offer a special filtered view on the stored content. There are two variations of these filters: Content filter and Object Filter. From the view of the filesystem portlets are pseudo container, containing parts of the data of other objects.

The different filter types do not affect each other. A content filter must be aware about the different object types, since not all object types have all columns present.

Object Filter

An object filter decides which objects are stored inside the portlet.

Content Definition

The Content Definition restricts the object data stored in the portlet itself. Such a filter limits the information of a given object that will be stored in the portlet. This gives the user control about the information that is directly available in the portlet. One can understand this section as the projection part in SQL Queries.

Content Definition work global. This means no difference is made between the various object types on the description level or on the hierarchical level. Thus an user can specify either if a column should be existent in a portlet or not.

The definition works global, since only the object types specified in this section will be available in the portlet - no matter where they are found in the hierarchy.

Common Filter Flow

The filters are commonly run as a SAX filter before output.

  1. Parsing of the object-filter conditions
  2. Fetch the object id's from the database
  3. Check which information each object should contain
  4. Fetch the objects as required from the database
Exporter

There are two stages of the portlet export. First there is the generic export such as for any other object as well. In this case the filters are run to decide which content is stored inside the portlet. After the initial export the portlet enters an auto-export mode.

Portlet Types

Headlines

not done yet

Journals

not done yet

Link Lists

not done yet

Navigation

not done yet

Object Portlets

An object portlet is a little special to the other portlet types. First it is a link to a special object, that is not a container. Because of this an object portlet has only Content Filter.

Filter Language

A user should be able to define the filters applied on a portlet through the interface. Internally this information is stored as XML in the body field of the portlet. This information must using a kontextfree definition. Also the two types of filter types has to be represented in this as well.

TODO: filter schema

Content Definition

The content of the portlet is described in a special section of the portlet definition: the content-definition.

the content definition contains 4 items:

  1. column

  2. object-type

  3. depth

  4. resolve-links

The column has a required attribute name. This name has to hold the column name, that should be extra loaded with the portlet. One needs only to specify extra columns. A portlet will always contain a set of basic columns such as location or object title for an object.

The column tag has no content. For each extra column to be loaded in the portlet on MUST specify a new column tag.

The object-type entry tells the content definition which object types the portlet MUST contain. This is a positive list. each object regardless of its level has to match one of the specified object-types. if no object type is defined all objects will be loaded.

The depth entry has a single attribute level that contains the numeric value of childobject levels to load into the object. There MUST exist maximum one depth entry for the entire portlet.

The depth specified here defines only the level up to which data will be loaded. The portlet filter itself will only work on the first level of objects loaded into the portlet.

If no depth is specified the default depth is set to 1.

Another entry that changes default content of the portlet is resolve-links. This entry either exists or not. It has no data and contains no attributes. It is mainly a flag that tells the portlet to treat the target of Symbolic Links as objects in the hierarchy.

The Filter definition

Besides the Definitions what content exists inside the portlet. a portlet must also have a mechanism to define how to restrict the objects to be loaded into the portlet. This is done by the portlet filter. One can think of a portlet filter as of the WHERE clause in SQL queries.

The Filter definition contains several tags:

  1. column

    the column tag MUST have the name attribute that contains the column name to filter. The tag MUST contain at least one value entry. each value must be found exact in the column to match. if more than one value is defined, at least one of the values has to match. If no value entry can be found the specific column filter will be ignored.

    If a column contains character data optionaly a value entry can be wrapped into a has tag. in this case the value has to appear somewhere in the column. (similar to SQL like)

    The portlet filter will check the value types. as soon a value is off an invalid datatype, the entire condition will be ignored.

  2. object-type

    The object type defines a type of which an object MUST be to be filtered. The object-type MUST contain the attribute name. This attribute MUST contains a single object type name (e.g. Document).

    If more than one object type is specified, a filtered object must match at least one of the object-types to be filtered.

    For filters that work only on the first child level this is equivalent to the object-type entry in the content definition.

  3. child-object

    This entry defines some condition at least one child object must match to filter the object. each child-object may contain column or object type entires but at least one of them.

to specify more complex conditions one can wrap any element inside logical conditions: Not, And and Or. On default all entries are in Or relation. This allows restrict the filter.

A simple Example

the following example shows a simple filter to show how the filter schema works.

<content>
    <column name="new"/>
    <column name="last_modified_by_id"/>
    <column name="abstract"/>
    <column name="keywords"/>
</content>
<filter>
    <column name="new">
         <value>1</value>
    </column>
    <column name="title">
         <has><value>Foo</value></has>
    </column>
    <object-type name="Document"/>
</filter>
                    

This example loads the extra information about the object's New flag, its last modifier, the abstract and the keywords of each object found. All this is done for all objects in scope.

If no filter would be set this would load all this information for all objects inside the object refered by the portlet. In the example though is a filter specified: we want all objects that are either of type 'document', have the new Flag set or have the string 'Foo' somewhere in the string. this means the portlet specified here will contain all documents plus all other objets that match the condition for the title column and those objects that have the new-flag set to 1. As one can imagine this may return pretty much data.

If we want all object's of type 'document' that are considered as 'new' (new==1) and contain the string Foo in their title, we need to wrap the filter condition into an And:

<content>
    <column name="new"/>
    <column name="last_modified_by_id"/>
    <column name="abstract"/>
    <column name="keywords"/>
</content>
<filter>
    <And>
        <column name="new">
             <value>1</value>
        </column>
        <column name="title">
             <has><value>Foo</value></has>
        </column>
        <object-type name="Document"/>
    </And>
</filter>
                    

If everything is infact combined by a logical And now, it is usefull to place the object type information into the content definition:

Note that the And-Tag has to wrap all entries that must be valid at the same time.

<content>
    <object-type name="Document"/>
</content>
<filter>
    <column name="new">
         <value>1</value>
    </column>
    <column name="title">
         <has><value>Foo</value></has>
    </column>
</filter>
                    

This will filter all document objects that are either new or have 'Foo' somewhere in their title. Placing the object type into the content definition gives the portlet a hint what is really your content.

<content>
    <object-type name="Document"/>
    <object-type name="SimpleXML"/>
    <depth level="2"/>
</content>
<filter>
    <And>
        <Or>
            <column name="new">
                 <value>1</value>
            </column>
            <column name="title">
                 <has><value>Foo</value></has>
            </column>
        </Or>
        <object-type name="document"/>
    </And>
</filter>
                    

What is this doing? It is similar to the previous filter, but if filters also all child objects for the filtered documents, that are either Documents or SimpleXML objects. In fact this is the same query as the previous one, since Document objects cannot have other documents or simple XML as child objects. But i think this illustrates how complex object types can efficiently be filtered.

Portals

Technically a portal is a special Folderobject that may contain only portlet ojects. Since a single portlet may is used in various places, the portal itself may contain only symbolic links to the Portlets it should contain. Because of this restriction a Portal may only contain existing portlets, that live outside the portal itself.

If a portal is published it will not be published as a directory, but as a XML file that x-includes each currently published and referred Portlet instead of containing the real data inside the document. Because of this the portal needs only to be updated if a portlet is initially published (not on republish!). Doing this a Portal is automaticly updated as soon one related portlet is updated, too. As well this reduces the times the portlet filter have to be processed.

An example portal document may look like this:

<document>
    <objectlist>
        <xinclude:include href="/path/to/portlet.xml"/>
        <xinclude:include href="/path/to/portlet2.xml"/>
        <xinclude:include href="/path/to/portlet3.xml"/>
        <xinclude:include href="/path/to/portlet4.xml"/>
    </objectlist>
</document>
            
xims-1.0/documentation/developers/extending_xims/0000755000000000000000000000000010276674164021113 5ustar rootrootxims-1.0/documentation/developers/extending_xims/content_object_type_howto.html0000644000000000000000000004544510276674164027276 0ustar rootroot Content Object Type HOWTO

Content Object Type HOWTO


What is a content object type?

As the name suggests, content object types are different types of content objects. After installing XIMS, there are different groups of content object types available, ranging from container object types like Folder and DepartmentRoot to XML object types like Document and sDocBookXML, to binary object types like File and Image. All content object types share the same data storage property structure. In case of the DBI DataProvider that properties are available through the ci_documents and ci_content tables. Content objects are stored in two tables to separate language-dependant from language-independant data and to enable content versioning. Using that data model, it is possible to create content in several languages sharing the same place in the hierarchy and sharing the other language independant properties.

Creating content object types using cot_creator.pl

Work on three layers is needed to create a new content object type. First, the content object type has to be defined at the data storage layer. Using the DBI DataProvider, this means creating an entry in the ci_object_type table. Second, the content object type has to be defined at the application logic layer. An object-, application-, and exporter-class is needed for that. Third, at the presentation logic layer, XSL-Stylesheets are needed to provide the user interface for the content object type specific management needs.

cot_creator.pl is a tool that will save you some of that work. To get a first idea of what it is about, let us take a look at the synopsis:

   Usage: ./cot_creator.pl [-h|-n object_type_name [-i isa] [-f data_format_name]
            [-c -m mime_type -s suffix] [-o outputdir] [-u dbusername]
            [-p dbpassword] [-d debuglevel] ]
        -h Prints this screen
        -n The name of the object type you want to create
        -i The super class of the object-, application-, and exporter-
           class; defaults to XIMS::Object, XIMS::CGI, and
           XIMS::Exporter::XML respectively
        -f The name of the data format (list of df)
            If you want to create a new data format, you have to set the
            following three arguments:
            -c flag to actually create the data format
            -m mime-type
            -s suffix
        -u If set, overrides XIMS::Config::DBUser. You may need this if
           the database user specified in XIMS::Config::DBUser has
           insufficient privileges to create object types or data
           formats. For Pg, for example the user default user 'xims' has
           the privileges, whereas 'ximsrun' does not.
        -p If set, overrides XIMS::Config::DBPassword
        -o Output directory of template modules and stylesheets,
           defaults to '.'
        -d If set, overrides XIMS::Config::DebugLevel.

cot_creator.pl does the following: First, it adds the object type to the database, after that it creates basic object-, application-, and exporter-classes, as well as XSL-Stylesheets for the events, create, default, edit and publish. The following examples should give an idea of how that looks like in practice.

Example content object types

Text

Tired to write well-balanced Documents just to save little notes? Or you do have legacy plain text files which you just want to deposit in the XIMS data storage and use features like the ACL system to manage them? An object type Text to manage such plain text files will help with that. Let us start out with cot_creator.pl to create it:

./cot_creator.pl -n Text -f Text -u xims -o /tmp -d 1

This will generate the object type Text in the database (you may have to adjust the database username -u) and output the following files:

  • /tmp/ot_creator_out/bin/text.pm

  • /tmp/ot_creator_out/lib/XIMS/Exporter/Text.pm

  • /tmp/ot_creator_out/lib/XIMS/Importer/FileSystem/Text.pm

  • /tmp/ot_creator_out/lib/XIMS/Text.pm

  • /tmp/ot_creator_out/www/ximsroot/skins/skinname/stylesheets/language/text_create.xsl

  • /tmp/ot_creator_out/www/ximsroot/skins/skinname/stylesheets/language/text_default.xsl

  • /tmp/ot_creator_out/www/ximsroot/skins/skinname/stylesheets/language/text_edit.xsl

  • /tmp/ot_creator_out/www/ximsroot/stylesheets/exporter/export_text.xsl

After copying the files to their respective path in your XIMS installation - usually somewhere below /usr/local/xims - we'll focus at the newly created application-class /usr/local/xims/bin/text.pm first.

Before overriding or adding event handlers it is a good idea to get acquainted with the event handlers of the super class to know where different or additional logic is needed. After reviewing the basic event handlers of XIMS::CGI, it can be seen that we need to override event_store() to handle the body-field. Additionally, as plaint text documents are not well-formed - at least most of the time they aren't - we have to XML-escape the body before it gets stored. The following code snippet shows how that looks like:

sub event_store {
    XIMS::Debug( 5, "called" );
    my ( $self, $ctxt ) = @_;
    return 0 unless $self->init_store_object( $ctxt ) # handles common params
                    and defined $ctxt->object();
    my $body $self->param( 'body' ); # get the body
    if ( length $body ) {
        my $object = $ctxt->object();
        $object->body( XIMS::xml_escape( $body ) ); # xml-escape the body, plaintext files are not well-formed
    }
    return $self->SUPER::event_store( $ctxt ); # does the actual $object->update or $object->store
}

Text objects can now be created and edited. However, at event_default() they are shown in one big ugly unformatted chunk of text. To change that, we have several implementation options. It's still Perl, so TIMTOWTDI. We could override event_default() and replace all newlines with '<br />'s, all spaces with ' 's using regular expression substitutions. We could update text_default.xsl to wrap the body inside a <pre>-tag. For a little XSLT practice, we also can update text_default.xsl to convert newlines and spaces to their HTML representation. Adding the following two XSL templates to text_default.xsl implements that conversion:

<xsl:template match="body">
    <xsl:call-template name="brspace-replace">
        <xsl:with-param name="word" select="."/>
    </xsl:call-template>
</xsl:template>
<xsl:template name="brspace-replace">
    <xsl:param name="word"/>
    <xsl:param name="foundbr" select="0"/>
    <xsl:param name="foundspace" select="0"/>
    <xsl:variable name="cr"><xsl:text>
</xsl:text></xsl:variable>
    <xsl:variable name="space"><xsl:text> </xsl:text></xsl:variable>
    <xsl:choose>
        <xsl:when test="contains($word,$cr) and ($foundbr = 0 or $foundspace = 1)">
            <xsl:if test="$foundspace = 0">
                <xsl:value-of select="substring-before($word,$cr)"/>
            </xsl:if>
            <br/>
            <xsl:call-template name="brspace-replace">
                <xsl:with-param name="word" select="substring-after($word,$cr)"/>
                <xsl:with-param name="foundbr" select="1"/>
            </xsl:call-template>
        </xsl:when>
        <xsl:when test="contains($word,$space) and ($foundspace = 0 or $foundbr = 1)">
            <xsl:value-of select="translate(substring-before($word,$cr),$space,' ')"/>
            <xsl:call-template name="brspace-replace">
                <xsl:with-param name="word" select="substring-after($word,$space)"/>
                <xsl:with-param name="foundspace" select="1"/>
            </xsl:call-template>
        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="$word"/>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>

Now we got all default events running besides one. We can create, display, edit, delete, or manage the ACL of Text objects, what we still can not do, is to publish or unpublish them. To achieve that, Exporter::Text needs updating. cot_creator.pl sets the value of the @ISA variable to XIMS::Exporter::XML per default. As Text objects are not XML objects, we have to alter that to a super class that simply outputs the body of the Text object during export. Setting @ISA to XIMS::Exporter::Binary does the job here. Still, exporting a Text objects does not yield the result we need because the published objects get output as is, and that means XML-escaped like they are stored in the database. To change that, we have to override the create() method taking the logic of XIMS::Exporter::Binary::create() and adding a call to XIMS::xml_unescape():

sub create {
    XIMS::Debug( 5, "called" );
    my ( $self, %param ) = @_;
    my $document_path =  $self->{Exportfile} || $self->{Basedir} . '/' . $self->{Object}->location;
    XIMS::Debug( 4, "trying to write the object to $document_path" );
    # create the item on disk
    my $document_fh = IO::File->new( $document_path, 'w' );
    if ( defined $document_fh ) {
        print $document_fh XIMS::xml_unescape( $self->{Object}->body() ); # xml-unescape the body content
        $document_fh->close;
        XIMS::Debug( 4, "document written" );
    }
    else {
        XIMS::Debug( 2, "Error writing file '$document_path': $!" );
        return undef;
    }
    XIMS::Debug( 4, "toggling publish state of the object" );
    $self->toggle_publish_state( '1' );
    return 1;
}

Similar to the generated the Exporter class we have to change the value of the @ISA variable to XIMS::Importer::FileSystem::Binary for the generated Importer class. Also, while we need the Text object's content to be XML-unescaped during exporting, we want it to be XML-escaped during importing. To achieve that, we have to adapt the generated XIMS::Importer::FileSystem::Text class accordingly by overriding handle_data():

use XIMS;
sub handle_data {
    XIMS::Debug( 5, "called" );
    my $self = shift;
    my $location = shift;
    my $object = $self->SUPER::handle_data( $location );
    my $data = $self->get_binref( $location );
    $object->body( XIMS::xml_escape( $$data ) );
    return $object;
}

Object type Text is now fully functional but yet open for extensions. For example, one can implement an additional plain text file upload facility with a few lines of code. See text::event_store(), text_edit.xsl, and text_create.xsl in the XIMS distribution for an example of that functionality.

CSS

With the second example for creating new content object types we want to show how to add object type specific events. Next to the basic events provided by the super class XIMS::Text we want to validate the CSS objects using the CPAN CSS::Tiny module. Before implementing that, let us first create the object type:

./cot_creator.pl -n CSS -i XIMS::Text -f CSS -u xims -o /tmp -d 1

Again, we have to copy the generated files to their respective path of the XIMS installation. After that, we already have a working new content object type that just misses the basic formatting of the CSS objects during event default. Copying the templates or the whole file of text_default.xsl to css_default.xsl helps with that.

We need the CPAN CSS::Tiny module to implement CSS validation. If you do not have it installed you may do it by issuing the command

perl -MCPAN -e 'install CSS::Tiny'

With an installed and working CSS::Tiny module we want to add an event_parse_css() to our css.pm application class, using the read_string() method of CSS::Tiny module to parse the body.

To actually get that method running, we must not forget to load CSS::Tiny and adjust registerEvents() not to use $_[0]->SUPER::registerEvents() but to just return the list of events including parse_css. Unfortunately, there is no such thing like a SUPER::SUPER->method in Perl.

After updating the final bits, the whole css.pm looks like this:

package css;
use strict;
use vars qw( $VERSION @ISA );
use text;
use CSS::Tiny;
# version string (for makemaker, so don't touch!)
$VERSION = do { my @r = (q$Revision: 1.2 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
@ISA = qw( text );
# (de)register events here
sub registerEvents {
    return qw(
          default
          create
          edit
          store
          delete
          delete_prompt
          obj_acllist
          obj_aclgrant
          obj_aclrevoke
          publish
          publish_prompt
          unpublish
          cancel
          parse_css
          );
}
sub event_parse_css {
    XIMS::Debug( 5, "called" );
    my ( $self, $ctxt ) = @_;
    return 0 if $self->SUPER::event_default( $ctxt );
    my $body = $ctxt->object->body();             # grep the body
    my $css = CSS::Tiny->read_string( $body );    # parse it
    if ( $CSS::Tiny::errstr ) {
        $ctxt->session->error_msg( "Parse failure" );      # set error message
        $ctxt->session->verbose_msg( $CSS::Tiny::errstr );
    }
    else {
        $ctxt->session->message( "Parse ok. Parsed CSS:" );
        $ctxt->session->verbose_msg( $css->write_string() );
    }
    $ctxt->properties->application->styleprefix( "common" );           # this will tell CGI::XMLApplication to use the
    $ctxt->properties->application->style( "message_window_plain" );   # file 'common_message_window_plain.xsl' for XSL transformation
    return 0;
}
1;

Now, we a got a working new event. As a final step, we want to make it available through the user interface. Inserting the following fragment before the footer table in css_default.xsl provides the necessary link to activate it in a new window:

<table align="center" width="98.7%" class="footer">
    <tr>
        <td>
            <a href="/" target="_new">Validate CSS</a>
        </td>
    </tr>
</table>

xims-1.0/documentation/developers/images/0000755000000000000000000000000010276673770017335 5ustar rootrootxims-1.0/documentation/developers/images/xims-request.png0000644000000000000000000011656107775063010022511 0ustar rootrootPNG  IHDRsRGBgAMA a cHRMz&u0`:pQ<IDATx^=^Iz%?(phQ`L/lˎlxH` -@(؁*XP`ZGr l""1B%  EH ;CO̜yuˏ[oqU>UӧO|U4#`!pg.\V\Jx\st`ܶ%ێ7D¶lGy\Գf<=GJ~oI?0j7flVO<3Cܼ( :Oyի&8?EZQ;~MD0;@SQ GC,]&j0}P .C>@;S P Ei}JѡF5)s4Ō`uiOaʩZ1bŬL}%!ffn.9 %EDԐpGp+FE9$\@I%(ҸwĪRGEj%l#>I&DfF 笚@{/V0i5r}6^V_BHJp=3#`sӨ ZҀL퐉c16CEY_9e,fBr!`3 [6*fOϱoF`M|.eGa0!`_Lzd3A7F0/&[[ds:xi7Fk٦~3҈ׯόt.m@^|f<ك43C#`ZGc]kXQ^n}`Ƴpr֣ϠJFq<5񌆬xvu{f<{y= %aGc]18PۣXsΧ7]; _tj|͟j8-.||OAyja7ȱ@5oHOH@1ydd&`M]N⻠kg,DU0, Q`,~ppt쁙1iPuK6yv_ ʁ_? Nd`O %m &9t-{qF w93BY3;1j0bǠyorcBÉ_9]'m B5ebrbIxDVbB(A48J3F :A$N3b3I`<{Rg^ tp "T%T21/Uf\ml)9}mߞC<F9Fѝ=Br.$xX'4^>'\H'Gk􃌇d'6S>箝f<0WD4}<\( xr#G[v@A3's\[]O} s:<eNxxGd .y6}xS^6 ozoDYpyp_UFT׸͊fE5̭hξá#9h%}-sעQ)?nK2XUFf'u=|:zB)\9v^u*$EI;x!=!(˒x^ucu{-3񸋤6 ؞}eB9ٰfLlhFmE̕OJg+)DlmcK%tlOZmHnґ}pbE0) wx4FQkxvf;if<; wx*F#f<f<@ #`(OaPg@l0FDg$`;nƳ E#`0]:ls"W0F0i.dlƳ:V`00)y x 4F񌆬f<݇#`v~e3 #`3b:#3mךz#op޽+;t͌`.B@x]-6 xiLíVf6fOmQ7>E0㙃l[ Z=EcCgf0j`-y| &2=x ?1#}O~бF2;)8]d|.vx'ݔ!B&>"D1c;s3!X39ٶ6Q=E )cW 5d8L%qV[4.XH" _qMp3O* Oͣ_Hf ࡵ.cT"_E@0Bx&*@-p-9d t2L$OP?g<䡉t3A*tsv̭R#Oҙcwfgx!3܌gJSè͞zCǩ>tJXb2OJꀯQWɉ%)-ch44T%@r壜ba$XYU ,9kp(ae؆B| ԎL%Lؖ\@4zM-RI-1Nl@D%2sƣԉxNL" -J8>) ]fĩ(E0a:9<܃Gn#Da.ԃrMGFz=f<3ԌgN{Uè͞ ƣ @ʕ@9~D}0:r8p |8EXQ*!-NlKjD|J'Q`v=7 /RL:Ӆk(`΃[:V!B%9LS%$̌gyԌgUx^ð=ѐO21hE9$#\:qȔ$Eۂ%k @eAX+,GMv$PA]+OkT}{2#`3'f^1f+0!`_Lzdc30F>xl#<fF0/&[[dcƳu~#`,ixxZö##`^"`c#fl09f<)f+0!`_Lzdc30F>xl#<fF0/&[[dcƳu~#`,ixxZö##`^"`c#fW 4H#`@8xm0F#03 0F#8f<#`00#`0#`xm0F#03 0F#8f<#`00#`0#`xm0F#03 0F#8f<#`00*|͛7v^b>J?c /rl6A͛7P=ϟ?yd3#`VBg`xZ('Cq1)s4W؆C_x=9V:G#`pxc5&&]LGK|F Q)J6J( bɄp9S Hi$7Rv?b $VL@&$|e G~@>y U['L`r_*nBzaCVX_=44&S)ipD?R1$5Ϲ0FDgyg;ͬ͠<ʙ%Q9H`V2i䐅pOBDI@>&)Ց~V`.؄z)_n0a&0h@)I5[0yV$.0DSfC&XE1jdHRx>T 4k.hF#sc<?~1('Ns6v "L<߬>sN$RhIZ6I*BQhHCe `C3HYXY| I7Fi =DER1ڸkaύ7^ׯ_C. ^LКY`NdjĽhf 9xdHr6cn$Fd<$p<"1B8exWP9'QOSdo\o\rj8f 1 rp#uʤf4b<2ՄsJ;(B^"J"DYʎ9xFTd<4,CBsȫߒ (qe-&HH9NxrJn?%T!Pnٳgono0Y%ʘVR,2|V9~|dö\g<ͭ*,~y. q 2"lLґ 0#y7zL_*SA"#+F@}i `63߮ Cl,-u0Y_K7#4u;2pL_g{Ė#033 M@ <ӧ :D *FΒ"HYZ%vYdGnjg^f tI v2Enjg?ϹN##-f#UQÇUXc#*@njnh!OCZ'=7oq;wy]f~aô ISi 4ɓ'C[^u!;X >e`IOg-k!Iʅ_36B7QIԈSݴ i,HS`< oarj}LMQ^J]=rocSO%}ژﱃgtˎ`-ׄ 4ceИ/9m32DT^§1jm06 EZ!HƓ1P"l.$fD/z~<SEG\ޚ5b|5[vI42?h&6D5%u3bc* Q{QN&T Α'RjȻؠQS~fr (7"m4tY% eJ'ȄxP8TUrße<; S\1jĐ]McmJ4$ l ,єgDfMf$ t2+7e8uP $S>*)%MM9?yDrZĮ+% 3P/iJf 527XQICsDpVc{5 Ɠ̕P^m5s9VNW'-!:xT p3c]z!A c' J|3֐JdG_B䖨̱>^y,"ILIxt1 bzӀHOCvO`TS zn:rڞ`<'XET$spb:-%0/"INo"hUhd6٨ `vû5L#}/TyrD4DD@n>` ƃ($^/D qOĄ8ry"R /sX(u{,蒠"X-gbz%<8qvN6lI{GϚRN -2X}?x1x\D s 5|P2W=rQϓ8|j=by:j ŗ*֤J8!c`ӌ'|rݻw54nS,ah"( w.Gbt$J.0c:+1 sdXx10ڣcNI|4x de@/,#PhFU# kI":IIdeNBĪ|+,$ő$r RbC%KK@Lr<1WzUix+s'>'JA`x54 OoYXxrI !P'!Cz%={K/.VsΎz?1˃3G;/ZxlOQyB~*xQPn瀙h?/XMpKbG@Tfgӌ'7p_Nf< 1<lɸ[.G򤞉$1$8^6kCRq8m^ȏUK3{%E~/XZ\H+w`s"2PjC,{c,<k-$~%5T]Y:z`) jUxz2J!/"6O:]K>T1vvS\&7J*:ԃ8*O! -IˉqVv>1|'G~ֶ;}[b01i?!֎˗/q_Z,v01i`{'C>`YxxvWobs=zM,bYd%F,] #ӻwVZ/^ܺu*l0"`cSaIצxkל%ϊˢ!$RU{@w|Z%Frxx*6oHr ;0dOf:Ag'X@B ӝN0E01)ѬXA|" 7Pb}KXb[h33m9 x?cܸmFAnjgNqp___Ug+\\YՁnh3}1۷oc:~_xB c)rE+Ym0-o޼ٶY0#C.iUcmFBnjgTq>EТUwgvO8V8^t^eW@WtաY{.]M]Umax!(V=*B F4OF.ֿ={VzǏP#mqF33 F R<v-ftLtv(OfU#'>텻go&p9SqwiFC~b`,xf\c3BVH%eNT)gϾϾ⽲J8ͳ2o,xf\c3BV ؿ̸fkm0;Gg_g_.-%Qe%FLǮŖf<-Frx*3F'+E5)#03ތx5aOaF+E5)#03ތx5aOaF+E5)#03ތx5aOaF+E5)#03ތx5aOaF+E5)#03ތx5aOaF+E5)#03ތx5aOaF+E5)#03ތx5aOaF+E5)#03ތx5aOaF+E5)#03ތx5aOaF+E5)#03ތx5aOaF+E5)#03ތx5aOaF+E5)#03ތx5aOaF+E5)#03ތx5aOaF++{/W/~W޻woeotZlibjDŋ?~Tf0W0Wi2'x,kl\7i'x-4Fg_}g_.wh#`Dx&h33Fo߾X>uK.q1 ǵk׮_4JTƍh7olU#`ϾϾ=[O޽{T ./^O<Uh->xuЦG0p72FBg_Ìg_w@Mx: H; -M<`wC?s%#`f#`3¦4ՍqAϷ~ʠ'/_ SX{IO0! l0)uŚ@5dYqAe[c Pڃ%0SmaFWxzax[plʩX}#fWӾdC@gkAw^WE O2K/#8fcqJ_=^50Yze1a+8cZ.66[ixƠ~]3c2ׯ_|sݼy>̑y.]ZJ9?|>^>|scW^q'|!bUg#T '':P#2SJѯpBŠ ]O<h;wT:*LC 5D'ȌgqHhSuxJ6auT fhg)FF j84lK8cW5AX K(SMX9VJ/adDCl`5^yM# h58m#cO0 (ͷu '&%KyE,9:8[QB,GZë#"(;S!x ,"=_aA&9!נ G"5!d,ahE!Il9"@%jYp4ʋITHHt`0ǤG 4>S]8S*ʒ!&%O[5nr Ə!ؑ/QͦU,$P?kGJt'2?"O #@*,O™'JPW.$JH/ Qe N9>qG`"1:NliUD{on397X \"DA{ObKC+PS  cx2ʊ/\@bl6zx}Q7p3J$gH_@OQ'r*Օ"ǾxtA9 "u`IxTg>PN;8~_;G58q8x4BoEhRuB+09Œ 9A2^ &v\H mPrlx,Yz۲еRt1"ɼKĴz j0+Eg%$ATaO[Z yl A\_J+6 lx6}icW8 ^%Nj{vd*KXna+T%֢1y|"b9N'MZٍ=cy9 3h(CwtьsRƈ+;j+#܈!ęr!0!G!>!lI0&-2~dݓ!Mġ \QJqM O. X ]wJuxVRf<fYBbԄSrcWK guT;08ƅQ,!֡=SdޡK#-$4T*h{&';~Sd堐Diq1a=9x DYPDZiND 5'9~Ecf%nG2uQ"\>62r|::eN7a"tFupԏyvnRӌg7SjƳ)] smC=(Ƈh{)N$b3i5Wg9'uP™l'QqBeh$*-!ݙ `h$PeV\%Ia9[qJDXATXYZJ4|p!.,B[0c[LJDYJȃ83Gq`$a<$vnjH.3!A>a?~Ecf5Hpz fѣG<(*h3B6`3YUq,laCO5bHWL0F` f]?-|~?'F`MxD>f @Aaz0Q {~Ox!x"XT:~; &xx1㩪nwrA/$7 ?d}xV-#>__wI] kƳ,K3=B ڇ/ n8GҌg_=ތg_.OϺZzyxc޽F3Cl/x"ޚJ񬋯Gvp!ьg_.OϺZzyxc޽F3Cl/x"ޚJ񬋯Gvp!ьg_.OϺZzyxc޽F3Cl/x"ޚJ񬋯Gvp!ьg_.OϺZzyxc޽F3Cl/x"ޚJ񬋯Gvp!ьg_.OϺZzyxc޽F3Cl/x"ޚJ񬋯Gvp!ьg_.OϺZzyxc޽F3Cl/x"ޚJ񬋯Gvp!ьg_.OϺZ0 `A0q0FE˗_|ů~_W^w2FQx 6F :>/^c!Vc,=|LsիWwQo_߿(Ç(A9X [ѻr|H83 @2 `SI Z2d#g_~%>K&&'+]!@y%'8?iߟϜfH8`@8N͛7D1r*܌PQ%J`&+[B$!c~ O̯gA[Gwd J`J6zGgq|$] %'1Ic}V9&<&~qVj",cB0ׂUpe3+9 H  y ?'NI+j@tE5#@M-P Rq0AM^.D >p_wE4|wXSd.zDіX+EIQPE8P"jdWon޺u O7q%.fv4JTƍhcSl~{r$Lh4|C\]bf"o`?E܈!B>8a22h 1/931%2G9$REzD,BO?ڢ#2tDbbiuiЧO޽{TC!ˋ/ZU{5b8D]rѣGg%,#p3vxw1a'G%IH2 $&A13~LIh7Tǚ 㑿$[=V`nF̆uDk!K[EC31qKh"ڢG= o;Avg Ц0K;ۡeA4#0 3iJheA80XGO`x& JބU5D+.`6fT[gb [E FC>,5v^+Ǔ$oK3 s6̬]Dۮٜf<,5G2>K`> bkQF` f<H@qY ݩxj\fJJbxiGr#&wkSIo,ރb`PAdQu׉;k +Q[OjiQ~4&W+.þK:ת%b~ܢa0#p3FĄS  B&4/|7|-#VgZAHq /!/}zZ0"H4u"@= Y5K7{E'7NmG<Dui|2PD_yk8p!c1!ذ{b{8 j#+f'y8,ۢ0oz"2=O/CP_dsq6tE/X}jFVSQ= 0Q@G&+ɛAl>)x0ʊ)ZN Sb[9\³m2^2P[~0i;֜lгHޝK@|*Y؊ӋW5Sé-9.^DҐ`dM |OxTbm@'MaFy#T8x#֪d6qsL,A[f..$$hldyxwYrd_#CZKia]ƃW3Ln~4s!u `SGZLb Qpvߝ{@Q3*v"20&9%:$GU2i!@ޡ& t 7Ah-WL!./D=(4mί}[|{k.h] `|+E36R%pqFLf>>$;[ER5wdF@UwBx|&$w=aPZHu,o?56⣬tDة.QJwrdhXf?qT! sb h?|4g#`~@#x:A:AxW|kЕMƽmex,bf"{8s+sNmn[9;j ^8[m'7$vsqxX<OYFV/RTGo(OQ:{RTHYuڶUH\|y+kF>Wp+}}p{Q3[o)XA`cHOKV#PfO]/mث:W ziB<`dl':|$H= ܫFN>g}ڌ|a%W ߾P*_z(jf|ɪQsW{E/3bk2cLDC:݌o^cgx[[~t];eA={i%GV0DtE4!!p#9d헇J[3C`Fga@8 !}a j)<)fϫZkj#`}wO!ǍHi=GA6dpf}s U8U-T6gI@dkbUx-Wxz~2 kK(aj5QÊ2,nXH=N= K Û̹x%-뉭aEyjF`AxӢ@06b Iqݪc%аF`8k*-Ydz5J61*mZѣG<aAXa éZ?#vCWL ;A??=sJ$:^hHߠ*4%NaP2JQ+G$'v(SVE) |14㙏aKxZ[Iz3Qu1i;;>g~`1CbMUcZ:ЌxX:AM~%2f<3lOcc.INޱ ,f93`F&gWn͏| [`R&ي[@:~ݻwoݺ;:m1ù<%}8}"ȳyFA5&i!Y*mQάLknX@ WԘXcgџE`ًw+!rxO3~b9pIlg%d YFYRN6 -J$ EfW]xIȗeX%ى|^3C|[%(coI}p8r-.\@Wg8-(l@ŁK.`e _7-wݢLB|HAG%y /gsz L~j$dz²ޜjƳvٻ|3;? gS+CqE(d_QoW;ր=U d<|y=7o"K5ʏ'KSů0{o.OyЈL9 vրĠG?s> (#|&e᪖JP$ _Ɖ\TB x WvrZOC E!7(u&|<* Ef#P+z7Ā%TpO1!#`%{O D,*QC5)ti8Pf<ŠBOa3ioC @)xJ!]3:Еf<]44f<V϶w݌˰)#f+E5)u0Y_K/Oy̻h}0CϾ][3"0[X3uǼ{f<݇3=Dy_>+E5)u0Y_K/Oy̻h}0CϾ][3"0[X3uǼ{f<݇3=Dy_>+E5)u0Y_K/Oy̻h}0CϾ][3"0[X3uǼ{f<݇3=Dy_>+E5)u0Y_K/Oy̻h}0CϾ][3"0[X3uǼ{f<݇3=Dy_>+E5)u0Y_K/Oy̻GnA#7f<}wޙ1#p3s0i-b#P3([GIxJ=V617|3ڜ: v."dnkFT-@_>ּ?'ZzT/+|T}?\ɐn޼9JW^yz3 3i_~B~0m>xPIDdDOtdt+#+fy RxT]"_QN0_asS#f<]3jgh 2S8{&E`Ċ0gDRc̩(Qy%ISU$YDkԊ2ɔ3*G[JD~̆y$Ĕ3ݕPj; 3e0)C#5q\-< Z>g 3jwJK l~ ެ= QpIT"v|#jFn!bsA1~2Vs.$mmbҢaHB鄑eFgiD-ok:~r >OOOSYoN#Xg@(] (A9|b:z d$zNJSY,#jT5/7 $WXHG C+>x>MhUN:(Nb{@x lE0) e|V+|O7wA5=6u 0{)$dԊYQ;Edk~0'ӼlP0d1)T 70%ɞ5q#Kx$4(*:s-)q%BkplՉ%+zq]S;x+E#%Nb{@x lE0) 0eW`<>i@L۬t y+ jڲB9Ķr`U|OT45e\й3~biO~z2A_H$7/<) &2LnnzBh3}t4^d$Z [\.GL5;liƸ3cۦ #;f{ ceN=#;f] '268\3WVi'xZ0wǫZkjTv E<ϖ"B}ݛ7o>}G%/^kTjN,0sgP8q\V qUùZu{jmxݪw޽x$4_|>ܽ{W#˗/1>ǷoߪD(իL)C'j6M!s g;8 qV 9˳Jp$!ƁK.QMf<ͅlf<1F:ܡʕ+nbf7%/Ÿc p6™ e/3{f0>` oJf<[G~3x7 vc}F.$Bj e@l™Ul)# C0T5㩲fj6&"̐U R/?~ʁ8X,^# 6c1# *[QQ!3Wxlp! Io\U s؆`@^U(?Z0F-a0*f&n3p% "rT +\ uK:,`mP}Q p4C0Ռgkc`s}b8sΓ'OFyMG ?|@l8x9^~l>\iuބ &U{Xc!d+\ gly Wc'q9wfazYWt19|Wx籁ʗ_~qphEǐ!:`9h->L0yM`+OOGg28ŚT~R,l€n!ܗ/_>8 q\XhCɫWP0&m.WJd';GDZ%vBݱ2S;dD*Kܺuŋ[Dfb#!K!_b%☛GӧX2z)Xuڪ!aWpgPx :G%8uC|XHSQ&LQ3 hO_qFF.`* rZًQX #@BB ˵$N1P &J:&IKE+e rlC>MX> }"?)DG{t8RT?qOǦv3ϩǓI˘kOx$1:1JX­`y8Os]yG6~wghnbzC>b✁#&fhE6Pd<0p%*[SEQgE 8{QpexM',>$6aۃ6TK70 Q)LyX),k&A,' 7x8*lk{ !>#캢ˌ/=U[XuJx dt⾂Ԝ{3,Kd%<(p,A h O%J&8x&xY?MfA1jG\'pLq3+==ԥ:'W5T%4@$›W+BwkQUBf M#i%=Ub<,O'J"+Ejs>y%G Aq Ddt몀X A @(y [y|VB\t)=)usGi(.ܨqzyC7uq])qF?g2tnhzC`Ky?y?Y PZtx"2&dXd7nlzI; -1C=޽;4P BZW`Wi`ϪQp# X"^܂B׸V/=[k_(dbd6p~Vf@EݧǼz*Ʒ501YU4%Xi+@WV"WD=w.-^Y[xV(s<~j`#0/_Ni]Ow] m{jΠ0mcvopz֮:|$T=K:zm0 W3"<0vTQiY#9qVepxFJW7! _iZxɺj,A=yY+xƵ@2qtXؒ!)9v,Q-l,o$%w"^==pVOپlmF`MYxJ L +=l{lHjI͌eG0\vL3d=(>dF=m=0Fa* Oa@۷xTg>\Jt V0.atUc3[(Wd.sWJt pwXg ^Ɋ4㩩k#(+oo((!ׁ //caF pSgA/%36z4=.^(F~a[_ VM:._e8" 8/cF5x96@ 04㸃k&xtU6{;"rj#3Nqp1㩼<#0$xђ $K6R&o޼)0O\#C_ܬ/'8k܆Qc F]_u# .];$bBxWnNI<؉ڿ˿DyǍ@*>8U1l 1":z;>EQbnfĐjEV]*i+I1`3471m s\R$Qk@ߡ126hB/`v,_H\ÉnЂ+% $: X/|f<~"9Dʌgd!> 5g3^&Hp*Ol4Ɠ'<V1b)[/lЁ#p&!:['`@=n"OQe0YOK3#`qp3clB,#f<[nFIx 6F'#03@05"`ScTl3*b0\ߝ>`@=n"OQe0YOK3#`qp3clB,#f<[nFIx 6F'#03@05"`ScTl3*b0\ߝ>`@=n"OQe0YOK3#`qp3clB,#f<[nFIx 6F'A۷o޼y?qڵ .\tI%nR5tQ4i-'0q0Fax^ݦ<~ݻ$4BQT2W{xB0ˢ_|AJrݻ:3>jN0I ?`Rz*(ɽ{>}JB3 %Aʕ+/^$o ! Au3JӎY$:`!?zT \&B쪌v"fPB!_>(EyB…66Dx;ϕƋüDo7x(k/9tPpG;w<\ APÇ&{T>Ɇ ct0׌l'[/~1՞cvs-?njgNr~-̍C F k 1ߓ2r<.3؏*PiEA&>H8I~H&QQb!'TJŒ*֑%Hr$̏/*B_E %?wu; 3g+om P@y:xJrg%`-:0bYXYl Ҁ0>pH%(dMJe&nC>9*GCrq"g RZ>%~z L<=QEt(% ziYc\%ҞRNԨ=1Ι wa9NdFX%? *{ؐKN"U ="PFJ/L$a'6'YAy O<">('_MBZq&؜z7dڕ ւzvQˉ96R 1xu)qfrG@I]cl;8f$~ Y~?E4$KYfy)'rS?Y^/x`_8b+ @@ & Ȗ;0`5EjEJBs'u!#m;EI 5&l M&D8FUU}M0C$,Rg%>]ޑEРW׊_I&/%y!w4$O@38npHIv҅)4|P AG3$Ւ*2013{=3SFdeho³f\d\¢dN8 >ċ /܇F|冨n [e+1, $ųUNR>+Ù;+$a5 8őgw)DG?[a=%VKWۙ{{*7)!֜bJ[TߢkۼÊ6r| 5(N'@Ǩ'~fe%D'ӛExCZD)%~4%i(_fp$J5iVL-$ ~ِkqf<>qE7`/+i_}˗/^Eg,b?doVdHd<\ֺud<,nCfL\M.b<+pC+qSS8 xgA|A"_Ft?B@.%Z'qmrN_=*V0㎤?ݡ^v5a9f<+" S oTI\0bגے:pMBztr$UbZ3p[0F$; ߢPoi*vͺxjm3FE۷읻?ތx#`@ׯxܙWkU #`Sp3FlInfm񖝪ӄ1fo޼)6wIf<{#pR<ŋ1 DJ @ .-{b,%gtF!`3 .W6F`  A+ o*{@#`#v,tNEF2K[\,[eCvIENDB`xims-1.0/documentation/developers/flea_circus_example.html0000644000000000000000000000460610276674146022754 0ustar rootroot

Circus/FleaCircus.pm

Circus::FleaCircus is a class representing a fleacircus. (you guessed that, right?)

Beeing derived from Foo::Circus, it is composed of flea, trainer, audience und showroom instances, and implements methods to steer these.

Circus::FleaCircus->new($numOfFleas, $context)

SYNOPSIS

Circus::FleaCircus->new($numOfFleas, $context)

PARAMETER

$numOfFleas: the number of fleaobjects instantiated

$context: reference to context hash

RETURNS

$fleaCircus: FleaCircus object

DESCRIPTION

Constructor

The SuperClass Foo::Circus still takes care of most things related to Showroom and Audience.

xims-1.0/documentation/developers/xims-developer_s-guide.html0000644000000000000000000006441310276674155023344 0ustar rootroot XIMS Developer Guide

XIMS Developer Guide

Michael Kröll

University of Innsbruck

Hansjörg Pehofer

University of Innsbruck

Christian Glahn

University of Innsbruck

Copyright © 2002 The XIMS Project

Revision History
Revision $Revision: 1.2 $$Date: 2004/01/12 10:13:39 $
A first draft

Introduction

replace me

Putting it together - an overview of a XIMS installation and how the modules work together

The internal XIMS module dependencies

Check out xims.*.dia in the doc directory to get an overview.

The logic of a XIMS request

Typical URLs of XIMS-objects have the form http://host/goxims/interface/parameters. Because xims is using an event-based CGI-Application-Framework (CGI::XMLApplication), those URLs can have event-names attached in the querystring or POST-content, like http://host/goxims/content/path/to/object?edit=edit for example. The "interface"-part of the URL describes what should be managed, for now that can be "content" only. Other possible values include "users", or "tasks", etc.. In the case the interface is "content", the parameters can also be a virtual path to a content-object included in the path_info-part of the URL.

The following diagram of the simplified dataflow of a XIMS-request shows the actors involved.

For example, we shall look at what happens, when we request a folder called 'subtest' contained in a folder called 'test' which itself happens to be at the top of the virtual hierarchy. The request URL for this object would be http://host//goxims/content/test/subtest.

After authentification, goxims uses the first part of the path_info-information to resolve the interface. After stripping the interface-part, in this case it is "content", goxims users the rest of the path_info to locate the requested content-object and with it, its object-type. In our example, the object-type of the content-object with the location 'subtest' is 'Folder'. After knowing that, goxims finishes with loading bin/folder.pm. This application-class loads the corresponding content-object-class, XIMS::Folder, and they together are responsible for the object-specific application logic.

Based on the requested event, in this case it is the event 'default' because of the missing event-parameters, the content-object-class (or its SUPER-classes) load the object-info and pass them back to the application-class, which uses its SUPER-class XIMS::CGI to put the content in a XML-DOM via XIMS::SAX. In our example the content is a list of children of the 'test'-folder.

Based on the requested event, the application-class selects a XSL-stylesheet to be rendered with the XML-DOM to the client. In our example case the stylesheet is called 'folder_default.xsl'. The actual XSL-Transformation is done via CGI::XMLApplication.

Writing a XIMS module

XIMS modules are handlers for specific sub-types of the basic xims object. The handlers have to exist on several layers: One in the XIMS-Data-Repository - SQL layer, one handler for defining the object class, one handling the application-class, and another one handling the object-type-specific user-interface, in form of XSL-Stylesheets, for example.

Writing a xims module takes therefore the following four steps. We will use an "Anonymous Discussion Forum" as a sample XIMS module to have explicit examples.

Defining the Object-Type

Defining the object-type means letting xims know that a new module shall exist. Our discussion-forum needs two object-types to work, the forum itself and contributions posted to it. The implicit naming convention for object-type names uses capitalized nouns including capitalization in noun groups. The two DDL-statements for our discussion-forum object-types look like the following then (assuming we use the Oracle-Data-Provider):

              INSERT INTO CI_OBJECT_TYPES ( id, name ) VALUES ( OBT_SEQ.NEXTVAL, 'AnonDiscussionForum' );
              INSERT INTO CI_OBJECT_TYPES ( id, name ) VALUES ( OBT_SEQ.NEXTVAL, 'AnonDiscussionForumContrib' );
              

Implementing the Object-Class

The object classes define the different respectively additional behaviour of the module classes compared to the standard XIMS object. XIMS::AnonDiscussionForum shall be a subclass of XIMS::Folder. Because all forum class specifics can be handled using the default fields, it is enough to merely copy Folder.pm to AnonDiscussionForum.pm and adjust the naming of the package and the variables and values in the constructor.

For the implementation of XIMS::AnonDiscussionForumContrib slightly more adjustments are needed. Being a subclass of XIMS::Document we can start out with a copy of Document.pm and make the according naming adjustments, similar to the one we did with XIMS::AnonDiscussionForum. Whereas XIMS::Folder and XIMS::AnonDiscussionForum are more or less clones, XIMS::AnonDiscussionForumContrib needs to store some extra information that XIMS::Document does not. Our anonymous discussion-forum contribution shall store the name of the (anonymous) author, his or her email-address, and the IP-Address the posting originated from; three fields that cannot be handled using the default fields. Because possible values for those fields will be short strings, storing them in form of key-value pairs in the attributes fields will do the trick. Using attributes() and attribute_by_key() methods the task gets even more easier, as the following example accessor-method for the author field, shows.

sub author {
    my $self= shift;
    my $author = shift;
    my $retval;
    if ( length $author ) {
        $self->attribute( author => $author );
        $retval = 1;
    }
    else {
        return $self->attribute_by_key('author');
    }
    return $retval;
}
     

Implementing the Application Class

Currently, the application-classes are implemented using CGI::XMLApplication. Similar to the creation of the object-classes we can start out with a copy of a similar class and adjust the naming. anondiscussionforum.pm is a subclass of folder.pm; only event_default and the publishing events need to be overwritten, since our discussionforums shall not be exported. anondiscussionforumcontrib.pm and document.pm look more different from each other. For example, anondiscussionforumcontrib::event_store() has to handle "author", "email", and "senderip", whereas document::event_store() does not. On the other hand, there is no handling of keywords or abstract needed in the anonymous discussionforum contribution application class.

Creating the XSL-Stylesheets

The last step to get a XIMS module working are XSL-Stylesheets for the events "create", "default", and "edit". For example, for our anonymous discussion forum we need the stylesheets: anondiscussionforum_create.xsl, anondiscussionforum_default.xsl, and anondiscussionforum_edit.xsl. To create those stylesheets we have to follow the known, copy-take-as-template-and-adapt-philosophy for now. In the case of anondiscussionforum_create.xsl this means replacing "Document" with "Contribution" and adapting the needed HTML-form fields.

Communication between application and serialization classes

Most application classes inherit XIMS::CGI, which itself inherits CGI::XMLApplication. For communication from the application classes to the serialization classes a XIMS::ApplicationContext object is used.

XIMS::ApplicationContext

'properties', 'apache', 'user', # used for user-management 'userlist', # used for privilege managment 'object', # used for content-object-management 'objectlist', # used for content-object-listings like search results or site maps 'parent', # needed during object creation 'session', 'cookie', 'sax_filter', # a reference to a list of SAX filter classes 'sax_generator', # a reference to a SAX generator class

Application Context Properties

Application properties are used to change the behaviour of the runtime system. All flags and information that are not used in the content or by the SAX pipeline should go here.

Filter properties are used to control the behaviour of some filter in the SAX pipeline. Such flags are only useful for filters that are application specific, since XIMS filter do not define any overall flags in this section.

Content properties are use mostly. These filter allow to control what data will appear in the content delivered to the client. The content properties are only used for the basic XML data, but not for the stylesheet.

The following lists describes all items that are recognized by the core system.

(1) Application Properties

  • style

    This tells which style for the current object shall be used. This defines basicly the appearance of the user interface. Actually this is only a part of the effective stylesheet name. XIMS assumes the object type with the style name stored in this property as the stylesheet name.

    If no style is defined in the preferences, style is automaticly set to 'default'. (see example below)

  • styleprefix

    Per default, XIMS assumes the object type's name as the stylesheet prefix. In some cases this is not what a programer wants. Through the styleprefix one can alter this behaviour.

  • preservelocation

    Useful for handling object types, where the location should not be checked for unsafe characters like URLLinks for example.

  • keepsuffix

    Object types like File or Image should have kept their suffix untouched during object creation.

(2) Filter Properties

none defined yet

(3) Content Properties

  • getchildren

    This itself can contain subclasses holding properties regarding the serialization for the context object's children.

    • objectid

      Set this to to an object id to get its children for contentbrowsing.

    • objecttypes

      Set this to a reference to an array of object type names to filter specific object types. Useful for browsing for special object types.

  • escapebody

    For objects that contain XML data in their body, it some times it is usefull not to process the XML. If this data should be stored as it is (as CDATA) to the resulting DOM, one has to set this flag to TRUE (1).

  • childrenbybodyfilter

  • getformatsandtypes

    If set, information on all available object types and data formats is added to the DOM. Whereas per default, only the information for the used object types and data formats respectively being used from current request's objects is added. getformatsandtypes is useful to get a list of available object types for object creation for example.

  • siblingscount

    Used for getting sibling information during repositionin objects.

A Matter of Style

We follow the style-guidelines laid out in perldoc perlstyle. The following list is - with a few exceptions - an excerpt of some of the main principles there, please read and follow the rest of them.

  • use strict

  • 4-spaces indentation

  • Opening curly on same line as keyword, if possible, otherwise line up.

  • Line up corresponding items vertically.

  • Space before the opening curly of a multi-line BLOCK.

  • One-line BLOCK may be put on one line, including curlies.

  • No space before the semicolon.

  • Semicolon INCLUDED in "short" one-line BLOCK.

  • Trailing "," in hash and array definitions.

  • Space around most operators.

  • Space around a "complex" subscript (inside brackets).

  • Blank lines between chunks that do different things.

  • Uncuddled elses.

  • No space between function name and its opening parenthesis.

  • Space after each comma.

  • Long lines broken after an operator (except "and" and "or").

Commenting style

Global fuzz

We chose not to use POD for commenting our code. We want comments where things actually happen, POD-markup gets pretty unreadable if used that way. We therefore had to find our own convention doing the job. (Relax, its quite simple and readable both for humans and machines :)

comment2dbk.pl is a simple script that parses sourcefiles and aims to generate DocBook-XML out of it. The parser isn't all too smart, so you better strictly follow the conventions. To put it other way 'round: If the output makes sense, you probably got it right.

To nail it down in a few sentences: We have a block of comments before method-declarations, each divided by the four sections SYNOPSIS, PARAMETER, RETURNS and DESCRIPTION. Additionally we allow (encourage, actually) blocks of comments on arbitrary places in the method-body. These are simply appended to the DESCRIPTION. If used before the first method it gives a block that can drop some wisdom about the whole package or file - we agree that there is at maximum one package per file, don't we? We also have a convention for grouping method to logical blocks but decided not to use it for now. But read on and stick your toes into...

The gory details

Starting with an (well, kind of made up) example is probably not the worst idea:

package Circus::FleaCircus;
@ISA = qw/Foo::Circus/;
#
# Circus::FleaCircus is a class representing a fleacircus. (you guessed that, right?)
#
# Beeing derived from Foo::Circus, it is composed of flea, trainer, audience und showroom
# instances, and implements methods to steer these.
#
use Foo::Circus;
use Circus::Fleas;
use Circus::Trainer;
use Circus::Audience;
use Circus::Showroom;
# ###########################################################################
# some quite clever methods
# ###########################################################################
##
#
# SYNOPSIS
#
#     Circus::FleaCircus->new($numOfFleas, $context)
#
# PARAMETER
#
#     $numOfFleas: the number of fleaobjects instantiated
#     $context:    the application context object
#
# RETURNS
#
#     $fleaCircus: FleaCircus object
#
# DESCRIPTION
#
#     Constructor
#
sub new {
    my $self       = shift;
    my $numOfFleas = shift;
    my $context    = shift;
    my $fleaCircus = undef; #return value
    #
    # The SuperClass Foo::Circus still
    # takes care of most things related to Showroom and Audience.
    #
    $self->SUPER::new();
    if ( $context ) {
        #warn "Buhu!";
        my $dp = $context->data_provider();
 ....
      

The Example may look a stuffed, but shows almost anything we can do right now. A rendered output of this sample can be seen here

comm2dbk.pl generates the filetitles from it's idea of the relative path to the parsed file. Call it with root_of_our_sourcetree as CWD.

#
# Circus::FleaCircus is a class representing a fleacircus. (you guessed that, right?)
#
# Beeing derived from Foo::Circus, it is composed of flea, trainer, audience und showroom
# instances, and implements methods to steer these.
#
      

Now the first comment block: It starts with a line with a single hash. When the parser finds a line consisting of zero to any whitespaces, a single hash, and zero to any whitespaces till newline. Without that starting hash the whole block would have been ommitted. The next single-hash line closes this and opens up the next paragraph. The block is closed with another single-hash-line. That beeing mere for optical reasons, the parser actually recognises a line without any(!) hash as end of block.

...
# ###########################################################################
# some quite clever methods
# ###########################################################################
...
        

A hash on the first column, a single space and one to any number of hashes marks a grouping. The idea is that you should group functionally similar methods together i.E internal helper functions at the end of the file. Right now we dont render it to the docs, but we most likely will later. The Pattern is reserved and you are encouraged to use it.

...
##
#
# SYNOPSIS
#
#     Circus::FleaCircus->new($numOfFleas, $context)
#
# PARAMETER
#
#     $numOfFleas: the number of fleaobjects instantiated
#     $context:    the application context object
#
# RETURNS
#
#     $fleaCircus: FleaCircus object
#
# DESCRIPTION
#
#     Constructor
#
sub new {
...
      

Two hashes at the beginning of a line mark the start a method-block. One Hash at the beginning of a line, one space and at least four capital letters are recognised as heading. The headings 'SYNOPSIS' and 'DESCRIPTION' are threated specially:

SYNOPSIS makes the parser chose the text of the following line as title for the Method-Section.

...
    my $fleaCircus = undef; #return value
    #
    # The SuperClass Foo::Circus still
    # takes care of most things related to Showroom and Audience.
    #
    $self->SUPER::new();
...
      

DESCRIPTION lets the parser pull all following comment blocks as paragraphs under the 'DESCRIPTION' heading. (at least until the next heading.) So be aware that the comments you markup in the code should give a somewhat continous reading in the docs.

...
    if ( $context ) {
        #warn "Buhu!";
        my $dp = $context->data_provider();
...
      

Comments not using one of these patterns are ignored, you still can comment out code, or make single or multiline comments that dont go into the docs.

Debuglevel Reference

replace me

Table 1. Debug-Levels

LevelDescriptionComment
1Fatalsunrecoverable errors
2Errorsserious error conditions
3Warningsnon-serious error-conditions
4Infos"interesting" events
5Infos, verboseie: method START and EXIT
6SQL-strings and values of important variables 

Examples for using Debugmessages

replace me

xims-1.0/documentation/schemata/0000755000000000000000000000000010276673770015505 5ustar rootrootxims-1.0/documentation/schemata/xhtmlmodules/0000755000000000000000000000000010276673771020233 5ustar rootrootxims-1.0/documentation/schemata/xhtmlmodules/applet.rng0000644000000000000000000000202010104666736022213 0ustar rootroot xims-1.0/documentation/schemata/xhtmlmodules/COPYING0000644000000000000000000000277110104666736021266 0ustar rootrootCopyright (c) 2001-2003 Thai Open Source Software Center Ltd All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the Thai Open Source Software Center Ltd nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. xims-1.0/documentation/schemata/xhtmlmodules/README0000644000000000000000000000035110104666736021103 0ustar rootrootAll RNG schemata files in this directory have been taken from the Jing distribution (http://www.thaiopensource.com/relaxng/jing.html) and Copyright (c) 2001-2003 Thai Open Source Software Center Ltd. Please read the file COPYING. xims-1.0/documentation/schemata/xhtmlmodules/attribs.rng0000644000000000000000000000231610104666736022406 0ustar rootroot xims-1.0/documentation/schemata/xhtmlmodules/basic-form.rng0000644000000000000000000000776510104666736022775 0ustar rootroot get post checked text password checkbox radio submit reset hidden multiple selected xims-1.0/documentation/schemata/xhtmlmodules/basic-table.rng0000644000000000000000000000541110104666736023103 0ustar rootroot left center right top middle bottom row col xims-1.0/documentation/schemata/xhtmlmodules/bdo.rng0000644000000000000000000000134210104666736021500 0ustar rootroot ltr rtl xims-1.0/documentation/schemata/xhtmlmodules/csismap.rng0000644000000000000000000000417110104666736022376 0ustar rootroot nohref rect circle poly default xims-1.0/documentation/schemata/xhtmlmodules/datatypes.rng0000644000000000000000000000477410104666736022746 0ustar rootroot xims-1.0/documentation/schemata/xhtmlmodules/edit.rng0000644000000000000000000000203210104666736021656 0ustar rootroot xims-1.0/documentation/schemata/xhtmlmodules/events.rng0000644000000000000000000001100210104666736022232 0ustar rootroot xims-1.0/documentation/schemata/xhtmlmodules/form.rng0000644000000000000000000001047110104666736021702 0ustar rootroot disabled readonly image button disabled disabled disabled disabled readonly button submit reset disabled xims-1.0/documentation/schemata/xhtmlmodules/hypertext.rng0000644000000000000000000000246010104666736022772 0ustar rootroot xims-1.0/documentation/schemata/xhtmlmodules/iframe.rng0000644000000000000000000000262510104666736022204 0ustar rootroot 1 0 yes no auto xims-1.0/documentation/schemata/xhtmlmodules/image.rng0000644000000000000000000000151510104666736022020 0ustar rootroot xims-1.0/documentation/schemata/xhtmlmodules/inlstyle.rng0000644000000000000000000000037710104666736022606 0ustar rootroot xims-1.0/documentation/schemata/xhtmlmodules/legacy.rng0000644000000000000000000002356510104666736022213 0ustar rootroot compact compact top middle bottom left right left all right none compact left center right noshade top middle bottom left right top bottom left right top middle bottom left right compact nowrap compact left all right none xims-1.0/documentation/schemata/xhtmlmodules/list.rng0000644000000000000000000000311410104666736021706 0ustar rootroot xims-1.0/documentation/schemata/xhtmlmodules/nameident.rng0000644000000000000000000000154610104666736022706 0ustar rootroot xims-1.0/documentation/schemata/xhtmlmodules/object.rng0000644000000000000000000000340410104666737022204 0ustar rootroot declare xims-1.0/documentation/schemata/xhtmlmodules/param.rng0000644000000000000000000000123610104666737022037 0ustar rootroot data ref object xims-1.0/documentation/schemata/xhtmlmodules/pres.rng0000644000000000000000000000363010104666737021710 0ustar rootroot xims-1.0/documentation/schemata/xhtmlmodules/ssismap.rng0000644000000000000000000000052510104666737022416 0ustar rootroot ismap xims-1.0/documentation/schemata/xhtmlmodules/struct.rng0000644000000000000000000000260610104666737022265 0ustar rootroot xims-1.0/documentation/schemata/xhtmlmodules/table.rng0000644000000000000000000001216410104666737022030 0ustar rootroot left center right justify char top middle bottom baseline row col rowgroup colgroup void above below hsides lhs rhs vsides box border none groups rows cols all xims-1.0/documentation/schemata/xhtmlmodules/target.rng0000644000000000000000000000125210104666737022223 0ustar rootroot xims-1.0/documentation/schemata/xhtmlmodules/text.rng0000644000000000000000000001422010104666737021720 0ustar rootroot preserve xims-1.0/documentation/schemata/generic_request.rng0000644000000000000000000004735710133545414021402 0ustar rootroot xims-1.0/documentation/schemata/published_document.rng0000644000000000000000000001114210104667330022052 0ustar rootroot xims-1.0/documentation/users/0000755000000000000000000000000010276674215015054 5ustar rootrootxims-1.0/documentation/users/howtos/0000755000000000000000000000000010276674211016373 5ustar rootrootxims-1.0/documentation/users/howtos/images/0000755000000000000000000000000010276673777017660 5ustar rootrootxims-1.0/documentation/users/howtos/images/xims-deptroot-add-dept-image.png0000644000000000000000000012127607776633447025756 0ustar rootrootPNG  IHDRgAMA7tEXtSoftwareAdobe ImageReadyqe<PLTEUVX2Qxu-Ogɯǻԯfg\ufggр888ێײgwxxny8RDDDŷ_a,q#$$ٟMh{2FTVujuաʱ$0΍ߝ镦Fewopr򓔔\{ exDTg''} 0G,T(ߖü)?xpr7P=Z/aڌa6Qq3M'蓗-~66<<ORSS)**JKL:RAY!q<-..@@7HHIH344ќ>W;T000n~88F;ZpĴkOOF"!޾㙗DIDATxڌ1@0Fas3z[hTqFDF?L+Ú3CX3O=/{LrX6pUؕpjJK[8ф]$ lêG146ol^ܬ FP 20E^[+rjr+Du D(8xHyxZHQ !wB <‘zmTTTp^: @Y@퐁-OCJD"u3g-&CcF#&9/ t~~UwE^r"&x@z@,(`b^Tn<9?o1){ȱpcD45x` AG:!FopM%?,= MKh5/5l`ެCsx8T)mMU$k!\kBk!L 8Ь&i_L+y^FKf=.*(#TC,9C.9сqmQqR:$ X]h "iGO?aۉpx0 4 Dq\P :YBA2r9 dt࠽d/G8; g"^qP~of ȑCfDlň΍-~X?`#6xYkfI,Yę#,9.8IS9LHhQxTgɒfpܝ/ûr %mˆta~ty5wZ\E@'lyϧ aH$YP.Z*=1\^Xǣr(eXvѠ 3Y8(ʣS'Se|N ѢUwBq.Y[JRlUjJsWc?1\XoGk(0A iԚb-\c5jd CxFBev2Nht"5DOuݤ|>p_N7;pw¾HؓKb̐'b 0 $@_fdM. Skw:w!/A V8$ XnɒS#9 mR|_cw1uõ ^I +}PE"} 4[½\ jʈ egkiGYc-7 i*Fh$͓e)'2gSI+&,aC*bСQI5싟-Xbdɲt)PDF4}yںFJ4"f艦3Ш"FB*v{ X8hCDlѵ@hfTБg0:ΕJ/|{.ovQ XR۹ H$@Qc/謱`HL%eÌ]~EIF?fq6S146566 CU@!lB5+ jD;" .HG]]`4LxlJ ̲)Қ#dZ 3j#p?%@ ۡ`)@jzhQD-T"&u#/# 2HOg™uP -K.3zxr ,v%gIGDÿ{#YH{+Aqg:ֱ{p҃0qwH7b E8 =w $fC<0: #0܂p6؄p@-o*Q5 Q0 F7@A3in |EXT}Ɔ{FzZ4Bn!rYH8Mjl)\=܀SY(hi2Q@u@ .lݪ r #Y޺uk#7k,r F!Xne8Qί,n=m=u:lеea eXTpyAS^ciJ{1JpZp^1wAƸhbxxTZTTYZ(G{U 78]nDAkä@9!`9am=)ʅ _F5@1]rJ=aQ\x1t~I[mPy.((pz~`b=W2F=ŋ ֞z[儶6OGk{Y@*}ZY{jiG(//`Y[q6KF+Q@]@ K/X`*/_FR+7w:˗A;@nbn!郠9(P7A˗NiB 1zq,֗j"tt9ku! P]N -A@]/s4F< 1E]ՂR! ),(r0q4F@1JuP)%1eN%lPb:le([h:gilE=4E7]V Q0 -#Q0@1ȌQ0 dAhPBC QgL@ߡvZA| OS#Fq!H#+oPPR!apN[_,! jg6@>* zJ1zV KVoS`==s(b9fA=a!2,zs=4Ϧ[ U:xto @QFh_R!_q0yƍͶU[C&d)tf~ qėҧUTߟpZo|tbsiЩ?zc@*bK#ЏFװz#`!OTko444QfМp)fM4[6H*|{Jm[eW>g&e\Xe,[wP3:TX8b|j!}bXJ]2XZ2B8i&,r&rl Nv"8LoQC@ppZC/ǽژ%w8꒹9w@kBZW?Q$kH}g̟9FiRYeЪ._kS2mRYL\`apmӐa#05:_| ^:-T遏Y5JF >/U|K]@inӧ6'6r޼yrn) KP Fzba . 3]IɫrVL*=,s`ދ۷Ld^@RH(*kk1-fU:s, j!0# 3 et7A[3Twɸ\[5^i`kAӗ>iZX6ʟ΍[gDa&qp4(#Odֵw?f>3.akHM#`9GOeI smW..&Tl c}U72}ct䚍BA]f)VQH1gBܪ|X/` X]입 1|y0Fn073;9X$ǘ\_ ξ˭ 1k]e ݍVBkIrhAhym=I //^"{a*=;Z<ÊW s"¡ V`l0W8@42k&f 2/뒙$4F*37+,sIܚZ'_~bZ k3.fٲe,?9?hFqU{W P\{eA `!{q#Tj0W~U^Y5&]sbe''C+} P>hP}4FГQHNX,:%boMy`u TǑ gNWWF rrrfH5ƒ͛V)j2@ΘA o˦C6+ۡP\tpJ"c$\@A1K1AvR[  t2Tct8x:JU,O.@K{Mc9,\Sq{_`/}09X5xBmz&W|)@#"k,X\"b`H(ceAzJt Bz .-XҵsEc2E;B?OlujܨkL}~}"]8:ofCx3tGM)m!4h4"ضi^jy N m&r0s"]y=<_.`ߌY0Af.!\Aκp ,x4Y)dpMI3jB dB{D֛{ymh(0#XlHs/]jAjkg1?MRA~ٔ"( aoz9d^  P>4DEuwΈG4J~5'#BM#mr"dPj;lDV"`)E-bQSφ.vo_Zrmi9•[0,w ]Ww˒vw%l1X3#24k".i9ӧ9ŸWntЛ>c,'BHM#vo8ddvZ/3Bع Vn(U2 e=9 ,aӧ6y8iAҭ=OVlXP_ ΀H11 +LJ'mh _ #MsRF0Zf]w^|r F[lY|fsͮT`B;o&<]j93`N`Y5:}xf?9z ɫޜ<X&&Wbඉۯ ;pysO\#> XN[\ֈACY4w-0#4ZR.yf`F*̫VظuHO,sů ɝ=OOa.FAe > sc3@\rI'O73pJ/p7Thi ;(ȹ#}R'O;qp~mqn]^dM[ > _Mo탠#+!,3|cy`ڏ59|ab6 #Z%/o5`U5 sNviXHm.$$TTTN cm4P[`) X3Jk B2z+X 4Ke2~ ls-`eLVn⸅℄T@ڧt0G"ƭZƱqoBNLFs}샃TJW )fܑ8VYpX`V V6l/CC20wvQvCM#w]1Y8r#@B5122Z5wF8mp6hZÓ87҉xYM^(z+Wj_)-71{5e9+ @PP}ŋcV]=WU9=@7!r|8.n;^Ξd=uAe8~2lpQKկ:UЁ>u` \3}.g&pLpѴ2@1lU^vˠ;Ul/iHFj޼5~en{6Dn2#LL60@-3ڊ*H$cBI}r'aXľs|21ɺuϝ6ˌ&a`vez, X/XU 6pc֔OHfD vPp:6o; V dIAa:(f "9A/cYN:3›&` x9@~4 /+dm OG<3Df3e/ɉ31Q#|,cT&V,fT33sb}g;qWyռXآXXTvf=PAը;" H(wj +kL`dM%5Ky vX"C #}7H$EZd l哣'1.TC;5,J8V~ (e0P](2'x4ƅn7㉵H_#z'BcWa(?HA,! <!-.YKd) .H,0NRp(cA0y[777!~ppwt|IkAWٶN˿*uzO]?ǽ0$^Td͗cfJ24N eHu\Q5@AC%[K"lu̠T (4xk1oR=w_F0U4R9[Z+1ɸ**aBϦۛݜ`y F& Ek*Y\VCŨ؊@-/k>SosQnC+.kMGn塯cVF&U!ٲdM{0ف˒%]&y\P|a[^2HJp}Ձ׌.BP62/ZI- 2ep@ 0(0\ft ` Vغ5Vg!75.Z^hYo@30M&mӗwZvGxB`FX8wPMN& V~-Ab_[vhYp02w ׹4$gٛ; uv<e9PM,σ>,#4m^%lưy@z(߀:9uFA%?Y Q nM 4_vI#qpFZf>kh^ JOGGq;5rҗX#xOebu1O$i?6tp5`FܟMW6Dj;Fnqq`F8@ωe{^{Af`{ m&l̽Iދ@u04ԤZ~/T?}tUucAh{5klf\/QU >}Od\z3&uQ iYǩ`f*m7檻VzZ"A9k9i(0 Ήgf(Ga>ůrN7I^z A\}!7%YlF^r P棰WQt %e6co8^YѤ0@1`ߦ4|Y&΍( .[:ׯ_ l3 F0HM3ٸmFG*yyhhQ`@ G((#C޳g`t@ | P((((#>tHСC@@)ABW:t}084l @30uQ0@3BhF#F`T0(,@Ц(C5'2Ca!hFC;P hFh4#Q4F(`@fQ0]C$w Ht=JȃF0B0aQyz~`SQq*!9&TSTHl@aп>@ ߅k hy5 R؅8@fQ0@٠\poC!69t H"R!Y%,Q @aЫ]KTz.%Jވx0@GB*A%@ eT.񩰜S*1xp T~!.A0x7[d;ۀ0A[g![0`dyڲFĞxg:q?%7[?THNWwERjg@vhF4;PR&bChuIewݻ.K \" Ɯe?Nʳ3Cw񦁍Mβ;nEKRY?uU hFhc"P-ƱWE0]ʼm3d<X{>ī ]#$b6t{ fX"eg\% 3\\!-y'"XJXveҶd\DD\fe]Mi܍0U;Ln0"\'n? *""@h4#SؼlVApk 7+̆vy_E_VZr8 /m+|. Gd٣en+Y$ ԓp7ſ jB]b;l%<D F3(C,-`g0~$V"Ra<H>1?fWe<,/1ʁ'܍@fPc @$^T?cTȶ ܑvRh4#:dw"ﰉ;W4l- {;!DXK< ,\iLa;pAvxVP.!GDVMueKfpь0 hEp$,0 RsЊ Jp$ѵq|}W[@ y;'m F3(Kꯖ J%i$0B+:&e+7-Hq[&(oSxf@U@jj}X pPJMQ=PR; F3(C6PRnLp R}0Bt* P5`A@1,j2 F9WU-A0 f_WJ£`q(%KnovfU 24=,vQ0 gޛМ0d@1ȃ2? 6 F(Dg7agdM3?axcGsЈqs,89$ҁ| 1²X\Az7( [GCu@A2Lm(w=~L#gL d?^A|8J׺t1#fM2}Ƙh9@)7LKL0eff#*{-S?`A/k3Hl Y;gD54ҟ\]Ƴ3y9a6nKیgg8=s dF;;n`jg{g{s#/vLF _fufOlg Sޙ3G%ݛ+Yv23333yg>z> $>/ TfosV{66sB&L\^Ye?9vs6yF5gM|Y:5:!R#{ p0u|)3Ӭށee=6N#6۴xY0 ky3ͷ7S`iUcnц q[Nox/1<'85mޚY33>HgfdM,8;-#lA&㹙{8wYQ@opVCY֑AܙYk&t =_VX#4j3?G`p_'?K(',d=r=4vςY C5#F0|ߧs)SÇ&ffx{Mȴ]CVfέZ:3m&tx`fkmy3-^/>;T"/P.oe4P5"ݻwE$X.i &weDjG_[`/ŋP ޑO;>!&G^m! rΕy@m\g*$ 眍F x^5 fćZ ސİlb }DR>7D@1P+9GFz  fjh6F3q5I`8BhF F dF(7^F JԻ$U %)%T#VPCHuXb<i##=HnYҒ鰴5MY^7D-X"ر?~HJ&q"CRS]8 r'rXc'I Iˑ4@n0 P7LR#52S`^c A$HyڐD&\^NCkΕ1-˷`ϖj,Ͱ''B]޼VIVdw @o^Lpq~ @^0H=DrEO;hSQlwx0FYDq5WwjKq-EB\P´-d F0G6tϤ{FooWkrVdϯ/\L˙0z @ ð"1UaaMFfSײ܈}ApSOm`ǖhԌ =TpQ9-a#N!A"p_E}6!YD.bw'=~( hU*_Ƴ: _ UzCLs]x~O2YV[uz%> m()=fHRUXJpwyk[ }?zv $nA 7=vb*6A&Xo@Zgf屒5I'6ԥ2AP"Cb_Lcu؀kU0Ze^7S1P\2 -ɁK}` (zmgrR v`x`*$LObb,%˃JFtJ 58#d],!5H X$y b?S1 ju}, F(X!i#aSF&p1 l5(% b2VKP"懨uD~$\ 2J)V.``R t@N@IrFx l j X ` ԟV#t..#$= N(؟ :; ][Wh, H}Фן`8,{7R y-2uBO={CF:=LKxΝ`e+ 4zkmmJ֣ߔ_|74{/|~ PX+>‡SئQ$X-쑄-Qx(SYKT$At1KK,QBYϙEZkEu؍1M#b32O%ĭ5!  FݍkFHrROQHv@#v?BI4rF` e`p@: F'F( a(#hFh4#Q4F(`@3PALTA26:8:C }})@|I(f<#eۉ:갃lf~Cb Vcs%ԋ"cNj_M^Lo٣]odZwv*vYt@qO*EG}'A̼y2V_xGz99jVz&-wM|,l9z Z8gnjYs.cȈLؑ8K\4.u6dj9cΎA &/:ip"HPFt\-A HS;dW @TFF,MUhԒFef10]@T0dd1jxx#N' wN~g &IחdW*i O-*Qxv76|&O܄h'{y|qtQ]/~nw4wσyuא`bݲ)5kZ6 Grz  3w[ۘc8Ѝ8 2c]ZY|+ִ Κʊ ~ 6 DaB"&B $fbbeqU7FX\*2WSL 5sqa_ĞOޯɯeE2] !Oa SW:a:OJ~ffkYp6+_UHPDTaLIx{Swh#VCl66tS`?Vٵ*`ʄ*2:4(t(s"TM}N\/%xċi&{Ó9!~PDЃuSlgng ="z㴫%dV٢~` ]0ުS!0*!p\MF*JƩ%ȠUb;s3l&D {>x-]]5fkE*Œ6gڀQL(1%d=o)p+5ɂy k2TGf.q N|L*dN"3 'Mm_1 [3RgoYO0=u@1kqv\'Xpv{V_}?]:\U'ǩҰ"S+OaMIK>7aW!k@^Ud9:Rs425ձ\aLMlab}ν}8(Ptjڋrd`dѢے,垩?QW \ J ؛rxgq)Mo5C"p:C@-o4N'CEE%Z͕H[,/N燴mۢeE^."忪%St#{bnv6!0.F s({c#HwVU}|tf\7v ,A?Yt qA'&V>As;mqհ/دcԆa( P2 D'1d:xVw-UҀPeK Ynн{O/gŃ,i? =Fg%eV !C>6eVMEFXrs¥e[GHÝT'g0 LޚcPA^迃? F xC!͜dLND;SlMgv% ahKOվ= Ŧh?t)a;Z^wOb]&Fkx1]VW#e1 a\ :BKB@su%ԭ{A(&7P:.Svt)KA -$[{ZA?X|bVc峝Rq?V耋/pķx@u{IҒq ֕洋Ri4h8]RzQ%N~Y{Bl(GςR[*QL ˁg#ER-a9xPQy>(qjDAkefv̺Fh5ɍB20t& XFs]^5rqq+#g5/_꣼Fp$uu9ptxxyxg2!Q#tܜ\eKzU׻>~=0CrM2ksdge[]uktD3X(;Ȇ ips=?f%5>N]:q+W[i,ȿ6,kvaf5`q`Q#Wx7G#.#poY#l;)&fжe˒1tcYUDXGs52q9#矀/ϾfGP-K%oL.@p.05͏n2 }q4 @y@i=է%/_>[(T]=lѝtHeM!KS=`뚄G@uh:4# 7MP.}]n53G7Nf~ [&4ثd|c#j>ABhFitgrK-vfebO0'Ws.e#,#yG w}|&j/#,Uk GK2(-&7m(f8Fe'L_6 aβN5d#,#ܔ +;Rnpj́ݺ:hq8%#@!.jB\x Ìp͛GPPp&@!>ug{M\U5kpee˖}szղתŬ۳LZVVuX z2w H9,˔.>L~z2@je s@A2jmeP9~^]san61g53h&Zsvu+W3RFe ܪ98 pmn22pp((JyIF~er@l3e(ovw`M%s9Jsݗ%,{BerD8$'_˱ ư lW(j2@!jaai fP ֗0§N}s˖m>aɹle`Y,[6%g(#Lc24a`ia'lD|eYr@@X{. Xf*B Ϧw7?J}'0gY؁ܰ|—PF0imF[q WefaM ?MpdPF&zX PyXF؁}˄2#\;|3w<:ѭdBYfg aK&/*йF{;Ġs|f Vfq_T ,lee  F. b͛L@ls`a=@XFV7\k\{D=oܯ=ؿ?˲@}0ir9(,[%޲4ߟе@| .~(̅ٳ5esĀsO ۿk>D@ꘇiȳz>ь@ Y&/GNg2B"mA^:DS,F2VW?.qי|Yd7 V4 ErG39 *iՠyASʹ1 >5MQ@3p`t4 F,Q4F(W?  dFՊGsVVVH*X^PdK:Fyz `QMa7aq(icBjS_ZXw'^8>@2;{ Ioչ- ޜÞ#PWodV 9DY0  xFmŮVz-9+jm >>麹9aKxy V#&OZ2%Y:#0j_}g%6d)\L&=ZOzյ1gI-Y5꣠ _0"QSExu ?l =# 8+8ZE^#e &7ek; nu>pM[[A:F[;&nUlmmkj]Fj>wY 892?TW/ǣʸڹo P܎QͳΌnhٛotm 0ʟbԱgwVD,*יXM2ճ;϶ B\7ꤝA5B6פk>>Vz[I87T oW&Fa}}"cA5jA^wlE 8>ξdp),;gUAl`ayNpA9xE{筳PNGY;A.%l%wG5 `aJI{|o_s]| G8saJaiar + ¾sFxjxnJ+zO ; ly?Xqp1SfV?ly]77gkl:Af3ox ke`ml`ϻd*trru'/CWea 0%&Fa}=YHe~Q W}\Pk;gwV߽{7u&&(X[p}\2y-w54>wdDj[ k'-("ݻh5,@>v ]WgoBy:@6x!47yFGeɷa#wv"yqdq)𾵳5N͙Բ?e((L,=CC7n ڽ35`ceWy#(gg/-ȶם}F Zy2} ;\}η[7AF""΀UD?/dVRf3?FefYl"s H0YvVAi`gy ,g^w<2K XY D,Xz۞ d\tDږcFea#۳=kg xYV܏l غS|""oA?wy+ځ n~ def@3As`:"v3 unʈxoo6zH<9 vŝn κ%;yoBg727o2~7fVM@q%@4w{# *>Bn0fGݷYR9bL7o}J Y^3j<;NpwZO0b@=|ܥbQgO+@tڡ.=hrz F,Q4F([H`ѹ!>g0}!qQ-{x+F 4Us/þ(Mˌ fd,Hq ;{0F7b&apuu$%$ɝKQ DFUۓTWZz5=sφ0$ߤRF܇B1x/CT s LJS 4-Gϲe~~X6 ,ژDy]G›7^:C?B 9 GK @PWԵsd4}Zqc\ITsZB !ivrV9 ̹ZS1)! %7Va6=3ݕ$F|!qG qge sYcn޷4WRoz@?o5L\ry Z2d͓'БPkd rS}R[qcRv, Qpt . dC1oh ];d $.?@pB^2.M-.BH^ ݚqr8u2 ng:BX,w &:R­ #賒B9Q0O3@ A? D-!D9 O*WIwLBѶ&,Z!&IdU ͂Ź3l)rj2 k3ג1BHz,YVRW˱mJwICK ה ٺ꽽hm'TGTy6[|7Te"Gu#ϊ4rxZ3%p5%e{ ZC{ /%TԄK%/l yP}M-gTP pueF[s%Ltf2eos0+TW3aYLuu5ZЅފ +e Wͭs[P]Rڲ7{pt%WW͑[&\p^lgX Ou$e ok rVC]T:BuuÊ:`êVO$ F7a?~d5f` ޘ;^^;%ED0 ,`Qf ö"oSc|#:yh8vY"H:X9HR$4%y  @jR "HP@ %R!(ցk+PíER 3D9rWrFeI٫U/Nz̞ }?ph7Jw5\dc$,QwƉeS^#`o.N@TAd `fk+MZڹzL`'xJ7!I2DpWe9!]rY@e hs89s e~j)V0ߺLp3̍9\η ڲ;sL,ٳ,2[NQP0[a^G 8yu{ V +MvV0s>U m^.^U?$@i@I$Cbrd_)PqnH HP]R# q -`6d+紴$8X*SkDkZ_UZ7<`v- - (994B ~QPmJp#Zdp0$!l:A, 2BU]^ŕsr}췲*~ C>Btea+V7mV^v|90qTWhZv|8 gj`D! fܡZ[IJ@5yS{p Q#]& o@eM=/ OFFpwV/[V`ߪyXzCjOx,ﻟVo zz 2dϵYP؜ygnl5`Ϙv9=O9 k8;^Afw\̊ŕSZ-xF$%)2&4#Hކ`MP Xg\yN@%ΩkI"j`Q؀LnMF`p[7ax0zٲX3\e[=g9{?/Uр{>w\mA,7:3rFAОei^wEe</5eP] nA jp .H `($Q#E!#H"] @[`BH"+G!H nPH u!p fWbd!l.TeBF9eK2ݮǒ@ͤܮ-3i$ˮJI9@e^1 ]-s*늃Ou9,7iP˒3Ɉ9%g= z7/k 9, f,9r &2`һ_fH5s3= @=9V.ZF`g䐌`t4w? gf&hs|5.gs^RHFj>πC)ͺ x?B2γwv漪~[&pd}HA}P,h  FbBIF@-V] 6 >E@)`wF˃hk ' utkh_\-#U J $l k&ISkX# a` _Pc@IXDWv_\jE5X%,s'ٞ 쎘q#<6Xk  6\PAXh!/jP%-p`rFK(^V LI'\XO@LLUXjP^lJ􁇏~(Dor#Kŋ+LIApwǽs/*ٹMε%SХg=w4 G8 ? B"|H |ٛg̸y6,;[w^AO$&{j`!WB7 \k[[7ez-t +0 X&o]4-eSFXGEwWN :ș>H p ü M>liI2 F#f?MF Z#s)K[~4Cmt7' 3=ˣ`@fQ0 F3(@@a ьtad=t8h]יV{ot7ZQ|/bmMi u&;xU$s%Baj`|r* wX0Jc9ଝ|Ӆ  °LƾFOA* A8zjy6MK໛&2v>6 &({ ; 9.gN P5P~o VIf$̝ufϯgs' mhN" Yv1Kݝ'0w4h 4BBֶ V^ 6t z@BKet@mv; gȱY~vM:0sϞ^a.D=\(slN`+=פy'|b&Ɍ:7}3 kPg?8/X1oZyVwϲ }k`gq4 wv.)`IKM7vyCmXtpr A%PZԿ=A0#|! ٽPKJO3yʑeTM?1 $SCGJ:[@4rS>xQeu x;$GP"_$k-3Dcuo]C.hl$(9ʘ /d=DOI0m8%lڳd[j=)lɞWۯٽD Re$61վFڿO|R7Ư]1KP~[R"8B0%M͒-~@j<:w{]qyĿ_K,_|}w}pqׁ/jTϪEׅj@I.`,3$O P j;c:36x>\T// 5#֋B#63Bs\(iبuJ ^FջrX jV ثX݋ΰ :q{W;-Q x{eǶgy53Kr4'+(.. ӏm|w3}4Kd}Iɭpw-KN.zY5u1Ijm?{ګ儭rȵI[z`e6dM ,m9ofV#p-&M1asO$x"qU},<۰dIs®%v[}Zr*L0aM״)Hi ־(S[@~`̘( barڮ9`Z |mF0F K@gv6T0́O ֮% Y3(N}G x d'깐vBm-PbRX b 2B:Y[ m;J*|OGa24ޔT<Z# UǨg3hÃ`adՋV:ڐٳ?C,#jLc\yW_zT#L cm)IQvdגxp=01YĞ,%1k:>pF'+p&&b5UWJ#|N/o Ff0P_b5GϗAV]s9+9poW&2,om# I$j$h k 1 N"x‡v.?%aMvsox4#󧵵jPFmRVaZ/[dpF7 f0 ayR@( &`%)fL[)~BS,GNxKGw,}dڼCZN~ !Z`X' )Ǡp-%k4ڣJHG# c V}z͍Z+2vbTOB?s1M {RbkG8 BkÐ|7< 2 !\,rrG Dޗ.6%E~},錥]HQirᱮѿxΘW|Ks^{oUWU5] apn;_w0TP} $hR>/Y)/ B>0 EF|!v٭+LZc),s\Z-%NF1as1w P88wE?iȨq.u8Q|ڍiJ [aȼko#g%,:9bM8}aۣh_ccؼ^Б+rv0[7h!gKva +W)蠡Y`K⛬Q3pOBV@"UY7M;0dH[ϵwաh/Ū*jX[Y`Q/oM+Rx-|g L.xxFmƚ?<<"3VqY>0QjM^]]qn6.gCmfL3 .@la`ڎ8 :v'NP/f:H$64@ p z-ib$:aVԿ&d]'kh4#Q4F(`@fQ0 GPsGv9: AځQ054L@6 H>:wM@0azvؤY@@a(ь@5@HrMvBKnJ[Y>* vĂL%ң˘VZ 2>/ V`ŋU݂Etz+PcQ? ]~v⌣QZ#)#H_ou}\iЙFMFzCQdF: 9gβ)IϕW_UOh  :c|QJi0M,#t6/r3FclF  䌠=GN59idЭz aβ)I;D::7 g;+&҉k8! >W-Y` \>Iyh߲٘9a@3y%'K۝HY>^5ZL~^3FlF pBk u&1I!&]*N8pU+scV']W9@5kABғok%7In[oNΪcfP9vj% ȹ^[$'g0Z#RF`vgς4mo l US㕶_|97wیsD{KG:fB1Z{V6/l:7J+Ub;WQMa͛ >mG!|}s&18v4FkZBK'>:o|!`y}FҐs@EvVV%²@Y:3 D:A'4ee1}4|nx&tN|nعGge#4DZ#p"ݒ3 Fk plNh0@>FhFFhFFjFHwl}~Fp@[5g δae),uymٸuxlgҬ9n Y|l˘ T6F&H 5}\Y"<uB9~~W>-Fktg9b` (sd`48ַXQBQP( /ỻY@96]o6A"@i^4Fl 9\X!ms7V 5€B޳<}5[lsE_6?t p<[(q ǻi̶gz&r}Ys5^p#H"l_sAK~uy+Z㦴#?.>Sg:a@g l ~7`3gЙ;,0#p8cZ-1&Y3f_6YHXuܜ $U5wa#nǪO>9:~ɓh0 &vu _𝢠Z.FV+5lilA X/"'[(Μ-Eـ>d ř'3 l7O^yqo6;3my?F%EDLc?7L,< p,;,V0@,g+pV`ȿggϮ+"R#ceWco+s,Z;7_˧st5€Bd,6wqwWgC\ z!}̀)(s>gU7}Uh0 'tttu@,#@200ݗ dQ:;y.D=#\ 4Z\a@a]tws eM?eg a]}:Z# ь0Z# ь0Z# ь0Z# gGRj P2MFHAD MC7G{z P2*8Q3NigYMXYsS䒛%xO`#0Z# n@(jv&/~`sf~suG\9`.{*#a4#rF8۰}ح FveoNcgg :Ʊ6,LdQs}Sn8 3ٷwxf>b*@U_h@5@aƾjeZ\mm70ikefuqu3Iݪ=)k9 rFkhF[m;P]MFK!9Ch@=@{j'eg6vONpv64oNuv TysVfd&׭ ruِK@NξpOi62Gq>ұ aTcVhxsF pvn@p\_epA)yWfur9[W+7靐5.8p tSp`FPV2|hY4zV7Kqǻggsy} Ə7't͏\?u6 Łp=7Aj0d:72 ico\9Y34(#07)>uaz ':>aVV}  s|fX#Jxk;[v;6vFACw މ|,UM@{/Px@jfZK޽uqF DFkJNX9oe%7AF9վ5B^u ;1u+*\ZHڪ[Զ 8pUN>7Z#@3w\EY#Dx xy Dxe~*hg+hn`k'zm^llҋ Du&z;c50eg& "h@oF DF^ l+]/?'PToZh`tt 8?Y Ka$IMa +#ݰjigpDNDp;\X v;wrL\Al>XwE>lmgx{F DFN1 , ;{1 r'ͳa;ngMɁA]HS: ȗySZzY} Kn<Hf0KLD xr30E "2 `##;X0#Lgi\&@ ZG#3Gwf 8 Z̷Z2fV[t>F``2(fwxgpbb@ TF}\\YDXgs ̷l9ؽ1.mpFPTc'`+vu=qֶh@53 aBUa,eyǟ^_QX.(qqe@`#մUX]af~w{dX1?:ޝi7>G \F2r2Zh2Br݈i5@ XFW1ޙ&4p;tFX5@Y`F  =qF P3Bk4`F P3ՁkMP5]SCvF 2B5^ V!=Z# j@5=v PS ȍfa"b`E^`Z Jj199,*c(i5P?#9_yUyxyu(E~틬yj[󪩩jF%aF PO ?p %*j{k'0FHgko˰gjr޵jaj^={T&%fa(¨P* Ք}ꄵW O N x:eպk+b!GYnJ;aFR 6x&ν`s͙^A9~@}xW_\kWWMahhFZ f;cU  >^^{^m{IL +yմyG;ˣ53i=jV`k{MN8#v/3ʩ\;Z#C >gLskvs@'\]kZ!uŹ\>Fk!oH-4)jPacP愊 ?&&^^-$#$ՀB a _@ 2\^=U9ɪ1UG3( Ae1&)&`ےʛDDjEF( h:3)Bx@ARR|I{D|p(dllLG( <%i Q@ HQܺ-`,4YuttF( |--()u4%@$VViV4 4DJ(& )BWJb%5%M[&Gp^&qHsp@H0QRiT rB0* 5*1  TM9LlQ0 @$D3 !a#ցTTHH dg @"$$9T"-H#ѦҰZ&H6FћIpH*-*(Uh;i8BOI` (d-1,0ac Q@ xQ9:9 OI~zZZ<<`^Z Q@ D27o@S(MI: )i@Q@@(є4 hv4Fu@n: FS(mPhJ4ZMI: FkQ@@)iPh6 h4%Fu@Q@@(є4 hv4Fu@n: FS( 2 F PS(dMI: FS(є4 h4%MI: FS(є4 h4%MI: FS( ) 4B)B! ,},x,-%*CkR zP $qE˔Bd&$ha0hgJ9 S6 RŅ,\!+,ʂF@EYkdiAAa X@MIȑLcIUE YB*"XRVDGJI$_&l"E HIhy "H ] j1ˤѤD=@S Jc̈0‚V!Z) E 6hJ |-nZłhV,/pj 8$єD7@FP#Pin,jKl@zRX`Fk772b7YPYzI5#R"=%1`aA9j1F&Gz FgKFu@Q@@)iPhJ4Fu@Q@@)iPhJ4Fu@Q@@)iPhJ4Fu@Q@@)iPhJ4Fu@Q@@)iPhJ4Fu@Q@@)iPhJ4Fu@Q@@)iPhJ4Fu@ @JbD!h RĀKJ%Cv4%$L@$$2i4%a4FSu@II 2ʒX,(&;%A ~JRD $D22`zP"*%!6 j4%0%AOJDtJElTHIcס48!4231da&PGS@dZ& 7p` (m`j$c`b,H2!% Av, S#ZJBXpFNIp& 0LI2 >%$+!Q(IV)^C!*%) C5MCCrCII2 ?%̖u߱Q$FʤaP.cF;%$ܵ%jMI4@3ƂwC$軡41Rp躡J`2 FSOE@єD@+݆ېHH4vt-u@4Fu@Q@@)iPhJ4Fu@H(>LId, d2F1) IhJD$MI:) p$P=MM,,)i4%/%$*M)i(K FS( e]DTJbj6eJ bˤvhJ¿ FkQ@bJ± Ѿ(@OIl( )%1@)iP'%hJ$MI:e@Q@x" FS(NJє4 NIxQ@շ4#`PhJ4Fu@Q@@)iPhJ4Fu@Q@@)iP`LI@@;壀6 _JG@aII{DX$,+2U@R E0%-N{ ՍC`KI1@R?h kƂ Y`lۘ GR*C`@VO&,R\4rȽI) UtŸ۹QbDWԤBV΂LINBKICС {)E` 5 t,r kJBjEc,Ǭ!q PD %`;C 3%!!G ` U9f@Tn,XJS44I $b-$D8, $'N) {MhJ0@8ƓRVe,, Jvc94hJb`aAz ־RߍkW#5e[ ]90ne-@Q>[24}eF$MI: (MI,Ce%hB-I: FS(є4 h4%MI: FS(є4 h4%MI: FSwєDt4r{K?Fh ZY( p iQ{[J½1:B i8PYTBJ؎{s.hJ4%{g77tA4V6PD72#DP1 gC쯃`CiE,5(c@€Uݻ@xS%XeXuE8nuaxĂmh&`jDq6{X{4,2 =f#8XCs %w"-՚es{D0% /Ga@&7%5) $S~uJI2+^G=ƽ( IeIefHnB ۑw ƀՁBڍAA톣-񰑴w Lt3a҅bݐwwcЪlM~}7$ǡ;T0+k}H}770,A{htuGs@$l,) FSRb`apaֿAw FS(є4 h4%MI: FS(є4 h4%MI: FS(єDy^G4(NGс@ZU?Q,Sc;S!9ł[9;Fµ $m,\9S갥vSut@q/AᔒW )) ߎ o{ʈNIMa,W}aƀ ,'a|̥,ݐt+cas,K4Cyg[ڰ@OI8xCYb‚}n,a_΀sCڸ*s\K*c &%҆ut=[0}0V-ZYo͉3%1ާv#bK)ih]G@xI;ȰrS,(&łJTS="RiZ#::" )Gőp]#Lb P1 0 э#17SdLw1 i҆ޑI38P7"R lNwò{߉( F{V;JoJD 8Fl d`iP!x@ hJbMI'%I#2Lfut4`PhJ4Fu@Q@@R;i`4 G֔M MIh4%MI: FS(є4 oJ񏦤Q@  |)MI? ) V8Xє4 KIP =F$D*MI RbA⎦Q ĂLm'd@D s4%$@ĵ}є4 FǸGu@Q@@)iPhJ4Fu@Q@@;Fu@R4Fu@Q@@)iPhJ4Fu@Q@@)iPhJ4Fu@Q@@)iPhJ4Fu@Q@@)iPhJ4Fu@Q@@)iPjJ\@()i@Q@@)iPhJ4Fu@Q@@)iPhJ4Fu@Q@@)iPhJ4Fu@Q@@)iPhJ%%B,;@a$"Rh*h 0R 1Ia4%t@8RcaTv, Tya( p$h& Aa(aIR2 _AQ˂ں•FvLIAXXFS҈ō>cU&1F{P#@egd%!ˣ&6( FgKFu@Q@@)iPhJ4Fu@Q@@)iP[YIENDB`xims-1.0/documentation/users/howtos/images/xims-deptroot-add-deptlinks-step_1b.png0000644000000000000000000001362407776633450027261 0ustar rootrootPNG  IHDRm|SgAMA7tEXtSoftwareAdobe ImageReadyqe<PLTE3338Rױ"4@|}-95HV@Z8Q0Oc8S@@@@8Sɵ:T߮7Q:R3PbOrǴ F]BY9SPpZt,?MJds[x?Te6SeyE\:M\$6BMm!G^2NcOstMdt3IWeH^Nr,91N`@Z'Ka9R&8Dg7M[2HU0qiºG& xZiYVRco@"LbD^̲,@yCB4-"JJPYH:QpA$dB:@!Ŭ2fB TM9L ;q FP'0 ETH4r] )X$Qd7$46h΄8e B/Y,J&ߐ$PŢ4Z4h  5@Y66Xi NxV•#D-9,rjQ0&~Gr4rVV0@1;HhR@ƜHs @.j{pjpϳ9\# P@ Ų9l `fdDј ҧm̌m{,p[vJ}@cjU\ ɳ/A1n綀Ҙh@-f1Fcѹ h4f+ј Fcv]-3\@p Fcv h4f+ј Fcv W@#%qshJ@8c W_1;8@Y(GR-YZ(QE]7 ֘eFͼpZU$,@aYX\xׂB,?&ÌPff()D0wˌdfףD"41L]& Fz+ј Fcv htp4m h4f+ј Fcv h4f+ј ,@ddjqs&1Ňj (ј ,3bR((RѨh@bcE 1|(0@xc%PW c[f,AutsbVa4f VcA˽x((;ֳ1;(@YV0F.2y4N@T]ͲhW@ԝAhtgŒ]=,@p4аћ hdIk833 pbzM53 dk2oV8c&- q3qY*dpEII$vO"R:#|d,@Ya9-_ &U5Wl18̌Zf/3bܷL 1z,3fDa1cd[cQs eq,3Q,0 =(B=efK \1ˌ"R2c LQ"͌y0e$*fOA#f 4Q/fƸvFxyŌH2#XGD 3391NB13f4{(f{23̘yM $&h֐gIϳ :fE YA :,Fl-Q>e&*ftLI*1xcvpY"П>ճBXogg6floȖcm`3bu",Z O ̘rmcL1#W1X}; FǍ+ј Fcv h4f+ј Fcv h4f+ј Fcv h4f+ј Fcv h4f+ј Fcv h4f+ј Fcv h4f+ј Fcv h4f+ј Fcv h4f+ј Fcv h4f+ј Fcv h4f+ј Fcv h4f+ј Fcv h4f+ј Fcv h4f+ј Fcv h4f+ј Fcv h4f+ј Fcv h4f+ј Fcv K̎a3fG4hW@1;\@p4hW@1;\@p4 N9 Fcx#D@W\! PAfXt0(0g.3n̄4` >pI|'] Ȁi2@aYfDYm̄\9cHuR31 :9Fjf3 ,hR%f%A,Lo+f̌W,,!qb gUrLi<01DllIY ZgD%ÑY TD$SKgޟ7GZX)-]ٌJ;eFk,2 ׳XbI/r2#3jZEqC33X|Ů3fQm@Y b p,"0 #fQ8"`3%8C NCk 0c1K2YB1rkB >fe(Y[23D2X$7fQ eF)E4fFr1d;3311ˌ^MlA1 clZ[P(5Z0PD0f1ˀ#aYˀ+_g Dv$1ص)e^3KUY|%6jgi[cdZP4 K`ӂNGoAQX1c`%JۡS٤8ō/X4XdQY.@ZOn`+q/wv .2SI M:Peh@cy4fi4yVY # Fz+ј Fcv Hi`4 % 1KҞј ,7`4f)ј Fcv ô1;4@Yf$r4f 1 ˼0f4f1 bcFGcv"eFh@HQ̌ eƖgG 1eFbD\=@n+ 4:5\@p4hW@1;\@ FW W@R+ј Fcv h4f+ј Fcv h4f+ј Fcv h4f+ј Fcv h4f+ј Fcv 5fG` h4f+ј Fcv h4f+ј Fcv/itIENDB`xims-1.0/documentation/users/howtos/images/xims-deptroot-add-deptlinks-step_1c.png0000644000000000000000000005351107776633450027261 0ustar rootrootPNG  IHDR W͟_gAMA7tEXtSoftwareAdobe ImageReadyqe<PLTE0Ocـ{|~l,8xUt)D8Rrá:W{"4@5x@Z E^jB\/i{ѦIexKiEc2I4Lc3HV~7QKn8Sbff___!=~ʋ333[zވ[ %kd[v +=fӀ5O@@@/K_~/s>[n녧5R#t3꺼,r3f$vЛ6pf.nTQotqq3ff9R9RWl}l5g?Yx*\Jd8Q@X=U:S@NNNfffx33u38N3hwלcޙ̙9O˜z쀄ﷷGISIDATxbh`hPbhm`(}LYv / F(2 t0Qo c@P. b.kJgqƅU,|0ЄęK8ڻ}1gKXr5ٸְMe(CފֶT9ƩEDFUt؍bljb[75ѿx֗B$ưa@N!IUkjBA, L5"%X yiTq%V4 PVILԊ?UJjbUBM+jjEOS+$VԴ JUpb kȆ\fjhUF E%+h-YSɊs Ec$VBNqXRSb/Z^jLxKVђ%kZ[X)^&+0J@RK%+UVlC咵ad%Xb&VXX}ߝa*Z/Zb%UƒXʥcaFC*IWA Z B XjEK ` ҟtBA^䒵F5\#f%UprS`U64@(nzad%dŒXAl KOڝ(j$T,{,Wb 'PPJEJВXQ[z- DS$p:bZA$X%+-budV t N ݲGARYXl%i-s46Vnk<of'6o_f>>u; ׋:nڨ#EX1שʙdf-6Jj"E ܶ^GX*R3rܗd`B蝕 VM~1,*P*sU<.N2Xf֗얱 0 W hX؀>)qy(=ϓ&pxVɔFϚެ9(cTIuW¬Tbk"]]%+Hn$6@VdUwvhmlvb 5 -YJVJ8+@:Xko9TN | 6)`wi5XH"b UƬFgh6@H3Xo"hJQbHxV^XtIGI4YJ6J}( X)7_Ȃ%"H$M/YQ vJ`$VBJב"JU|KY/d&V), UWCx=+@|5Q%+Fz%q UWCb=+@m-l:3dok pb7 FT @:w m @:ZɌD @u @u z_ F(l;wXsbj MnnJu| L;i,[H /JX F`O"o:E`&V›X*YQ"'VV8d xh:=q5j߭!X&GKDjK|l"`vL3kO{gH 45Ry3~Ou{PP;w1۬m4O'Fyj&r4 J{:M|c4 FX-dd\Yh4AXkM`P%V|;h4!Xh4!XXG79w4zn(2h3` (hbC&АL#"s  "61Lq"X]F{2$MPE֠vAX5,,Pgà-iQD,d52 n5+)@ݸAAkCON( Kw %E"E"DOb 'V`R}Ұ7D& [qV5 Lo[ TYVo ~:x`,Fbb 3LPxp'Vȝ"iGj$VLTc0 I p]=Dz* (xV$LKb k0~FdxXx*dZZ%®|L*Bz Na5y)Y993U$2RZQb ĺ. r>Zk b Y70[MYR$?0b+Ym +Zq!dCle2XjuaKQLaB3+hr]Kb+f5Hj9KVBOc?qu70pRW"X74S+fb L+; EI%k3m/xk ,YEq$V\TY*I{sw٧aSUu9L5ֽ?5*wĊքLj@nh@$0%?0 Ԓ5 V_ LVׁ%˫WgEkēXAuPZ ߉Zz-VО+VEs `;`P1t%e ^uNFZňQHZ:jcu4^:z'A5Hd#,56L KVHj @nkZd Tt@C@d5q7D@,YZL4WPN@i5MdU'ʞjc0趖Q0d+@&Q0d+@0  @!sn@ 飀e*@d&Q0 Z+@XGkQ@P+@QX`h%VԶ*Jb +ĹFyP+&4 @%k[-[0ȣ 'Vl;$V*k5-Q@ @(UDZU|k{9{6Wwa%SPHQEFS+@Xϸ(((lXqId 1NLbŭF'a""X$q8J*B2+@!'V 䝡aŀZȔ rQy&V KVK_b+֌$O|H(*EF+ba"jb Ċ[*_`bTP,[ joBH(EâB,v D."ZP(|h"A/4&ZbEa TB#K݈bh +YhQ+@H(Cf*LH]Ž2SL٨%RzlrEa[(FdOĊD"6M%P5­MU8rb *v}fk1]X'xWbhŗĊZ*4`rEpf$q&V9" Њ9TKZbXp'ђ* @ȉמ{V PTP*ĊdE4p$V%+Z|.YdmXh% :Z`fbmE;zk8&AAع*paSZdEI40jT$QS @1f#8Addzb rgj*L##ϸdP:X+F"(,2K F`!,Os!o5$BT"w">X!Dg3{zK{u{&"p"ĔD4x @d 9A^J:@tc$VBm*aF+ (Yr \ Q@ĊO%E b4|;:9x %V"/~ xb Hb`@:{G/_h: L @:=} 4Bl`@@6u / PG(tCUpbEi&VBM7rQ0 @ciĊ9/ kƍkm:c:iv` =fEC`* hbXXYu'l9F۬))8AͬfXkX>y$Kt|30j@Aa#`:o2fMCX`d<H('TJ@iP\&PAAy|;tiCLY1R*8`׌m({, nAx&N(bic(pHxjNiguJdV+rCfG,tSDciƛͬ(tqoܜxM/ꕠ5}>a m> aY/OZ)nM]Tnb.T,2aFH 4,~ہ0RЌ@ۑ VPR?, Avv&@#/AS%mPCAYPf9Trm31yDzbedJQ.#8s8_9~&0*'Vp ^bL1mp{QZZZ_8+R17_j;*M%!)bDHM+kJ͠Y[p5!d rJVV BBYr/k9),hCʉ?oY .g]Y!,VT_2$s@͢Ȑ6PlhjXۮ6l~l"SE?VV8qLˎ T3_؈UJs?|(7$䬧繗)>  `m7a⊏̫f>-> ]e>m#XF{XXR",(YƊ@Ey;0{\@5$c^_&` 51%K1 UKK`l[LBZC LUQEq&kB`wvm[.Pж3Deݺ]-}tիg8/xhY%+@Xu;70 4^^!!`4kgjal SzϷp <(1ƨ@PL\q+L@3F1M9 Iu^l*uXÎG^vut KI,Y5Hex l3gɉkocQ1d,e @&Vj^R@BР?)^]KAs3hao›- Z},hۍ)r\0 5fB5E`lhۺ,\)`Z[WHzzԘ,j@ PbRbKҏ.y"rҋLP:TĖ LWwoF2vCmVG̒ A%d VlVe&y ͹uYWdP:X3tیBL28h? ~DžetU@\pʫw~m& }g+hJ@/T^ \6\-c2xz^G Al8zZlZWee ;X띧3C6~\Epft+Jf!.K-OO5`sWhe+PP/|kBLQ ׮~ewem8HRNu.xS)PZl]6Yah Z)sAe#ɚ im߮f$h͆6w 49Q81W9%>^v,%+B$ ڷڙ t%y~B^^DZp,p5gJW%{!f!٫؞!S`MV--`3^kxqVƲ~ j*聖mim :g~e hua^!2KV&Vs?|)`Z*Y;XWH ڋbǥZڋ bj7idLܗ`gn5rk׮>Yzl/&A*ڰ [g`a*ɺ԰{.~Y 81 k %W4@`8uDP3`ՂxPm+%+@Ak>|߯H%'T=7J*knފ2 Um2>IF3^?`,&<%y͠d6L^dj`võ/{#ޫ~ۜ'T@G\m:` M`[#TNSmI*µ/eW5vϓU4AnHGU|x( Isf)F]&t{dZ6ӥ h+ EP84)h>W 6 8nz۵km{K*YZK3 XkW+o3h06T6Ǻ#V6ToO@dML[MMMl,H zA'mQ@5`d$ vOW qo;ZO LFf.Y煀y``iz#0Xƥ.s,x7ȝ[ Z% Z: TVV]e y%+@A֣@/[E<F)F{VT\;δ:o^lpm? Z >z]"(=2jwںe?xQ&«hڕqԭB%.a*`^81Ckk@ry@G Z}[ޜ_"(:X(Yv`y5k˚n;MTgm?I+|vDbM Vp@Y; X›A],%^^QW+5ܝjX܆b2 4L:L݄ uQdJ8І/3,5ԯs5yUZW1ƣǴzɨh*h51*LX@)dt|(^47-  ˅, <ضX>P/+Zzq}|t4gL/;weC5`S!h h 9m s)R^Z۱&V"JVS`H ]ZΣ1qsy\? ahlkAll q29^v-``[r%4\ \ny܀URm>_FԀ¦B.xՆkU]s,: 0!d K0z]i{ :0q3w@Q(BO9w (l5>`ihG1 q_^t:>=66Ol  柰9StJ p)>ALΛ44Ld5 gb uX0@' 8bC,=2guFB+5ntz*&FF͓@[;d!'kz&nkYP׬\͎bCذXٯOA):7ަˢEϸ<<;\d?89ٲ*QVo?ehMZfpiLW'SVN_5$Uf >F "VF!LK\B L*ܼ\*%!SìFW$2?t*KŰ".%_pztb`G\ztB}xyPX¦gj@[~~0E-Hf @ȉ5z0%VyhO/t|o6|ヲg A td{'b)h1@o;LI:@ ϬmGݮ \Xס omX,()%+@a\|d\j#z[܌z0ۅhG>R;B$OYjdHZH)2x 0zn4!XUxG ^a d zu 1(v%b[]s-@T5( Bdlx LTڡ|4XU#$"v#P8d<^=d)x`*N!ۡ I*NZPAڑR+dZŤ̒ P+G(+ iXڸŀ luȹAG`3xy+б=.@],ČP(ivFC@FZH(܌ރ QoX @kܰ2.nq'd DbpZ`}L_4z<:!1pI ]Ft 6v_ns7Ft:+g%:nZ FP)Tj9LY-!o&AUqNKӧ ֭S%W:7''p$%HqNjT @&퐴m *д +^_q Q"޼zX*(&W`N\m{b 9C=0D=S  bV~K[#.Ye4Pzzz]](X.\;☦m.7q9dmUJb_wS(ܹPj5Vap t] /Ypfz ?nz4WX7fs2DX×׳6_!*d.ANR-Y X9Fҥ bNڱZA˩FKV%+@ ?9X ,VPddZJ Z]A?' S.L0D`ȂH 9 &M&q4AD$EH>(iv#PjU4fvidv(Y[Ɋ3X%VHXHW` t5$p=إHk2bj.Y[q\/@ m"JPYH:MQJ( BJ\+H<P\A"980;g ̹AF`|XVbISjf&TNu!M(#!3+^̓{iYFP @X۬WP`F&ב$ۤWkiLv M)@s&)$5ЛXBE%f3 ǃP+?/7wg̈k+z _ @ڬW%VD[IEJ18W0{K&xPMHi'+Big )nuVA;! Y[ @RDk•#D<fr 7 B5 Ƅb܆Fkvd $% X )X۬6J._ݙwHL}Lڬ:8GEkb~rٝ#r@<%+@ $>_HB " YUvv|3 9|LFԼ䒌qVBN6+k=,Y'' ڟ#g3]0Jd 54 ,V4@%+@!'ѵ r=:F>ӧ+6+@n ٹsgQ0p;0"n`u_ @(5V8G@}M#sGZ2Ŋd 6(hpZ1@նk׮6+Yh4A"R%+@A(^ [hb4 `/Yh4nSh3` 6oa%+@&Q0hW@df(2mVM`Ȍh3` qVM`Ȍh3` 6+@&Q0dYh0 8+@&Q0dYh0 L F(24 +7aȏhbob 0:+14 +nmVMuȌh3̀L`x1uixxn 77=a/r FJ4tU-&f /:\19?]~!: @̀l xbj\?ҁZOSr=+@&֑XAYw2;rm3 @̀Y@|R(VH*pW`/Yh4=ت!gf},4X I8+@6F KVM`W h3` qVM`PbYh0 L F(24 Cf F(24 C @u qVm!3 @u qVm!f: 8+@6Fg: 8+@6FihbC BR)@A(`/Yh4A4 C @u 6+@6FihbC @̀Q0dڬ4XGih3` 6+@&Q0dڬ4 C @u 6+@6FihbC @̀Q0dڬ4XGih3` 6+@&Q0dڬ4 C @Z2 F`x۬4XG`x۬4XG LKVM`64XGihbC @u 6+@&Q0dڬ4XGihbC @u 6+@&Q0dڬ4XGihbC @u 6+@&Q0dڬ4XGihbC @u 6+@&Q0dڬ4XGihbC @u 6+@&Q0dڬ4XGihbC @u 6+@&Q0dڬ4XGihbC @u 6+@&Q0dڬ4XGihbC @;!f:XL Fhb2mVMuȴYh4&!fAX!"T1lU?>08h 6fX [zi (*F4C8t*ĊdaX1ԓX棉uڬ4tkjh@rPeAdfJɁu`h57LP0 H\7@09 "T Fp ^bEP,b(, U@3ɉtD6!0 "XYht0GJ- `M&xSAlF*i@ɱDEaB:d۬4DJV\MH-ޞX lEPWf xbSXqW/Yq aX4Rx۬4+Hnwj 6͢ PY5InYJV:V6` o@JZQHrhF4` 0iP>`ҀcmAmVӭ $ qRf4 G[iL u8YhMjJ6+@]u5dڬ4XGiQ0dڬ4XGihbC @u 6+@&Q0dڬ4XGihbC @u 6+@&Q0dڬ4XGihbC @u 6+@&Q0dڬ4XGihbC @u 6+@&Q0dڬ4XGihbC @u 6+@&Q0dڬ4XGihbC @u 6+@&Q0dڬ4XGihbC @u 6+@&Q0dڬ4VX<9pQ &r,mVLFPdXE'V$@J6+@ Ċ5"D'V 7\[9cNIH5+6+@ *R}HDVZ%(u8r-T (6bI"($T a *\,X44ڬԃ4%(AM_bE 9#`5ED0]:ڬ4F" 3ʐ6  [CC#r -Q\S5ڬ4$P7Qu](GiH*E㑑X1rK c8'VmVKCԊX',]#y%+M "{jï @Cg GZB6++^%(}>*Wd @ChR^ hp`k( @K(,jwhJ 0f\[ x۬4[.EmVMmhb% @#9\ODd4fUW`ȴYh4!f: L F(2mVM`ȴYh4!f: L F(2mVM`ȴYhh,SEKз),b:*>",fDf! HhBy T*B\! EM"C;b/YhgZbJӇ|bf!XV3yZb&XuC+b%A)dF:E ZbAaH"HjPŰ,\H ҇)[J9Ew+$f4D( i bbE)pJ0#N#AXK$tm" 4 iY{S0JKVKWZn@Nn"b+PbE(#>b3ՠXYhHuDKHXXJKB%k q%k )W/=(jb^Аf ! Bz3@ `anА9TA` @@h^zͱp{Pc (֡ YF%MafV;bȈ}mVMuȴYh4TbJr F(2mVM`ȴYh4!faXEp t Rb!VFd4 6+@&Q0dڬ4 /CQhD[c)|)Ypmv E'UmV'_S(e%'E0&E r4 \".mV$KQpa$"t= hfXQXQ(u%.hNA[2 f!S_`-YKp&tm"X2ړw FR3@ۊSRڬ̀m) ~ zD/33`jLH,%DJ4K mMUN 89``$jl&zb5U`9PBmHK @Uatw颖(m+(Htla|UH 5Sa.(+YGpJFaVA},%k+rbaV!&VoLL1 ҅X v̠ؗ"nŗX1Y"K @ĪZ\8SZ2t%hvFD *S)"}ZA@U`b Hb]Ԫ0AIFqqo)d#dm`0e,Bڬ`0d-M#&bjmՆ&V!BL[!&֑XE%DZ$VBڃՈFD$Vl`^AM @=XWo޼ o^3Զ(V|`Bht[("`_(@&Q0d+@1nCC(C桷'ʮ<IENDB`xims-1.0/documentation/users/howtos/images/xims-deptroot-add-deptlinks-step_2a.png0000644000000000000000000013546607776633450027272 0ustar rootrootPNG  IHDRBDO:gAMA7tEXtSoftwareAdobe ImageReadyqe<PLTEDD囚FFFvxx0O8Rwq⵰eghѬЎ/RhUVVRq̽ڒJh:;;ļ2GUMi}*p\\]%%&bv귽fĵdpz&2᫯qNF|β 1Jez>]wƐ/=I7Q5z)@,r \}i쌯\ݭ kln ,4MOPR`ab%@g`BZ^\Xߐpqr\l׷qrSRQh}/01KLMĿ誾 d3441 n+,,*KJJlje.,)-Bͨ⸹Sg+R蜟96,>4[5 IA[rd^b2IDATxbا0 F@ ΞPL܏ N4b ! xxgT"0VAKV$tq-X%tq# !c?+y}4{y!_T@e-mX=ߝ{άtĤ P(WԨpg IbqpBx \c `klq;7HAځL!V F@ADBHdQ%d(++%A!V P d[Ym썘qPP0MD@"ЁG)€#@D<3.dܬ]<$@$dw vB 4tJ5h)@ ,H9 ؞ppD&paŕrP˳H\#z =[RN1('@э䓍z1(@JL=$L>H>iP$ aIDi(pnYى250^;GD$q,/S++@tL, :;Wt@/:; TJ$ i!'90!)t"@)# HJ$"0 %aHp "%HP nd5,XR *BH.liVCFvlB5K!BPӐf CfXK!x" jJ)mہEW>/5V(ɑ/y `)@$L۶>ےiNJD2"R僒@2/i*IN@tfVpyI4\)" Y-Qg)HV $ڎړ6G"`ِ J\.BM[#DX*g_)sP=( 97-vGRa硠lNY;0*1PbZ#v-ʡ}@S;HD^#% l$-J B4 s;pTMeNV1Dxj3 So麪üT ]8 G@t*8C\b0Hy2U,NT<\m2:\|WjAȻ,BE}}nh (|H筏<< (7OQ=3ATDDdoe\wHK 8s8-:F _GtJ^IYk|;l|ulBKY-˪@[]A%v3 Y(ᅮ\[Glj다dh#4 =H9lKU˾$Z@)#M(MD8rOIi0&ZB&F 2?, / ܾg𪲱Vw՝ϕVQ;k^4_Z. DqG꡸GAta mu%AFr(rr ]\`q-k eEa4 ~tyRyoV3U5kXOJdxIwث8\kT۩s9t*#[j0G ȏ@y,[@XVTx*}@ Þ tHrV a23X@eUV)|fs/,w 䄢21!X: |s]nm2VhD.ij,3WjG2mFæa?-4ĉ-hA d[haU:\_ڊKЍP2}v[MXa( *^H䂎C$C PNgBBBgpr)Qt G8}:_ۍ́m"~BV@*7~F0~ʩzrUC,C嵮]MzA2 ֢9Dݦ*"MX"+**`<珮\$4BpPJA`54Bq4j6CڡMAGR@l(BՒ: rZ.uE1,ck> (ڀ}(2 <&YEk NaEhYCm/ Y,ɠY /v7D l>(/c(Ov:8(8*dKW@ H S,="(]LQ'֎"%&KIp)8]En a?\4M)S*]"k$#HXh( YKySOZg;qA5v1 -qGB^bmdH:p$`J( GQ=` $1MVTQ DBQ!#P,1P̤J;ꄫtqH͙t$⑘Jdx 3jRy%l&B/n|Bk_O~@, B{efw .dlA{2uC˘a( !"M Hv,<J' nv.:H|A('n E8&Y2w Ӷuk6BIɩFwZjӶ0BcP}r`"Jn}K[B}>PaIв/ˤaXq؅<<a0ԑCsoHq ᷴwP) ~6SckϦ[Dh-.]>SD0RJ"} ]/uf_zclvqL(9 EkmǶBO;[\|}`)D`JHk7V0!d0HB@h6htB) ]4D@6|EL 䎤frAnWLP @`@hpl)1\& e&n 3& @5ӔO)X ** 7pcԕ9%Unp &e40Tdh$ӭZkޜ{WLCȥ@!BZLĂE9ݧM":a6 yOscҞI-.‹nƿ<0JdB0ٳ7'gͼϟPJ!B*TNZrpvN❝Br d+hs((VQPͱ@RgPP(ϡ R0MR^GA%OɸXYO)+SJB H@r:h<ө-ԕ3sL }R R)lғ*rfVSZݲ¤Yn^{u&ȫOʬVI] ,+@ekZY> }iyګ)^.2Ax.r'9vUi]}kW66^4i lm ``J)@(qW< ^w] Rd^=6fmt[+?aIR &uy:(ȳ4OcPom̋R ۗ+>mս@L0SGf׸k]yU*y1MRh3^=/8`5r)@(Pz*`b@8e$-2}2-&9SV-RWengƄ9:&OhaT\+gl$>{ ͼg=:iHRL}$cfi$~j4 ѩ2k[7Iʸ@B10 O; "cڞP%MWX hٳX5Ov_ Y" K@u&%!4XҶc$Uj{Pm1Jbӝ8]^[Ly4 ѩzϑ$z/ʸ@!J!**,:ƫYzT t3-eU]"*{]ԍTdh7޻Ze©=][TZx'ۨK>Vkj(W7auW=`*JsZ%o:j R;Ǧ\jw 2tUytnn RA fɏ/f([)s I*(@sK)@$-; F:ʫeLB)lEG(Ār^xMc`)@$Z1 FW1vB*4i\~к}jw ٧ ;8C>$Ih8NO T NS@XXX"JT0WPPP h|,k8WQ&wN.ْ* {T4K*O@<Ƌm9Xll)0$z.b*TLSFJ=e0@n0&&'͗ 6VYZ:P,ī><>!MB>4c@l*=dLpB{ I(:u߁ X&yM1b٣34ɘiu@B*∃irS%I&wOg qGUdow+t$~iq{6} -Tf 2Pծ,9b6fnWuK\Fi4#I[ d{_ lL01'1$!I,%X&ݒS=u;<<}f<'yKFE=λz$T}* V)Ie= @bHՁJ[Lmm(3IsoGGbO%jܽîFMLܕQJ[d$W5yS%m+Ι MB,,,y'1id:ٳϺ OB TY+I $,{m.JDPw\& <,=LeA7FRyw+?{~w|uXjqXV*`m[:Щ6q?-[^@7k<;m a][!J@wgܺxϺ]e4{4X*Rՙt)˄u9Y6!X>>&!`iܲG{OlE&LٻwL:ᱷ*yyyP/>~d(S0 l)yww; @I!e 4XE>P))ΝDlw`?J!̚k@۔VM;T3flѡCձHPB$K-wtvhj .N-8Hc?oy}{.̤ɕ ԷFrke ڮ^*Ƹw8R#)W@~BBW$U_ suM(SbVڮB @[vZqzD H+cGBF$.`6P"B(GпN )g.KrvyBHjM)mYEQ6 1/LK-T!X!,[.ICïB?F D)g!VQQ6VQxjw<]=LVZ*,4"lwRv*ox) 1Nx)t=^(I_mZ΂{2]qXBF afLB,-.bk2I}Մece={yҧ7 `QS?w$9ՙuu2I]܁". 2L2M$K!^`OC} L;$3WB&XHCK!,QJ!$5I+_wU} U{̙3Rbv_5|Y.}}y.0]WvVnf2dT%'1Lډ(R')ǹ *lmw:e1IUQHG^yT-/ALuVGMBx Y>na&!uufK}|-vS|myu,t_*U̩҅"6wmuy]Mb 3}K{I^r"d*ICw~~{WSՀ%!['?š,,reaXE y*$GI9%XRΫ]=mӁAT z! i=]BZeTes`!Ė kזIT럂 ͆}*aڀYz., ٴE4dqW[LB(*,aJPݻjhLX%,MX7lKZyfϏIf d^zVLWO3gU&3#/>oaU޸Uy Ƌ̗1gq]^PP xY~ݿH73qcbjs?&_qJ6ʝ318HB6 :6ީ}$:O=ٺºDdR'=J!BRceLOUTLhZ'OK_=]Nw y!4n5IMD7 TA65Xg 9NJ]t~ߦ䣃I~ hn89Mhޗ(vGX>ESNb^ӑ=k ml$یr_OHP}Ƣԫ@{cnH>abf葝ҩ'U\BXO,[̒[˯4XҶfyb\Q| XN&E3tx~o *utѾ<>HdF9-PHq,lkǵ(کߧȯb2ʃ)aJEaG&w^I--g;Qv!A PߤӌVM@ ^݇d/tY7G~2|tjSԏ?V3Fjj.q#?^ŷ>84aP*C 0P' IBW[Wy9XR 0G}|Zej`mK<ȷa _ׄ`9slq'!9SY[*&1o_4 ~:QzUOvŰaϖU` /fwU!z=xJ!Y2^^TP܃] 0:ͺ@YPA"{o( G*y,,M?= LB25Ʋ!^dME:l%<#SOΖ ڔXO)@$tUe弫W" &Wqh;" )kZIAe穃؆Zp:8P`sK^(@Y! yR I?Wi` t@@K!W("7 F6P)@$te-ap(P৶vm; r0n_XG ?A_E-@>n?|3X?< F>odp# Džf낒G?OoSFCtā.ON@rKq!(6VvBnYj6#/ KU@ D)@H3*s(LU 8eXӕÇw(>n9 qY@g1 [h)D)~o%~SD-?`G2+JzMg x)'2IEݽ9Ϙ}oBd͊RhWOfifUɔn~GAK!f>܆)qx $Ɍ*$v3&!k&${{QEOBq@Vv7niuPCq"X9,hɎӻ E>14Rmi-a(9pH#b~HF043vw,>$Ң\ `Y0 -Tw#/ce4XGA5Փ&c+J","A8[XZ ,3O -kvG=)Tϐu{ 2S(<_\vXՆOc@@ȵ U*`9qr3+|h:ʅ/[ŊLv*pFs~j8n5NE^ MS2LErAA.$D zښ"%'`8S` R?4mPt8 ۑ%gbw֢Gc9wxhg5'i;EtIgv%)1\$P1ե1'?B.6HL+QОSv,;Ikj5x<_{_E?s/`]܆8=8[x1Ql蒩[&dP`;CB)+SCiKnz<@_/(\l )ȣn&Yջ7?_>|qkվx]i;QX輸?r)5]]M]5x؝SMq>d&‘Xqdng }|1} 9wl+c' -R:V{\X:Tu^Tn[A5[dI_. )Z:D4JJPVTp: `I2~+ڀ1$}=QJ#\p/[xAUsc+-):R½Bʡ\TA IpVI)IK[/IJsnp⺑O-_jz |Y[1K@&c/SC5c ]pҡ?QDpQ2"t"8 N](nf*YKr|oZdRyvﻗ$*{=-,:ͷh{G_Bc|RFJ)wWm#mlUARVLyc3D+oz˱-K4@!w&fgdũ hu? q;`sM}EhBS!JE,kYSH+z lu]u!ϓ3${SJikܗ1g` 0# ۘ)*1jЀjGV!P,QP4D)._kK*lob6%$t13t=TKi5E!IQ?i 0UB DcR֔I RH{U+۠\H jmR B)aHD)3{I,7o\xx?LzWA|[I <[9 Mcr|X~1Y c v!sOT](iZQ>B3mUd=#dkBdW727Pw; !o4@*!bٽVX ;߂8#ֲ!!cn#( ib/3X !E.Kf" *|!ЛOtMEF3{6wU`nR47!A$;PMIYTn_PCw:d8.Ϥ,>)JUv-ZrxU  6^Fx]Y#s4I{W'qywM/\j*/x5l6Bl1jsrh5,+R>,) OE'![fDilrs5BϾ@`TP.k5ʊsH@!yl*n&WK$DX]mʶE}x^M#"aReH-\᫨_Obgi/>؎\YF _dd~KF,$9(3`zKD\bko@ٖ*Cf H#Ƒh%D~ q@*QZA~{!_ Y YPwmAeR2qT ,xsX8I62'^~eP Mj+S5@Q  92ЈW}tt" `< fݕٸ| `Du LL`]9 PS# PU # D`f2`)@$'3 F9" `J` :w @;8xG(iL.{Dml&sޯ6;,u5R[$m!bP8q4s͡7``N_`+?@J!p:捹Q8 |,8 A׾<9 `B>o豍QhiLB!@!BAoz L" W3YhR<[eM-wB*SWk(J!(FК#VIH]ĤKCV z)4! 㱎&Еe LZu@B-Ю"NBOiHHJ!BSJ@Ih4 FRG@RH(hS? ( VցB/B( P 1p)@m([ 1ϖjNhl5fPGJ\" *hG6(O"z$'/3%mUAm!4#R"JTJ""ȐYA@mmF!11<<D$Hw=2 pE-ƮC0q 0%(?#&* ZћZO@l@1aaat)B4#TK {ـ af3{N}'֙  r CSA+$(+(ɩJ Q__]:>)~}~/X7*yܥ 9)4#$$l.Fk_Ai_==NiA_ל@@&'$-h.MgK/MA3M ~qҥ GDwb\v7s5j_CR`ӣנ']+R F{d||:҂k`34{ׁ,h9A`'t=f.JDtKNlr| hz $<OXP hlS_l%~὿|A 4ZK JM2 a×+zHsZ3I;v< >t';런Y{Bu B؀3=gO8m+/hG6p@Oڼ7</J!HWpLs Ա&u@G-eg<%3 GυTT? *>t3]:|jk_|h)hG6`]_D2@+ѓփ؄K_mHqY8762All e/ߪ=xM\ypux`PzR&.|hQZ55@UwkQ hl0 F/װ B#ח#s>6n~.}oA)lTj3k7K'kXpU}( ոG\3~&㮕5@რAI)hG6`^ڐbbkAHDCuzpH&<|\Ag;q0`/({j.x6*ց + a`S[ `Kd@_ bL:$  \^L! lD尛 8dNEMQ|[ \9k,(JyIKx%w2V@1p sl˛99{asV4&1Gpܭp=9޻$ p-P-/8A4+ZKpA#s+Ud]["@( ^lX$ Bk26` s*CgAQ lN6~=km:kAдI%`ǭ#*qz(Z*8 O)@={nnV_p^8ZqO\kEK]b')gϭ2DPxRX'J_>x>'?? TM0<@–儏P"F]u qd[`eL@m.A:).s)zLJ{g]E*f`f[}%PA$uO)@=AT j,P)IB(IcTK>~~Ǝh`jf\S%|B[Ai5ڐXڿ@ <ׇC0;@9- Kn KDx[-u㳇e&̪6sx/`6H=\f[Ƌ@eRh(ృbso3Hk hlzd{dRHOl-GLAzn'i:hT2. y$p tz5SO^FϺsQvxFF*>H$i@ ly& KS"P"hzC7-rP<5PY.%!ČcB+h` `y4 *t@iH2B4#i4VBhӉ|`vTx?UJT-=HZ~Ws V~07g OCz;@϶p^R F{d@sdu뀀 $92_hr Ei&& 7Wzfd􆀗}(4E`8Pnl;{_2jү-  !U` R F{dW IF=1SГ֫0F 1k9pAP7QV…ify ) Ղݕt0T]^LAL-hG6@)"B(Fxg?UZȺ@LX`{+۷@7(l09>Ng>0(\dvc=d8#/tlͫW 9fd$Ӂ:KNaR )*vʸ::1ŽE"[,~c]dSWlߠKiZ/B`%\EM?ǵViЏ!yY׺Hgk|%xsOGol5,{@ \6(?1r Ee3[-^2r+uKg<]!X1#:@$;<)p_6 iiNOGO9 /cOci[A=spz mh/POCU 8{d(TJ&+f&4A ZHZCi j}U re4 _.@ӣi]/4 (\/@FhttzP8: @(kȏQlq?^ J)Q0 pt=K!B)[L~r.=@BgFi(IZ h)4 gB4Z  K!-F@BR BRR>@0&rJ,~ \ tk)@Йۢ ńHS\ƫ?gn!.>)BsP҅*# 3of198`wŭ[o׵jyUæi ,L oYj uƸQ[KWEQM[ Q($-BbԆb:j|PE K.r߫֒#=A+'Ԟ%~0˅dwC`N"ys3`l #0S<"J En/O|m_|ZA=&5<,.TZB`ъʖr2U1&DrcU,ġYQ󉇸fX5gnCDjnAYqi}ɖXKnXañ!oHg4ыM.Ɠ1P&CSBHk7?A+g-}Nr(d`0LZ=8F"Ρp`&J8^"sa+4 QzkRĵܒ;I`3Js1̉I^ƚ / ꮭ)٨OVN`ׇc| is+dsp V8<6oiN aצٍg7K_^r9]3#ж|OM{=egׁtۡ)v~ඌU#05S 7r AD2t(tVBrr88\ / _۽־@~dݱz^Ȓ:g 9Hi !2ͅFۂSVVt2[ќH\6^klDUG9`z ػ,[Q(BBQX$VUB;gm')uQH?ijJ 9r@ӶOϧ[sq :PL{w1awpb*w0pvul9wWBVdY,?2[خk]Q[-mdLB $ uU0DnMBKۀII_uCAUF@q`;bx&(X[|,엶7ll&!R.ӰJB@A JB[,13<,Dږ8󵰬No\Ғn '.pK!G9JrbMB\3gpgEDIkI~LBƦ ,X,?^Ey.( }'%DW[-@=2F$eS`2k[*@mu`[" MBNL"[y%)xBҙNZO$wUFx:fUmsG 33YK!!fg8xޖRIQ 5* $$鉥u`[:\ƥI87V^maYj,-)*i0c+&RĦ[r$p`R ̑gIHjp%-'M2IBRhRNRXK!Xj0*O <- Cc KH2hb2ŋxH|B?A_1N'N;q/H[\dRC(f?x[;I9 bd'#~F}7?YEͱegP3dUm)Y;,#862ˑ̇.FNO)9 ~nl6M=r[R mFn䭴WJg GBA]U|1b A*.];x&%N 6@ĉ}(&57'VHJRWpv~MğSG؆a+GW 3=tU`$n@-%TD\rNэE3P! /u\|"~ևq/U΃)ds_ $9<.zMhӁǤ(ؔTRz"/崙U4ᾊA#cy%! A[,p8qz`ۧGΑ x9ӁI ,D1>f&XR FgGA ##d|[)@( \ 0K!-F)m7,@BVR FKQ@a)@(RhPX h)4 (,hB4Z  K!-F@BR FKQ@a)@(RhPX h)4 (,hB4Z  K!-F@BR \ 9h).:#Ks`.2bRT F)K:sqOwahn\% ":Z J!(f:YF)7PЙRX z)tjEyLT4LzsqM?}Ft=:-zfIh+@gDIMNZ Rdӎ993qZڡ :('i˘Ӛ3S$B8eljު&7> Y?RHȖ_iugFj)@Bp)$GU+C-CLڙ3sJJr͜P6('  -8ed  dơ<Ca@B~qE R pB\9J@I\əڙ 9p051:}G2bī'ЊLnJ,B͡y៫W滥 -"@69,` L[9rn<,Zw^UMRH(^q;_NNv@a+JKrΔ08PE3_1B@f ( r,:l + lTRڿ0~îJa-oyëPQ\ɯ:|;3Ny=nSz u*;PoH*7>֗絥)_/](j='ׂFh)@JWZ3rdp|JE O~PE6t|0yUHaOB+1[ww𤏇~(X^ZmQ'}|e(8wTdl~JQX y׏X}(ST{ÖG -d+`кׂRK89ߎR 0zdB9 9\ 9^0X05afs%3ii|I1vfP6A$ '}aҸ |Ih: ȨWہ@^׳^;>3BK!~) ĩ9ePq͑5~)n K!H@EĐZ@ppyaB閠¨BDUmmmYTAGCXM>BK!344<@ѵӣR \ A`BDR贒gFK!P)@iFI>E sFÖI#ȟ-@@B@BB3K.P4.4~BQ o}ںLVIh4 +-_0S^'5 =&3VlB6DgIM_~ĖByO9Q vLB 3EIMBxN^fZxk%N7к('/Nt)#vt ȸrq tkI-xPT]C ĪӖz9GĺW@a ],]^ NB@OJZU6ۢt>,5|]2&q M[7bB-P>0 y<Ȇ d71ha@q%t/ %k&rr{0RK!Y qAWJ$TdUo^4na^w%[?lxx[w`><_U`[Տw×??,,S}Iߝ 0˃? M_(%]/@8K!9m3g2,'- Nu˂e+$$}N,ɇ(Ƶvf: /9#uNϩ]@XJVQ >pV!3%֝#1 B$kt T0+vݏc8 ƷifIm2gjtQso3#x4@a#n3 ;'%uĊl'-4K-'ϻK "%!PvzÇoLR]?X @?wf.da;w9xHsZ^p^Ъ5d~zW 0  '7*=0q;{P_90mnN"Q }8 c}-hKXƵ͝^7koZ mNSg=$ 9[$tf/K{?,@QZ*sqA86`FcgَBDRe{#2H=@Uè;gk3DR#n{)@kG@~? (,hE6K!n)$;r@h).g**'4Z*&#qd[FK!P)@P#hPN+Tv@arf+c_ $Z1ݹ3B%BgJrΌ&!ӣvl NO?'4s"EJ [EKZgׂ$* ).A F {~):i@Ǹ>$31ȉf2?HV Q:K4-y;Cg3K!ºj.f9U~ #ga+*Ih*I|$bOü;n ?Fyy~ݸyq,$HZ)T$-DS zEjxt*"_znzzؖK  @a_xNQttyκ EBUd=|gw<+u|W|xabEE Sq;@'ށjQT| 2ۀ82&ɳ&%]@,@3=46ba{=?c0!_jc9|0JBk BBNzRzQzQəNzE>sZ !s>#%!̣,8 8A$!@z_/ @X;}1!tmh)>=6QIh'a`fX [%ϖ7mVvg9lwacc`<\- []7^̇Ezwczx[,dea]V7;иe{>6WƤkayq=,yذM{&]A|(9ʼ˛?I@=`^be/rt)[wNӧǃ ӜyoXͽN ;;myiBN@aB끥.y $4S6؜^OLb *IHxO`>ՠ&ġ noY , &=\= ĀxÇW=eJMG{ xprک>{XD?^jP~svnT"zu s=׶-qK,K)N_po4PeiatPH4_z@K8mꄆ@)@XKp)tf&Б\IȈEV h-foyDDV%CA,Wjp%(bzsp&!q^jKZN“;@mCT+$\Y=q1 $+0_I΄10 Djttu\A/g sd`1|mo.lhd+xo>hOGj{B\ z'mg~7Yeř!P f)t&tVG%QE[rD[_qv|OD)Z/ JBk'0OcQ=ʟn֟:s&_$q8Wd<:,/w Tc얛0yQd9~ۓ]D'/حrhOAwݢt8X|Ed=ⶼٽ߸9$ۖF'!Ix)tv;0iЭIȥ!4gaU%9&J ;=HmQt`rZb.6^o kA \/|Ovs^ JB`Z*$h~G/KFs-Aؠ/||IHO&PI]ymևo2.X`x'#6FЭ-䙁j9f`x|!Lܴel|#3poۀ:G^jPE60hѥF;<F}? ft;||qD ۜ/l@B;md`Y_^:UלNg99m{g(s_T_t!P z5[h_aI/'~31pgNA!QA3RV0Am!!s_ n8_ZHJ/NK}t\:BNrILQ3K/6/۾Mm)5J!Ukq%V>~30Fp蔄%ӯ%Ӂmb)`LUU5ٙu&[aά_7}uE@E߽J߽Ґ!@В֯;SK-:3J!z"FrrDW'Qc:_R)UͅJ!n).ΰeĀI _V%vz% }@Qy"4<ѵӣR Fwp K!-F@BR FK!1*N>=SR FKӅΤۮ#>NMO?#4R BgZ8c_xr{$u-yH=(#'Vӌ?`g>}z3B>LY[3iXp yzDBY U4d[tY^^~U3K iˇNоZKHT9[ ei[8xbjCKD\|XKbVz(r Μb(CI;/Nf8 DHKGc+bib?-uZhi!g I aFI=$"jU_yQRji#/3t-Kԟ^g.F92:-%a!)gӅ>-z΀&@K֝:#2s{KHIAh:~!)ug@B@u@@q)F yFryKOE4 hby|+.Xs"Ȗ9I($n# ޺_N5#@6 a9`jZP;Ce,4g)k,^AFih MO4Np' 4Bd%,maLD~iO(((#ޠz޷Z,U~$Z|rwZܿlyM`Rw avP#gUh#ŷ-&NL4Sq_T0C!:atxz},W֥s$|q`冋,%=ψEuXEg*#7g0 a) Tu PA:ypGlœx訥SPŐ[\"7/%u݄/ z_rRoD~vl 0P "5BH,:D`fZ:&ɳ]$;/%kĎ LrOn;_`:*M P)s.Nk.*O-gA9F^J#@B>}?nwMRE[*GnVyZ5tw tx_+%υXжHD-?jPx5؞,uo8uI^ϯZKa+F͗_8i>)[rEB%ӋF){(`>bMB2;\M+J![>>yiMBy[El-Pyj%uE5# R aҌV8 lmB@52r1 /eA0D앶X ۓ/2Sds' 0} GW0tNgʳCDQ\'ͣa"ECKɉ-Ж~.B_BM&OA<) rn˴L,fqZJvg~ ]8bI{{fG99q*RO`x6|cNWQfd&OQg=XQ7n:FU-9G&J>!.s ^_C03\ƥPf`OzB4:S? (,ht(RhPX h)4 (,W!%\K@mDHoxEPڙg`a.$qlmQjOѨ=N u"N 5!&pHPc/y:CY)@Wjc(lAyIGPZ_ Noܾ^5#:{̓Z\* um=Cl:y<1HP8G-X:&!f@Ʋ%6ZS: I*qŨ0N:>/NA.ЩxxpB=I'iO',=lA$K|?e|gU7KSoa#0<35l!?Lh'4C6tfB~L5E '-,)y(텲Rž͵hh5 BZ DCŊ$ dߗWżIǶ._Yf(st ^v@#\A*Y'o<3>=Hulhiv.a JoE)BOYT~ԌU0Mi S( p } 1Mx ?)diR-5KߢPG#JNtSϞa،€S-1g t(TDCz\o1$f֔G1vq^Z;hPq7l&^[ ;#1ùDʱAk%;˗-@,]FAp@uLu`A =%ޭ;.a8N+ΚVq>bXdJT^`~Yޮ<:#~cɚ@~ƷǫdQUgKv@UmP߱zН)FWc׾ 0 *Ghw:"z+՞Y-m9 ٲÿЗ0T1 `\.lj gXn%[Ta7#jvw#67?UTGEQsb| yZ`+!@phsrT˚;L_@$Tjq0.~5"/"ID4xtX&wCZ,|J*Z"JS&iݭpү6vlg:^ 9Lf3Pod07}oTbNIK G*|Yx\q{ن0G(8Ϛ_𡚟yOFR-{~_\\SPFr;||Ҍ>1(IWv~ݥjǦ3kC])f0 a{2؃I d1 @! 4iHFM&-d2 K! ₻K$SׯM!s=  "S?Pw.̥BZ#~|Pȼ0:.uk_A@@9YUșd`w~ȳBY-l]VSXWYժbŏ7KbgזƇu)3 6b^.ɯ,O1:6pəZ.;{1}Hy-辳 @) hF,AοX4\#TlP._ַ|c2|]r3BU 6DX `H }W @6 QŞ `(` )wCLsT4fҢEg C NN]gBUhRIr|AG|@(e'Y:2\ }1ssjIa)QZ) o&@KIS4Nj7}.cl5z`tX,&0G]KE((9Vmtb5L!>Prpsj!lc .3B|W ,bܚZTBHd%&R774rEZEDK1PE>hHS}~ unx:BZ{=jw%MYӵ" j(9c(q BA BݝnʠS,Y册`3KƄ.~iҡpr?wZ(5 UDz*s*iL8Pus/񀙺r|Y(I6$e\$zNh_ZQK-T5a?cqTEHt4Na;B9eԁ+R(Z(25^;RkKZW[W;ww=U >pZT =m?3t;, P䳄\|)Xq2 {Jled>x, l84hB!*c.ۖ+yumƢBL$mH)7vd/ǭRGF$$  r ЕwE=; v/ B.$\q80snWgrK6*7+qqЛ6;19|2|`Zcqcml F#ol*TGq;wn`n{ܙaʏmxa?n8~=.6YY!*G/qnnO8VXB[ZTx S:K_D0=r7;+Ly\.rZf dȳޟ׼ށiScsԹ洈Eu{vNЗQAU?JOpBʙ>%(s+Fa{!KȤt4%~A^#?tgɴK!rt'qH؍GVD`$Uy12T%i[28~sz@;vW66C1ArNLuhS^zRu l\ҖtS%Z9ZS8[ 93B5|"_%~l#u7R Lzƥhyz.]BvfJ!(.*)+IϚ˴3鰲\?vhe-VglqtP-`L=d# #U4X ,>4>"(̹zq(&D{K!B/l骜/zhm,/}>ݶ:tCukL:i9T'cczRȜ eBㅤA8H!Aݒ\)#PT6&t$aZ\ԪPaBZ܆b,k, SSoQ0:>6 SĤP kn09-Qb+3m RkhJk@ =/8 !2kkd*/8T}tdw3KPBeAd Dk={Xh_%zڪ}2~EɫoK>д4%v/MF$xq̓5UQcVߐeipjCȓ-X<|٘ҏR+ON2nxI %-Ky+ȇ,'vLxqSE>V3Evu_NSJV493>VNF+Cp!r|" dZ)aLUpbf7b*K-IȱVp{ ݿB?PsŪ @[(`$"]z{'Ocg)w+f._&|P>; cƔڝg@tW_c]?r?,a$kAr4.t@8J! O,_gÏgȕ\ KBŭBbQQRhv.i$dNBl,Mn)!¼4/, b9DՍ @痂OKE&Όlg% Ȝ1FFh)ca,L2RȘ0=^Z ,;\0Xq384J~;32f\|b3ڼtrc)D.}}.^p01ap*g)$ b"+P$3hǢeü&-p2f5h8*k!C`LaIhT[#Z!Õ&xo_@bm)V4x! xD3APkmq8!kL:,Ϝ zlx4 \Dr$4iPlp)8)t=3,P 0Ak5:)@'{HMfZZYe)熘t=4BK\[ .toV U(=AAB~3z =^2P-k{$: :hWh8sF6.&̼؃2co(iEV.p إ3?2MxlqD|7fxb. H7}el%R|,>–4̎Z?sߜK49ViF #(d&iNB⛨Zw(v- Ф~ YsX6kÅOW5fr ݹ @Y#M 8A7JH œB;U4?Qb?Utw#}0դQ׆7v'냭5Zx\( 1qIsXk!A e9|XM%ʡc#)bI\LB*r? =h@pPg{&xYQ,"л5f40sdx/P4&P[ uqCy [)@3SF:ܰk gϬGXa-htO(=R FKQ@a)@(-`0)8bJ!Z ẏ/ oIr)h=6q);R;ք(<?@jR Rtj~H)22Z9/߲*#Y 6B]d)e9_yՖJB!>b*zfB.[Ljx.tԙg 6)%6^^^e:[tBgցWuӹxY[J6U oUna:II #/uWёR f)d!NBmL\?ZP+t%t%WѲ2XiQfxF߿FsZZ3JYl͗nQzF(R `AyVuĔBY YWJΉX,],bbҶei'4LBg@7Iq-ݲo農̓jCfr[l3 l#2i3/Gz#!)k)'Zxx}ܺk,ȸC+W>tcpn\fm|\r\)E(dG05$4jۥƹ{όBJ!V IJgf41ZZ(3x)t%u閄;[.m\ ҇][@'W/37^T U8d5]R5Z -bletGU,(2tW.s֥r-xq8ʥӥ&)şdIbeJ:^:]#h+Y~TTzR@KIꑅA o4axs?J[oz x|+P%4%&1ob:J!,N?5(ЙgRBQBgxl{)dt=Ku$f珌SK!ѸF!P2 .@' BN[X^^~6X RIE䣉4S@8N :۞.b ?˘_vӃ; n14%bٴ>$~J_:ړаE*^BuBB|"Xdg14I!"LV?Qi".`*Zw8t2.`+JXh|+}3@eׁ+ -fɇuPP ӌ~,\B넦O?ݒ%=TjG)Bm!gGԪEU I}\-p<# uIR ڶ,.H$n cu #-㶓42M:- uA5Qt <.%VN4ԺRΜA]W+ 9|## \mܹ\|!Q|W$x!|&-,綄ʼnL9%٘uct:@8mw`k2C.GL)@ klY-T)"’X&-] jkBΝf, j-,ILBgn"כBd V7K""8 tzB |xW"Q8]u\네rEFSTbg’}1Rce\yAyギ.c8%G-J!²x|c Օ"Vw52c^:춍1ѶeQ|y."Qm] gmtou\ ,N[BKGJ!,sY,]jq:B,ϜY[/ĵ~:h Kp MgeZ'u,-B,EpE5rV)@#a" #KHF#m"FJ! A/o{~BJƣ-#jB4rJ!eKm-?F2Z QT 1f'yl?+4T Ј*,'银jMT*h$BRXii3z ȨU HG6r^ nQ@a)@YG@BR FKQ@a)@Z ^D'=BǤLqL@ܦJˑ>3{Su?G6_)@aG.ظ傔9sλIhNh;,]elle#+/3?sEf;8>(B >2Bw,Y'ZB璢j副M s g@kU-_ LYBBQ| ))o;B;=UQRH\VWƲzE.(ƨm\VFM@.5dcd&\m@/2n&`Z~[)ETKB#h@.bqy^IyXƛNzI8I-K-w$tf-@[cΏ3E#{µ,}3GIm [,*[N_QQj%3sEڜsDh% Ȕc-H/[)A;5Ylje|:/Ok)<te˖$EZ@ǖ-ݒV|K۶ȯg᳈-(:O¾Ţ׻sCSI1:^y`r>1ʶrRKxO=$ qmm?i\fRR 0KK˸~:{f# `bbv8 '!f:BgN\ւwsdx)d\mVd Ń# ,gF;^OM.*"cBBIMѴ,@IE 腇QRmmOCZ;@WdRL yGN9B4sdg=Oz!WHܤjJG/nU|bGH)@:G!zEj #6DCB4:SA.K!]/4 (,hB4Z  K!-F@a;wh]iH3khŖ)hl:CCFL)@ΝmUZGT:e ڥ9#D)I- RB-L@~}Mx`lMr=HBm|6wČNzfy륈JJhi1 IFJRJ,} W-_m("!JmMw#5DXmk{Hpv&0}:x GRF  93W !1IhΑBg,/ ?/acRUs⛾ "Qxz1t؏ rJ2(pVI 5f>s$DۙzQQJK-׉Tgz TRYWpi G.!Ə L0rU.Xj ;:z{zj!ș s؃.8mtL 5Jʅ[{2'?UF[,-p}\`e:c ø)N'蔄N?1ԪR$F)LF*y-[l?ZHT2o#t>(\S8tDB:NBKA(gb'!( >^g9-D앀bp=#ea5Gvҋ"@9&h⪜w/@ْ,"FE[-6L,\1辍dbl(ErR[)@8Ν^ JB$t `”+x@$|ִP$ӹ̗ke2YpO[sꉞJ#C8JygQc..޸-Μ>l) {-@0 Nigak3Z(V R-JiA%# *'QJ[IHtUm#ɕB$d$aXq~:%P* ˮxy q{:YIR?u./a\efR Zon:`eϙI0{x*Ş9ʖpB#OR s'_e$c3R 6#|C{(\~b'оz-gʘw-,ӍX,>2>4^,eglh37JY5l#c^j>{K㕌Zn> /ek̲E*ѻYd>\سb3]Q\BPuN,@!`E,۞z[I,\|,3E\RBs@3g83GIQ# mxMgꋄ awCN8#j} c3]NR1~%B;Eq,-[,*ueIZ%l7ro1Z :.@jޥ&5oH#F&~[ױ4vJ7\8T*IYC:$xy{^*.1vfjlj ]`lk)3:F.J!aj@aBfEm.Ǜex3\mQEJqRNqTcRy+)(+e)/.eP[HIi-Eci6@5/8ݒVP{q!l IA|>3@僯AY'%tԺuoQ<;hjQ 򅄜:,lݺӐg(' ׸`%g\WIƣ3B4g 9H޸@ zQ@@Bq!-FB: q-L Rt7b&_VRJ,0kh c\ lj6.-IB"-3ZjBBnVgƢ,L+qNu8(^ ˸@.@Fiiq!R &HLBBetф0X:4>,0Džk)E(B#G>.@XK!P*yWi= BBq!Y ylè('(0LOWr-FDžDžW)Y([Gyyf%Q75-FDžƅW)d+edii¼pU\T86^>CRht\i\ p,'ZaTSqCc˖%'h)4:. m閖ɦ$.𥷙?EbB mj3--N[,m,'-hd,5rB Hq,@XҤQK*`'mB ζPQee70( /*+-G{dBB4::= ( ܥ$4Z ƅR(e =[ գNXv'6J!,YV1̣IhdB{87u̞qʥW,pYFs&!@\v9LX Q@Z:@$ >: @BRh98t @BRHYDDyZCH)@( H]ebbҧ2{Rh:ʤO}RhڧZ h)4 H-@YeRhX =2-F I ج2m; R\3F(8L /DHb\, <  A`e꿛J'G(_TwTq 'k>,T )~\ߟ4i &N(Y `R*NțФy(wXAٯ %!EXK!B' TMIh)4  hXlP11 x[耺Ih[h '!~! R m! cRhzdYHvm!B&9r#OHTO|cx0y\Ǿ< R P_AC(Hg`JȂ# fY xty;.aF‘ '-wY2+O i 5+B"飌 >@Ew]#͛7oB? <)Hơ y2͛7A,|r"Er5g 8>[WEDq4}T޽^a8lc}&yw ^` Rm P\-.o6:Hd$޽ye]GAT ݝ71 U?IB``eW&L/S;lZ&e'mYЧ[B20 ڿeC;=6lݾSJU^ͲghR(w7Jyӄˁe5*TJ^>iSP!o,{t)wSR K` TZ2h_yLyZx9/_Τ *T(x @iK=Ba^͓_YEYDRruh{zByG!I^ mRJ\j"fs9 &VS'LR *l_EY[*Pt{0 Jlz-f{V ( ; TOEUaU qk@K!ch))+WX:HY>[n놨5R#o3꺼,r3f$vЛ9npf.TPnuss3ff9R9RWl}lxȻ5g?Y|*\Jd8Q@X=U:S@NNNfff33u38N3c̙י̙c9Oz3f]1jT IDATxbh`hPbhi`(LYx E? F( tl Fq<,@a `#$PHs \ :0븏=;#yA/,n!iYnl!<{ JJш<#s5ON0`dH7XTfZE `YLkRDE`ISJ@ĻL``3+bO/t JB gM$WkEJؓ. J.ԋx.-Rxq^J/0v5hxVnvk5Cnl4/ypДKq L;ZҒ'TI-yzdؼwԒwB4p1+M% +yڲ|L @ВZAxo888*y{ꅥ݆k$ކ[l %Zы(yf L FK^K^+ /@v@s`!( e3(6X"tjTUC'v=/[ mAl z]ZZ]ƞ^# xoks2# z ~~` x5û p5: 08Q1{x bW L JHxmQ-֒xc%i "a x$IXJ^mۀxA XЀE$ђV%/\-8/@va wmRMN i_F% 6C|M\MmkȼRg}\;u/ͦqang4Jy^iWw)^xqݼ`ϕV0/ Ԇ˙W႔|uC8o,hѼ&Vxm|e,lJ /yvסfÀy&:a0II*-d>rlNvAIbYisuݧ_}>2k\r}yw7 ʛ~;G]%[v5T)%ë ѓ2,Dv{dBamHrr97esH_-y(t^R^ol%kȉZJ18Ղ^Ho/ H!{ -PZ"/ڼ`x^xDUVωϰyN:džc 0/ g0')̰ ]g1x60.% iW|_3lIΰaNdm;:KLɻ1U@/@/8/n֪2r]lrrkh[*  Í7 VaIH+s$_jrkzGW (yQfj*ßvmiEo3*&yhdmţ`Xl p? FT @;z m @;Z Ah% @/@&Q0d/@&Q0}чSb$^M`'z; mZRbUz! F( LMM MM-+JgQ*(޿pXHN:F YB)3.[pHIps JfQC-y#@ @5b .ǟv&RN@%Z ,w3EF]0aW7 e6!fMP8/ vE(y"E >_@ i3/z J9Z kx"ԵE#*};̎GFp˗% FJX/(톙$^-BPciʻ/YXPr0.Eփ*pvnš?%oXd*Q|o.QN-r潾 lhw((p# @l{), ʗau(V\DB{M&j]J%/&#񆅁ˆ0µ h. d `ajl @08 mAJ[EtCրVt)݀rQ`GnB)3mπ/h0BM J^XEkjf574 o7xi&jK/E1o@U `9Q+NhD$P{vw(tK'D-x@gB@.ZpQ`T,oKzQ/rljB]q  =lh,t.JW)@潉xi&( a$qkjL:%񶠻w& m} aj~'^`:l] LVJ0K=  C5!Gf x& Æz6Qn Uoa`xݵm^pk(r[,2`݅kÑx_@wH(|xK {1+|^9"+k'ݟXbࢷ56@A )w#Kvà.ycLP&Ð{uh0} 3 }Oׅ;&h z )5LA&aa(ÆFdQI p5 -3Ү)25EmxQʬ!.j 6"q8L؅ &]U| J @0`{{ J0V@k2lLxE>a &qBKXycc6ÍV0a ^ 7&va)72 )l sxxM (پ'^T'ejum(4 #}3@}5P F)iFN+7zܷ|ihêU_΀vM93la`\"&@e5戊B.HPKWɂ5^aC h;0r`gmWr߀-x~3l~c I4K"Bh1ӱ;L&P=bo +J\M @ч'ѷ}  @ۀFM4xGM4zn(;/@0 D^a4珂,sa"3񆎂Q0 )wth)%% (YEm$^(BM~}4G/jCNDY⽾uye< x{Ŷ Kur^`T7rOxEEIIUU+VϜo^#x*~wV0D!N::\t48nb∈yPbOPŝIՈE9LT`QL DIMT;#/rvAyzNlu0^6S#"@QϣKaK|LlŚDbɋRt4'^L @̫SbA.k)  iP ~x"! WV!}a(& (1TQLx@DlD"Rp7?Z*yዊQ/@H-( Nmm8 zK: xȥxFQ0 >!zJxphtr{;t xQڻ Pƍƣ` ڱ O5hŜ$ @ȉxƵ2` L /@k׮= sYB|y %Y3<)׃$^B-y!Yp 0 ]Шxm K^cFh@( Anh(% R`;0GK^JQzC~} @4h᜹ 0HҮ~3)ZCN4xG5C3^|`d4Ng FJ4xGmfAtA%Jɋ$jh4 m[Fxo, 0P( &h]axm/@A_nn./UMFGGɀp @z  5@NNN|}v#`C}4*F%/͋eP&ފw+>d9Nv FɉRɋ}=/@Ai@|< OF>U W*h4~ U\# Y,nh&~k7z`(h"hrXC4  @MA BAu&| DMF&@ v@= s@.z{f`H0m^h:Z&^`hSlO N7mҧ\Pb5ڛaf`,aPbA.\0sI;ebl L`;P (5Aq1^ ӁP1!HT ]hk]r0{뙸K.\gNmg5DsJE~n ӅahXMy-@3om/ʡ3YݓS7'^mMz%(Mih- 7rN̴ *}=rl-2\6)kLf @d${]'xR( >0^Ml',:G^vMqټ\ '+Ȥ rr2Jl607d]61 v`7. $X-0з!I[vЗtsMdx5AU oׯ mj#~Yբ2(S\\sJ2K^"Ö-Ke02bg=-B7/T3[7vMǀo㸹xy=UAɔW#jzprPa@E(F}mެvZ5`2AFpa\`U~kjCõA [% rmٚdLwڃ@F`@[0mV/7XY6\&`UL@Nd`nbn68a-an+=ųCkt&]e^L2Ӂ2L)De.3%`} ,!a)OUڭLF큠Lu`{-`j~~µ⠆Nz>ʠ@ Q$ݭ *&r` *n(n , .tnPCäiӦn׻IQ`KD @$&VC%P3 Ј)4h" l;5.6}TnH@KkT]= 5&2\A48pYF+;X@I&## j7Sܵk*}+A#g`ymNeKmXP_oм~mYm#nyg7+iV4i3ӥʏiT3W@ѼJs8r87$䜧>> 鰝m7a⊏̫f>=^ ^e>}9#xF{l騁R (Ʀ@S;0E{\@5dc^_&`  61%˘1 KS`m[LRzCŶ LeSq&oܵb`yNŪL[.Pжgu Vqd-##k׀qŹq^ 3\}J^"5, yyUբ]&[=.U@Q6L5 `T&^Z2\Ю ,F- ͓1r=5/i6 Lڪ ꫂzRfsAU~)/H;X\yPvnXsRЦ\XDj0WjzoLLB;,yfIjZ`){وɏ0!p!׳X(KѤF l4)hEA3ljfn5mN5 q20 &&Z,pk[m-P&2P!hg`$`#aϴ'@R[PqǞQ@[PeP)~ڜ (ix/X%/ Kvr8gǚj"ՏX CUk'M-;44L9I`S`,7fBD8*o hu n7us$hR.P[׋Ք m+Mcym */n5,(?M^awDT=[ ʹ lV~vl @ڼh˾ DjN>ha7i$nrŏ]0x-X kꝗs]:xiL/a.lZ ,zw͂1~n8Ь h9M;轀YZ ر*~'_|$DV>fNtɉ_J`R;vZqg硩SkGǵkޝ\j}RV əa ڼٗIkhM,0TYre[m@5h[l5h={:Z0l.&l. ˛Te4di80N&e,90P_ 4"N5V{6LmVK[V^L{+H6JH  ?+%[Aw5[}@}zDK^"sUYE#U.&q\&FLEǥv`[<9f*xFѠ`$eQ/@9f` 4blh偙bLlZ ik w4Y=HQ׋*fLQ˗JAR*01ST&hQ ls>+oj0i@;yUe8YX 7#0i2TfvmCJe Rf 2ܼLյ8^n,͐Tl^7)|+w@35=7XyNQhcT`rԙ,n?YJZJGWk 6Xc {h5s=[N<7([hS6A-]`ZuQW\-61ov@u u,KGDSJTK? RAR R0_60ݝ FvF rYs&,ȑ 4y _/Lj @,8T. s}=oR)w4f˷s.+xy7//dh[3;wa?IOAdqQ+ݽwS+vӯ-) 8P?gvp) Tpx.d X_lT*?)d_YԬ9^rwR4:;O&7g lJrI,{Evc…\F5 5 4Z ~˅9?@ STkA?~SYS34A]0(mFҮg? =Z6rAe'ɛ iءz4h ڭ6wR49Q8ȱPつ5Z76c)y M2\}m^ 0]4H42 ׂ{WҬhuMҞm48=l(75hnK-`3_oxw4$q]Դ-K%m j%dMT~~R5%` u z1 Rj5 rs1CJv&^n&@` .|kO6'Z廊8@Cc2il؈hj5 ߶ ,Ng{ Nܠ:bO M Rzٰza]9T X@V @!z(+&<%563l&q\ܗM@!v\LS&\J@Bf$an^!(Z۠u9Uu3ڮ_l۷@X>h7U/AvQ_`TS)ׯU'nВ4`ml(i>&`z@SqV=) Y4jԔ;Ȃ ʠtrV4FF/i ,X/\0RRޟwR@Hck . 7c4gh X.q Aρ' xeLb$Z ) (tEi5>02Z;3䕼Mێ6~lUY|4\*p)]DonF:xaN{I;xB3haN3(vKJ\ޢ@;/Umz@ŏ0_WU . צm{|wQ^-p&vAjh2v5\Pxq55QȊ૬nˠM4mpY+|HӅvDMS ^Yhn;h*h9ds|7.lj׀Ekh)VyxPm60%7́Qa/􁶛6\ ?@/\m8 2y͂[ƨȃ8AS $ ,x/_6!: 2Ō.K&f zqPq%;x@1VjCMQa1#09W4f,+@TA r\K(n&sd)/X/%/@I1ʀ͆m@Pzۍ<. 4C!6`6A0|<pg^е9*fLۚ(ZСϖǐm}]umL9 FjFsʗ߀Zr[/5\/.Z+dH\ Y%/@a^"{ ~ &En&JhrZ%6;yy.%L ;0<ׯ}\qZ۬X27,8i}zEдmS/ \0Qmh ̲ȤR^:>>kqmƱK_&O.v32b-r#d x'f[ ~L_E<" x6=M{fjj/ӥKG }If @ȉ:6zu7fK@'^:I'lqO!=eς:i0W~^8g0-v_-<h݁: UC4ر2PS"s&` fEi@}ͨ]v.o@Z !KFFZZ!p@FHIR^Hڅq]:GAD @ȉZ~~c&Q0`˗m5sP*$ n t)0]ShG|;BfcuH$ڍ@  *No!;o I*NZP;@ڑR/dSȤ̒ P/??G(P ##{i7±A&!>彠&@8u3rԨۉ9G2 BbBygtx |+;}X>"J^B$ :uFuqqC Q Rf/@=^N|$ \BI]M5.xZЅ~p[@BWC3L}xZt2bxȦwAɾ  `@P|@ܺ3R`3zũƁ/|.8A'=H VBHZ7߈āVH AAK@hڅ8f(yxo],wig &_`N|o{Ѡ S}X02z`K끈z")`3|F8/"\hQ0P >$cc dw^ J\%/@&S6KslF63wR*ˠ{Ghxۀ 6k 6,lll`/'LOUd/G%/@$l,`L!'㍖J^BYUJ`e 8Nb%/֒ P6M,^PdZJ Z]E?D'*SGL0DbȂHЌ> &M&xBARMիWќ  @A#8q! DR1#FD @J^)ˆ/B+4F{\EWI"׃]Mܪ#vk  W &(B X9LY! .lYzŁ,p)xhMCAWA*T5WH$NE f # n%nX6_h%^%/@X/,A!)` B`EqD3颤?H(W9HJx*W> 3}Dn*i!T6U$! HH mګu &Nd;&91Vݸ7f0Z!p6P /7wgk8,y+y[*ċxH%H(PZ2p(h7h'ޫBig*)uVA;K y[{R͢4њpH*N4PTamm$ њ)HY6/L-RpPI*I|TEim^cYKGbg" mL4^?9p PKxPLTqӤT!Q L0;;Yb0#3ۃxs7\Փ"0 @ȉe%Q0(:puvrɀDR g(yM/ wr+ȍV oPnnZjs=:F3g/6/@ ٵkW؇+`i# ^[J^BI9 m;Rxx -^%/@yGF]~_ @w ,ȵXK^&^Q0 x)o @w JL[ha ; BWk @͆Q0xۼ_4xGޒ F `ȶyh4!; @͆Q0dyh4!; @͆Q0dۼ4xGf(4xGf(m^M`Ȏha@ C~ F&-;3 @͆-C @w4q^m6 pa/M[B*MOX9ݻ;/0톇/K byh086t  7\UK^Mx 4lfC!8/@&Z Kp F `%/@&Q0xۻyh0 q8/@&Q0(14lC @w q^m6!; @w q^m6!; 8/@6F; 8/@6FmhCv F `ȎhCv F `ȶyh4!z! WzA 4xGK^m6!; l F `ȶyh4!f(m^M`ȶyh0 l F(m^m6!; l F `ȶyh4!f(m^M`ȶyh0 l F(m^m6! h-`0m^M`0m^M`$^%/@&Q0 K^M`ȶyh4!; l F(m^M`ȶyh4!; l F(m^M`ȶyh4!; l F(m^M`ȶyh4!; l F(m^M`ȶyh4!; l F(m^M`ȶyh4!; l F(m^M`ȶyh4!; l F(m^M`ȶyh4!xMFnhMC @w46/@&;dۼ4xGmАI p6JzF4@tBLjG| NE l駁`6 xh p% 6} (b/yh$^ '^lh6/@ TYـ@r`ZMM"Ĉb9Lrx !&h`NCbq0mMHE P`Ĵ h4YqHc8daXd=1õ @CÆC (mlik4b3U F(e)~ *1L+g^+yMpE0Z&7"UD&^De5" lEPWa`O(nm^&OHZť_kŗð`@x oشyhx$^|ހ1@lFQy5In6n󚌼6/@ {6`DuR҃04 aT$94#64`(Em0i@Ah6mRpon i2)VHۇm wmMù @ü6RO`2 Zċ @FW 6/@&;dۼ4s 6/@&Q0dۼ4xGmhC @w 6/@&Q0dۼ4xGmhC @w 6/@&Q0dۼ4xGmhC @w 6/@&Q0dۼ4xGmhC @w 6/@&Q0dۼ4xGmhC @w 6/@&Q0dۼ4xGmhC @w 6/@&Q0dۼ4xGmhC @w 6/@ + $)i,)0"u&27Fh6/@NH(Q@T F@'Kn Fo6EEG/m^M`ȶyh4!; l F(m^M`ȶyh4!; l F(m^M`ȶyhh-FS.oSX(t U|DYy)vxۼ4V!aM[@%/xES(Wtx$^%/@ XKxrIxۼ4/R#QMs5 /AQEDCnHBCu9[D1w"%Z̉#QTjPM(,WI ֖ _Ul!rEA\bXLm^ʉ@*DlJČHQJD-Ē(еbN$)lDsd!R L0b/yh'^, vrE hx6aO;/BѨ ċ @C&w GUR^*y +y II ؃b'^%/@ ɡ2m^<Q 7Dl%xQ ~6/@ I H(d 6P1anF `B&j0ctitK6/@&;dۼ4x:& @w 6/@&Q0dۼ4xGmаOTW8 K b%VFt4M6/@&Q0dۼ46"/wE]6LG,Y8g(:tkА:s݀(R[l0ފ @$B-ĹJxЫ @CjU[ci .=8L!<G\}Fڼ4//[Q4 úd)hpF=ۼ4JBKB%o![MSF{lŶ▔6hapyhhEc#O!%m=Hkm&2g{ Fh.m^M`ȶyh4!Ue`ȶyh4!; l F(m^M`ȶyh4!; l F(m^M`ȶyh4!; l F(m^M`ȶyh4!; l F(m^M`ȶyh4!; l F(m^M`ȶyh4!; l F(m^M`ȶyh4!; l F(m^M`ȶyh4!ċ (T3i4.yh4%^ʀLMۼ4xGmhMC @w46/@&^(NMyh4LY'^R/Q*m^M/Zr bS:x)mh%x4 A S +^uң6/@&^/""Ӝ(Lz4KBɋ-2xh% @` {e@$ـ-"&^bۼ4x񗼸/ qW_;% @+JQmK0(QQyњ yh4Là @w46/@&;dۼ4xGmhMC @w46/@&^;syh4!; l F(m^M`ȶyh4!; l F(m^M`ȶyh4!; l F(m^M`ȶyh4!; l F(m^M`ȶyh4!; l F(m^M`ȶyh4!; l a Mң` b; ^ha V; l F `ȶyh4!f(m^M`ȶyh0 l F(m^m6!; BET @͆Q0$ڼ`?4hCÆ` F `hy$^M`&^m6!l; HH F `4ixh4!慦]xf(:m^Hڅ'^M`uP:l4lCv F( F `ȎhC!G @͆Q0@(Z$ޖQ0 '^'ќ= \xa4hC6zQ0lH`(@!:lP0o4O @R @!%޶ >}4Gp⭎ oP%)FM *|E1/l!`Jxݫܫ F[#7"H ldFZ233 @[Ubk{ 5FhEJ#--Ai"** S"40,uU עFNDM̖k.2"6@v,VxYYZ1xGh⭆QĻX.33R+ .~Aڤ]H hjXXP*zKFLWkNv/rm$X8 MV%/$/@J^'Wʼn`ӭ;Zy%3 .p1O i4ntT( *yrw&^h!523]fP gۂxi]H `LEL 6^4xGK^Ԓ4LjK,Qڥ]H hUlQv fd)+[7xGK^PHiL@갵 ]` hMR5QIVUgI_h;Z%^fHus`A. @p{cw_YnhPYRp5w,il \Y5HLЂx[Lm' I FLD|1 P.0|۵[{@B6Ijo[PsU(@nC; l l`Pb`ˏ_sIENDB`xims-1.0/documentation/users/howtos/images/xims-deptroot-add-deptlinks-step_3a.png0000644000000000000000000005015107776633450027256 0ustar rootrootPNG  IHDRbgAMA7tEXtSoftwareAdobe ImageReadyqe<PLTEVtw8R333*F{|~-9l:Xs"4@ E^{@Z4w]]KiiA]Fc1HMgxc7Q.4HV̥[z___4Lf|Kn~͋bc0ObZv6Vlϖ %k +?8Sfp֎u:|6OՕ$@/L/sF[i+J^5RԶ༼w_~;[pPo)tm:ar}:S9RީSmp?Yf3.Qg=UJ8Q@@@?X:S@NNNfffxɠ8OuR)Z3c11vkJ{3333!7d9O9kcDbw{+ScLIDATxb F() \6 h h4½ 0a;8X !gvY[T u=CqGӓ ,sEc"k٢j,DĞCLe*Fh+ƻb` XL*FpAN$0_V,uF +]?*DEW` 6]PK*xa|(a/@i"QlI ƪI)ŪpŰՔGm*H:,ǪNbUc8QR ( NaUDbUHII O)HbC30W6)BQn S܀ 4m}DrdB-4jsnR/?W>=6/b`bs}1dڥT]vռMʥ5Ƒq52(h. U#zbƛ0 .F4QCY#18]Mp#1M$-F7\3Keb'%n|UyDlQDL[1vijeϼ?XL[fa 0)!bR]((Rۅe"B@CHv.޻{fY^ ONK1xbI⏉J+AM1K2fWJ14brr&{h1b] 1,,bX$cW}u+St%ܙFO2¼(/țlת(g bG _ߤGf A k;V$=@3+ T2AF\=^!>+[]Z- mDWaEҊTRbJ:\b(1Z I-&5Klf$0@1îÃtg)F`s4*vv JѕC`@1"qЗb+-z1]X= h a(44mhE9 Uq#MbI F(q$6 hh4&s4FMعĸ jL~ᦒQ@$v @Ad7/ƥ*G `3TxRh؃.b&&>ђ$FYM$6*sbQTaQpOP6\ ;nf58܂l4s>uzE4FJ8*4HBJjAJI/*UnӍK>I K1%n oCJxKCxJDMn&1܅Js4 \ $Dl)M HI ^İ*F=&MbY[#CM&8-`Ob&Rlc" kChk_51m~";'ĸWM_; Umܨ*G؀Ÿhtrж$6 hh4'1MbI F(q}G9 h h44F@ $jDI aꢗ(4ݓ&)|Q5蹹ۨ:@hOYFOhPk@9yzV?=)@9BADObֲoQ FJsW=~M z%1` OG&*L?yHpw{^ƖĀm*wPSؑ#&7nxVHb@fNzj!rCNbVp0 b xk"1mß s'#""7z ~./*Ç<$Ƹqbn0P<|0IL`U$&Ja0_PS'jDMTxJ16 La7GizI `IlJiIEV$+Տ`&#"Kgrc04ֺSý·PS 8`4&xІ#0] YݤWMk)j)@1D+1C\ۆ?UUyb] JaUU4Yy>zt@ {B1nJ1OAP b8Dpb 1 >^E-%AI {JaTLb27Ri%`V #9rD] Ia""?gcb$Ja(I u5%"""6d'0RCփup5 MaG`>z)J_!VŽ{;7$-vTQiZ)Q/9qw!)+ܨy(7M0PDD@) 0r #yzRݪ*aNF.}a[3n#}khLOOOH_Ru#%1n4Н)DE77R D>rc;rM+$;@/C)i z=J'1n`q R Кfܸ**DQ0A-ŶR]ܘILDD00߽+ osbD@aP _Zqmh?.Bn}-i7|A.ZS؍ n`1 V bU(UآZikcbUKa]fn4SJwK$mA-ŀqPbAđ60˾GR Ā r "@#=AB$Lg*J` Id0ob ޸h`pD-ు#RF+h IH `PSPyT  GbvGo[)hH=J`()l6G{Tݵz%c'ofaD,If_p$?ZQ[6KsRXX!bm*A* {^m֔,9c Zvb0x#bX{TpSß2R ڣzĽ 2,FD@$bn#R;wA G bhՖEv2AF }~a Ӊݞk=: %FOb*SDR g6Rإ *N ]" a $P Nbh8=K[)rMÓ4J>(yR)rX P}u0?6 cլY?S8Q%sth#b}а@mrY4dT\5C4H.P$/:7?ٍ=a  O> Ja`ij@q1NJE"~wA1RA)~@*y@Aio`8=$p $KlqIo$#'"Q@c@Il>Q@c@(G@TQQ@: ҒQ0 HDb-G HbPpu4F IbPWO( $ @$1n$O;}3Ju( i0QIWӉ7'p ܄ L!B!QjSDX!7Iq&(L@$'-KUUUKoT$nBIwpD.7a5L&-q" $@ +wpI&B`KpTƙ ƙNbR%jGJ$6  %13r@Cˊp6\XXz0Q*an#u P(HĀs+ qě27/p\La"1Q^ij"u2Jimpii )}DQOb$6x@1 ~A8 "#<@h HKb;F HJb9rht(1} FKQ@c@ Fm@*u-b @IlѺuJ1 h8,)q荂Q@} @ILi(4VjNbJJ2c{G(4 @$G5QP&1':1 ٘kD D)k4LFK1*:Su;#& @7]u;h4Rwvhh4<*ҽ%1MbI F(q$6 hh4'1MbI {Vl0ÆCsSW!u(RT];Tdbؗ܄UzO!2p32@ ƈވ8,a-1iUOea0Rr^Z4 9]aԤF\aسcA ^G` A)@H a삫!HmO ;`K-b" ĆlxExBF'"V6>jj{}V&-{vl A0p+W_)U KH?~b_!!Pk h{JPJ"W$60JtP(s 8 K(U܊ccr8xlݓڜPlSoCVNֵ_JG!CUzA*NrB]Dj4^19ƭhաC݀Jb40J#|8,EJXX<ſBa@lhLi9{ x 3F>0a$S>SP0cU5m)SCߝ~"PPUձM@@0r;K(ŏU ss2U`sο7Du:<RN֡'1MbY4Vdkz@ ;D(]3 `DiN uT*urXӡ`X1SNi::&|հ%1cMU'(E!0Mn,Mc `xXf@e[U[˕ޖœN\McI F Ha&f:ptxG+R7E( s 8"jU0= T H%1tPV#_GGGXPT),ho//T UVk2at`8.41jMKEz@aQ]`٢1}KΌ]{~ٍo:$6\jUT) hԋ ]=9ej;L_ner{T7̻K*GiW[^B ݼlg/DVKG5a߾Xv*XS8Jz+GW*$@Il0ԓ̵|a..`W Xbhd,]yoo` ؼj(MؼIHiW6˫p!߅ p*?ۀ#h}`]X$yCfWz OX 0`W4P/%LnA oPT5_^G'Ԅoя75U: NOy4`o$S &kr}$WDx/nM .Kʶ d^{$ W)@Il0E2r*G6AdN1(&y&XJ_ ]*9BQtј&+y]PXKC7F g 0C4_˜яAY&UwCm?GP oH"7֒hkHF5PS%W $' hj&)0`]zoF`T> @fM&1b$@Ilhּ k)Le@9Z4xyA h]N-0z7Y`IbOխN.h"(xRb*Vղ9C2MۜM,J,f܉ 5!:@Q(OHGiO8Eҗ7dFE @Il:!:ҵϵ9au%Yr]|B=2a%āew ACnb]$`eJ9' ҽ*3 aMvtUH;XrZ͕˳AtɽY)*'*v2Z$6m}:`ٮZZp[@+,¬K  T0v:V$Vu,i8[g5Wg@˱@)3AU@-TAbj;'LZS4z4$@Il04 @/0hŁK ~iY/xY.ZaXjX`%;(l:zr_ZREeh D$p,͈ғ.(Fd]̧,)(2#OWVlJc$h$sXA-!Tb]f sS05*uSؒ: i*nQ+v9= xۃf`uޠ)ƠU] @*irV]/,XhZ w$6^ 4AODX3h0yx3:UkDfA%ĈZ2:cn "Zj4үcvO = ͈CfR*PUƛ?`W578i&J ,]S̸@&o6hx"ɀґ7YY/ Zn x7HoۡCǮ;ʭ)`Z8_pJ4 ;*cU*Ro'O8@_ߦ!-1`}P$ԁY^7 TfM6m(h.0]-HHvVЀ$݁E3vv-]Ʒ!+Ʊjk5IR B:ZuXە˿A`"XdYp=]WjO)דޠ C3>CgO ت11nnz75p$1Mbr8Y;EԶaFJX^o@,=ƬjNԁ^K=ZhPs5h-Oo55L L@ 1i!CE`!lwjW=t T'`jJT`!h+0 W$6b $fflh􀦖T47vt -aց&8]P"3:t4}G617`,@#̠yU{CGBf|'IbHA彗CF9S**F=sZuBaS/h3k$6Řw5'Zց͂$vՁwMׁ6͂ ݰ:hTjU>^Zx-_p{)r] njs:Q[y{:4@!Nbzb&d)`_ s}O_` g$6(R_@T7VbP䁺@u)ai23D bCMjLTͦХB5:1i!hIJUⱪI" 6C(0s#2UJSSQQߔT"#h#*{I)B$1n2s:2XВDЀP0ZĐ c>p*-QUu)쪣5Y **ަ| 棜c412вnP[ʫw.&PR*rw(xiv4/Ñh4 +(ZXGՠ> x=r:>]jPjsZYl5/`vtR :OTrc/ݣUOvlTL DaojH`?1i"@i!О7P:%Z{ !(,$2ff]*jwo * ACR"ju6vq: *vp yӾ雗_֏6O6]oida ju5+5v9(VUm~m6|(9Ф[*cU5͓@0]#M {p "OC)y8X:m,\aQLaЮbB)VK`7&:Q:%[U֦%`) JD?ca:&m#6k毱$)Bf֥]dE,(-͘]ql0. L:X=7=REv4}Pc "bآUGp5i.( Fh.zU9d>hm[ߦŗ۱cGI|!D|x` N>h/]ȍo"q2"X?ǯfh!@QX[l-*7Kb$@8؁,Z@h[&:pBO~@)S9A#qwĞ Z.ox}!4B5haxk"yyy P^!db6`[aP m2Bo>:cSA {HրNU() 8JĀ)ОaВi7dF=Xi$@RlyJcƌ{mu&Cb* A1ׂDqP4W[[{ 4d.c: MvKpA{]*Ot U.Ġ)r*cm74ABEI[\!0,AZ|J1&cKsG@D58Nv NR4s:w JTu@_ց:*c@ũw1!8P[ J3=g} &(/@o@LtX9LY!  [w> +\8SA>f 9t98GZ]$@ZG "L>4L43qhPRIF*Au> 8w)KS`1cD.%1(@% هܞTFHH 1Ьd@(1y:pV7W`!`I5gψ*W F pbǖĐPIEZrB%6HbЅP1-$l hm[@@K}}m1\9JDmJLö1 !Dw0T>F(Tk[ F.A/7ZI ( #\ )}9'iDv*m1B(ߌ0))L)=3jFXRa`/@X7/F u/u/#G&R P)H i+EsHĠ @Iпd(La#rwNvvmr+L]F0#¶{zڀll#w{@*Q@[pЈ[ͤMb G()$6 h h44F@V F(1ъrh44ZQMb F+Q@c@IlhE9 h h4(G@&Q@c@(1$6 h h44F@V F(1ъrh4Kbܣ`5v4y!'1 rp$%/MZhI i bm'1DaV&$vR3Q&1IQ]4@ĵpFSfsI В#0n 1dX0MbD $FRC.ʆ '1,m1$6@p悍!ӣ Ks&1]i1Zhb÷$6h h4 9ahtaj2 h h4Mb F(1$6 h h44@ѡQ: Lu@(Iġ{4&1@bhMbT4(akUdM$Fpq"XNUo^]E$F I V[ -n]&qFˍOk$7pWxĬta#[RhkT6 @7y5%RCUJBFbbnn$}U \p$p=G@QS)qc>hI :]CfW]jH/h3 hCj|I$V#U$*,&1D V I%#?qëFI )T5a(I;[uWU^iGl;OƟĸ pqWTQrca&R&I hĐv# 4q1Qv`; r%T)DY ])! b"yTG}khEI$3C$ Ds@)ЊA- :`R)@8^zh$怑0PÖ q,)k2b H*&1R+j7DK@*C$/%Q+`$JI FLb R f*_ @xqmHboE,s@IQ4bpb w@)PJ.q.%6A*1Mbc\thMb44%]@\>@ GVQ@c@Ilh44F@&Q@c@Il@a &$6Ĩh4&1MbI 0d7~o/uMbI 3aMՔIԕ4 0PI b(OGhUw@Mb(ǧrMhMb0@͸IChAy}?y>M@Hbܣm1%1Zw@ٺm㷃U/DDF{4Lb4 U v]4KbDfI$Fณ$U$fqCDώ_MhEևlB8.kچf"7Fcӌ pc%q&1`&1L#%1R )دAtrX9 Zm8fǖp(QQ"7B+':x@—ss)7'2!~TkP+xg7X֣7m,Iʗ>0%MR)&NR)&6q&1G'$ۀ|X%11hq^ur~EMDJRka(ҍ8rn0zsH%11y'fRD> |`F٣GrZD5Q8 F;ʍЃң*%rnPҥ@N Q4@yab41 Tu&1L@IL\[LtKcCh F(1$6 h h4Mb F(1$6 h h4Mb F(1$6 h %qQ@5fQ@Hh4'1MbI F(q$6 hh4'1Lb/$+"ln4 $@XlO)ir,4͍M˱%x&jI գIl'1VQ"ѢÍx8Ǧs˱:XA>u;noõs8MH81H҄}($@XXq qw"77vk$_C&F@%1ŸPAݪύYqQ75b%!3ZQ$@xlpj-n\ђV '1lQ0I amva-h`?E/qFb,$v+ޣFa0٣ѣG5 JbD7u1 s ғhMb"#X&$ht(q$6 hh4'1MbI F(q$6 hh4'1ž(:ف̳1fHfѨI HObѪq郲DN<)*"yRHh0'1q`-rRh$@X$ x΃\~&d7ÕD< a7fLm(0Sh$@I vPhdW#'6R ^O"5Mb5cD8Fj)XXnnfqTl&1Đj/H #`&1hVQJbà ~P)ֵe6d&!o)/5Rh,ŐTN'1QQH g<@(W$Wb8+LPg NΆ5@aQ:`Q#71)-Q"#`< ~Re M\C7 ${H2I٢XXD3F#w&1Hb#|lY;e4jl bCF#v'1]i1 hh4'1MbI F(q$6 hh4'1MbI F(qXFQ`'1Ij{ I DZȌ&a[F=N$E Y{&ah4&1'1—Pցp/AID] =FH ,I eU38 dFK1&12;Z\8Pr +qȌ&1*'1w !u7" @a,kP6$qh!I pݪ>-F4ObH'?mgׄH;8$.ԍA΁ 9FCjcKbܸ81`V4o!" FAr p%J10Sc۴Hxhti$$1TI  @&$1Q$6!Jbb4Ć]sw@NPHQ'Ar"$6:D $MbII Fhqхգ iht{(q$6 hh4'1MbI F(q I`4ֆw I]$6̓@Jb;FpOb4F@&Q@$@%1n4Il&1"!qNb!v hI İ&$6Ā Ob+K.xbP6(n4 $@$'1ؕb#1I9Lb;FhRWXhaI ObRf?Rl?R@nG&Rl&1"93xBzHir4$@HI F(q$6 hh4'1MbI FV'12 hht(q$6 hh4'1BMb`P @(IlMb F(1$6 h h4Mb F(1$6 h h4Mb F(1$6 h h4Mb F(1$6 h h4Mb F(1$6 h h4Mb F(1 $F'7 BOb4~ $6 h h4Mb F(1 \I %Il G&@MbWΠ[:Fa@&G( Qm1nKF( %7=ph"ĸbmQ@< B=J{QMbH@bH hD44F@&Q@c@Ilh44F@n44mh4m%RIENDB`xims-1.0/documentation/users/howtos/images/xims-deptroot-properties-screenshot.png0000644000000000000000000024227207776633450027555 0ustar rootrootPNG  IHDRykggAMA7tEXtSoftwareAdobe ImageReadyqe<PLTEsOrGR4vMePSs쉌mڮ0N'Jcfz3HDggfɵEVU舙enL8SF"Иg3G7 )pWfeDVH453wzwXthh"(FeyUWU8ZsGYjʂFG@%2!ȻW*3vwg5T7&#%($45&)D5ugwwUVGVivguf..Ch'711Rm"]{fTy&Gzm(E+6I9SSHddDc!B]CfRk5E'6V%wɟ1Iʮ;DXRgAwH:tǒX0_, $@)? o߱#ۊ!C L@)),y@=:HSDN͚CJpXOwe ƝޠL`YJ ]Yqɏ`dD.+AIJGVB_͖|YhdC , ~>4, LB ?pm/q| ]u0  |b@p < &`K: @$`7G׵eA~PjTS[lS \M dװӓBmh@b35Gøc@ BTr@%{UpII8gЌ<=ZpHӆLmPJq~wWLmW^ɞ\~pI\i\!w:w^<ೌU#0܈.Wmo`gw`/pRk.=SK2ef ~|>߰ iSb2V@l죌g .e _AypH5 68tBͲPz.6{yÖX7盶YF3KoN>:k7$t"yX)]DVRSElY5jVbYp#3(pJj &A(s >Ew%ݡ2J=$~]}|1m\}KNEymB> q0!bUG`vRy 0FY>U(9"gd!`!rСď, |ﳈۓ@*4<|tw]3?iA=-J]=Ǥi)9(`wC]0gAQ!X%DV=; [d* ?AdO[.R<[bS (;9'ŵ525έST]!m;O^ـ% qǭt1dMXM3ܭi 뢇g}de3hLʰ6M[! ˻zjQ4nȨKEE1M/p?MM aJ} @8qqH(d .y%[t.>p["գн˹g׃rL4?[:`~FOv ]M3-KPulV0(/GE=o !Rp+ }!%sk{54 QXAߗqdN evcDbg2$eϙid=7Ef#ε>(,_o:k!ڲr:jCG-m#f8VW+~QL|=o ̇kӂʕ8h(c )< RZ:7n:%e`ܻ]bU/^2Eܿw=-|q7fPyޗn0 hA`^ $w#aa~WS5+8}m#RĭT?<(0ƌ*E3z7<`Gn-;a>qqpϫ~~˴O@ 8yNG%De-8sx`_ba,V[_U䠙<8E:>Z"fc)! FW'I,I5FYT: b,*Zj/7H Aa%pL*{Q:7!*[bpK6P ωnmT(!knz2;-w=ͷg=;z)cvo0 DAi\R,,`) c *#eʈ2= E(&pv"Pwy"]ǛshjvE̔g i ]PMrYqnGF!jͲ:KeB@C r|Yu$.`{@_t0۸4軝?2v-9o, 9r*>z]51F|d,33s R4"b P&rAySg g0&b=@.$7Y3LZYZ4E7NsXr+ы`LB#: AG! BBa@" L7Lr\3`2}Hcq(@1v(hH}9j6 (!ІQEBE7 p;zh(DfHwGNw  P<<,uďЅ_LHve=8L{( yUI 0 |EGi^>J m)=yC !nnY$7!1p[zJb'e/~J?ZohA ۶2Ws߻.C U[b;ajHLcXnK`MvήBϛa|yb@j@vDIޮ(V`$WХf.C8ңL/M NJ) "Yq'g+mBY%k,u҂5cB䫗'tm*K~A{w)C(`i0(5d IQT1Fn҃|5@ҒRIo H Z8;bfrѣRBѫ[8*3FmTNJI`g< wU.d&*$c4Ի3ZXi":~MW?q((X1pEsUJMKmcH*wJӟqSnA `*-Rv6Ic,!xcXE&;iXx&6f>|̞y1nm[8 0AQIzB-E~`(e[a>"l H' ̒u>xU.h!$7*E/kŊLƈfq"nPH{>jCL L%y.GMOo$2>xZ D=N[0?ODQp}g~ZAv})rbQE|G\dbg߾^<bO`Yw'HYK^*As\'OSIe9C0d!\{ q @#^-S)'Pg G=B-H89ZX:ċ:;s۬6V#^`}i(|MwT(yGsppCB8DP8ش㰖Hq. |~&"D/ U@=V#DJhVz^RCĚ[aMB vf,bd5 vZL' t(P`-W{bPdW<tC:>AQH 6h|' V9vI<XA5QxE|F2,+@dU|?E9kBԬi&jrHùGDT"y -8a HTNAxCȉC%Mp!P4_Ez_#SRHH4.COX䨎HS7 DxaO!4BW)Xba/3AH94<"ADH5=5 uy^,f(CH3 IB)\4hA"H 9)h+[# N0С[co+ da"!U=@/S? &_c"T㮵uz-/`}]/tnǥ vGXvH 9DBrg(#1r L(ۦT)% 﫨4d1 [P6R7+4yO22SZqm&#mTvKXwe.-[eR inQEmԸLhO@asKukA`E,D b^;XPlM6D@S8ofM, !of L@;"r"]4;.+EnDڜ뺚JRJg< &,({hGz1q;kb-~`^mD֔ݴza شQN-+`kg(U% #EC-SQSg_]kUB.hK:Chf4ba{u d(8/HVUةI*_18(0*v sLYN0]҉QbT119@?|$VKdY-)$xwbFw墑r)WSmB"/i 5<_<,oOSo_Bo%R9Ɔ!Uȅ!oX_GuC>kB7DHKs ?`1 Qje?5AυRf1%T6Xu 0ǪIS}JU]B,.N^=Gh Av@ۛwϼ?po"̘gi.zݍ8I+72Zb #E (N3ޛS(L")]<*(5p :%Հ)CP ֜Q(CBuWRuYL1)d8ZYY!(#HdHU |KlsRa?ߠns [$N82334f}&ΛNfUdHN=[+$!̮'Vx! u0  ܔD2K@ɞt( FUdً݂ YIdw8QlI$VyJ+;Av2KGo#mY;Q8su7=uTr19v~8hjĐ 0 w+sjXS;N?y؅]cY4sq"FC9R689zGzy},m6z~%??iڵ-)ړ@'$}"+;&2&/H5X|$9z2ط9匲&?( rE`J:wT=xQ (1]bs`?8坲()#~i9l91'h$q%q= %J=5.3kd)M`R05 JEs$9q?sAvx43N|h'`z'W"@Hs )7]0SL i EAJ,}7pa@/>32FB>߄@X%tט.vv+fK[A lD*6'GHc88`b`2o<y{7{۾?Zg؋B^{؛8W-#7mY| ~r"IޅSŴBmhZ|.t2(z!&Mf&D%:9(C>Qz[N*9¤RR.3jwg#kyM^%C&HU+bάt^} .M׭ȼs"?`9?X+m[/'*6z!͕De)<&{"uHe*bUƀ"!k-Iq֙,)f qG?Ȭ|=O^zV/95sCZ}ƻ-o@w1&`r8uw'PbhtA&4w >u*@kțps>$<^4"9>Pzߜ-,~3= lGbsv4ap$8偒yP\v팍xX ~O$]ψpgҀDD`"jAJ@OQ$!y9ibĉ%`Y]/")k؉SK<z%^'@Df̄`~Q0@y쇥”<LCOYN9T # > @ )$; Xf0>ܒL2 C(aFľ@w_8x0:8FXjƪ0GH* uX(4&O: i@Nrѣ`" cd$= Bb8 d -[} 2 $`!õE;w; kjEv^;w\UFUd jD Z 7nj"w.DQ= wr% }+u Q0窀x`.0AJH InQQQLlOkKl] ZYYʹEfLaD FS(k@/#I%$郓Mh;`ʋ41 Jt* eP[,8@Q*ARL}}ʕQwFGy͜ -@ ֭V^r9o@iJ FSRj0,llk D`֏d0m0c`84aø قP[A!vUʞK ۪s e0aƑx@EŠD:pn(xmqsAPQb/;NoL^M5.ѧєGǔw oy\-[am`BH5ȷ U o } .ki0 ?@sΪL'c. <^|QU|]Uunnh~Oh(;(*:pcQ@hRVbjw4*8@<:׀0%kAYa a?@I*(ݐl 2T۞yRe ** rNMDmh$prZhΝ<a߬?@))XiPvƼm a&8%e ?2J; bP(Ձ@ `_X.O5Kxf繹,6 sAbb(0ٹ߻u}"`Ɵ͔6<MyLyRSp# wpH Ky@-Z;Tކd"l"Sv D.A4V;fIA?`FD S `@eZF0UX sAE\HSʕ6zSVՂh. PFsa.5`u'8AZ0 @[[ TVUů-^x/ /޹20P,] `[MxKl} FSpLy #΁Jv7Ul"Tf6[۞y*`3| *z7 p'PHߛy&l򽨻7ﺃQmuWє7\k%=` Y-/\PbPM-^ ^յxPAJu;zU@W.Y䞱x']Q <@)oSNpWw!]vty-̻Tw{ٺ˳b"CbQtuQVVboz-Y<@)o&28kA2UЍR۞C<`!V *3@E"0UvselV{v̝}oKe@ ϔwRBŠBoU:aT쑪#<+3)\Ee4aXUXv$e^ hlb@r=zРLyUV*)/VaIAeZ)6*lwڧyh ;*@eֶPG XUAy[s;GS\g;@. .=W!Cpw0ByΘT{3m 7VAN츭, DB(xsCCWʼЅ|;{<P[}7X+{x0A<`?-S|),rAPŃO:?:@kJ"u'e`)(3v 6LʜC5R(JDFw^,(x]87TUgA3fS-U0j^ *B\ jVTG<`w41 _VpA- `Z"fLysy2˞4@ \f(Q(M.d8CN`Zfϡ/W֘ހĖ]-@m⟖EGF_lq,p"Ɇ-SΡ7\7䁮w^cНhw!1o.(@kU-rRBQwKy Ć1ԛ, R"H39hWauЧauriH19` H"YQrg 1wbGMh" Q AUPPh vdso(R[oNy<͸R@[2ؽU hХ}2]7B_d'&9jT!Szt.&*y鞠s13>ʳ^a DXї X1ڙeH[%W<h:G̣вQ( @{넉j]dh3a$= Η_uQB]_owej:0GoV pK 7z1\wܥS[c'vJ}=;꼷z6Njny_:a)#g0 Ea 6YY4y0dtR^d2zɔSg/\HK^qҔn?ICӜ3:D;3~$Blx 6C!g".K@Ě<JQ2\Bb<JLq![(!ܣH^R"扲 `[s)R" ݠ"v>6 Nr7ӼlW{;p4&Mu \4PVlq_,,xM& M!̖y-(l/j]x'l4c0i M?uvzN<<3m°L+[h!% "T 0i)CUa%idi&'.4h0>?imm{<DzGߔ1b&gHYPDxK-) "sd-$+dr42%+ԻeyB9 )3Q |Ӏ`GM>D>@p*2H٫TӤKF Pjo; ;TK&/V⬟$_S _.i-w쪕qaLrȶ c3}ˀo[ CI\fk~+|3HۏLs_=aK^cUɄ.z:m(:i=O9uo3Y\+4}zQ4QjS37vziY e>m7cE) n2JE^E@޺,v]w?~ Y#(`,]B e:2*nqVBq]BAA gB?gBqϼ{/y_'kTq Sn hC{4JǺ-Kи`Q[c^5יzr8;b1dR )D_+9rD{FF}X%XG66Tagb*TC6!39 yj̓GcA.kw!f훫wI#͝"4ZۆJJ@gy$jJ mS"AA_6ۛ]-a! /x#[­P\t!k v鉶!?I4yX[ht_4!!žMJH}-VqG!T'h54655{Aj h25vR.y&)SБ";B*}ˍc{V n~~7C[G*y~w _u73s>' G%зK.wPc۬8R&N\ px̲c[( poȺvA̽rǎ]*eꘑt)S =D5R",7#jTړ`)zu==QGWE`+79w/yf8kBmr<Mp(_P/x5/ig;8Oy!F 6f@eBsU}nau1~6i_(ԅMd(AŊ#VZqJ3&Ե.0&^ z"ǭmyn/1duJ9O 4,.晥ugHN,Z~xeW/y'R5`m~ ?@ y Vi0?++K[[.##c(t.xP! ރTr3x:"47g@(?@!+`"&@0pV xp. ^!HxP60P> dA1F(3$ ɀOgT!%k,  *r` ,Dt1*pZoqѪxP=2= <\"jˎVxu p׶ q9药XrbG Y!qx̽PC!A=B#y9US`'_ PbA9@—2$i,.:@I8A)B#~: U hpk%Kn-̏T5V-*A)L~ E 2 .HƇR=[,NДg%&LyaXh+DmXCg Q00a%.,j8!4CZTQa0 _< :pǁb7ǴWfc"C={\B 7/g7@H2&YPBpI9gN޿Dgŏ`1c(Ϝ޿> :v $zl$`tt@1i'M|}qԴ6jYhX驁J=Shͪv/"U"\fq(F蘰qa`}m81cH@xŏ ۨ? V%,2&MdM  br }p GQWQL`s$-. $i!#*7ة9o>wMHcO!R3O Rz'[1/B_|:c| (XT*3 c!pX40=k'70Xr$`r35A`F> @DY$hO?Gq ЅY`q- 7As  _3^zz[eڧT8/^^MꦓCFfv"}|6 aZ,Ǹ kV8o#5f0 aA]5!o fx#t)⦩;M+ZH qN^̜ z V(;6)xr= kV&+J V%پ3c=zz" 8J jY *!!y{iF~Kٗw:EhL[G%\M?JTuB s^E3BcQ陥yW6mzJ)?P jH.%In\?4A">I(.́7{ᜫچsN0sR]h`i6~aŜ }*`6(̙N2oΜ<3jҟ IwTۂʼbNj=61Hczi<օ];pooȓDŽBG@}["A1z}ԩ)(E`]J1?w9 oEaΗya}Iڵx'.ў z@ħ +zsPmG2jOedM`jzJ>(«Z5"C >`r; w{'? 1?y/rެI"iR2 Oyl,Bf,tf=,WBA)g{P{PKTtBIT~" mAfSoH8 T\=W|͕9N`t0 $nE G*Qʺ1'.|X >07g5`1ghCPnthjFHo<Ͼ`= nU"c/j;K 0W?_T hw-/o6o+~|Y"> Q-YpS4x/ Q3E3 iqOvW6-hX$gfڟ$` S"}ChS10#`@@W%917G-7^@EV|CȜ$}#yFFF&eiO )Ѹ)}@|> ڷ $W ASPcE&NO(M"Yڼ.5:v? @ >y(+B'v9U- |*~d#--l(cєG:Ĩ 'RN16 <~1._/kFHA@)*8 &c*L`)d I)OS3ǎd: mw o6QxsEl^?z** AMyTJyb)XTј@H Dp(?DXզε ;j{ єGl[@c"NUg!i9M4J38OJ àɓT; N]gNS$坜IQaԃR38hd
)}ӰYó6U/WpaYGf lq^7E<<1uF V Sam|$0d.⃬:I5S+ H$PgVkU+Pp)S0jjO{Yà'pєGꭂR { LbN (p GԶz"Rr^S&jT%e21 s (LhNN9;;zP"6}03gAhY)ܚp3 єG+9OC##f` My4Tgh$@)ox<My``R@Q00) FS(=8ǎy[My@hh4卂4FMy``@SIS: <~~6 sv4\G!@w>`@˼NfjIaGϜ<FwǮgΠ)xlUx

0FN%^?np1<#+@9zSYA.PjOS}JA%:hb@"*O1'[uRvK'_{)Q HZb˜ X슢o=ȏ)'"v{ʻ*Nwe/ )OSa:Sėy]_sԩ+'RS< TMNPP8)ISO)10k"Ea?JIy[4htd@֮aDn pMr dE#`Y ~u.v~ _H_oTaȣYtX9 #Nn|;"!af)!EQV?MVFѧb/b&`)vHnf3QYŤ3yyiuI4l" x=6>5(%> s)kWH: LBH!h0"l5_`2;˰D22/Xm yWO7(^뇓?ݻ_SBڊ4i""gq}ANlZXoyVi>&grʤ &::{ͽ*r<'v%Qi!}$+:R4EN毣Hbt@i ND]QمA \ꬂYIl-elՆ"ޥwn҄yOh/ڒ|A23Az"m"ftw} @4 axVU.KKH( } yt;/ŊTMe?7 9.xX|'-Ee$ 92G{=;H(Oԓ~ ݉`>r:^4"4 A9>sChJ?{\R`s@Ohf߮@f`KiҝMtatyzd\6K>^%ُ>Cĸ.>;S;O 5/SH0i CiZIWt▬cKJ^kG-~jޠA;^k9\R}K!x-mg1Z3Ts5PYy!5H d<wIsm*N$9S/RH`pNw;3j'ÔgUš-Fwh |JM^Baay{:39YPXY} 2e͒A&_`-a)ISc9vk=H|XW}o[2{ mu]u 5o`k5v̍HVlb5k QJ\<5AkRIm ߫8s>{ƤGq0(Z`-WH K7RAoQPc&(\#V*B:oIEK+<Xay#k4!>EͫBery.1hMh\1 AY OE1-yZkcy!y 7N@{ ~cG.c};SJJZ׵gM޷nio,d;Arf;5Q>?AQh!Ukӳ0 /hOw°}|hkk5RG6_ǞKAk[P;~G"Ws0<˩{X<dףs9g4.LϏP٤ YacQ)42w*8%B_ e?8%kד' #72 Xp,JP ,| ޓ .4HyX9ca( ɍ7rA\ڛP}r95YX:GV(V b6_a`~v<b#ESk2pCzBъGn,0̙Bݚ6" ҉|39lct9NY @=lS`s\- kd)CC=`!{oaaw3; /Uw֤c}o˝Y :0tF@`bs#;+а|^nŃGzA[&qׄ6xŰ/s׈LYh+d[8?;=R6@OZ˕J0AShr$<(eäGz5G}^="O|f m]1 @,+;%1H+ " gn` ! r[\y-țz*E.>@6ց;0B g`Ĺ RZ$xe Vc8d %^ :|ҁѢ2pCg4tP:W3`Lа)80_S6ͬW5 5};Z/e {7?@CRϹr!\Ih=GeRg eJC˙F( ht(@)o є7 hh4卂4FMy``@Q00 )oQz$C8ɜĝ0s;\WS0 ,rƺWd4?AeJQ-lv*;<+qS*Hcl]+151nS 0V1@T4-*(i TaUzrk48$AW vْˎɿ7[7y 5==N1bkQ*J)2>L.xUzwCQt.*g]2KD41W6d2"C&̡{LD3L\ $)UG!A*\ a ?#uP  mh&+!yo+ւ2Y;E%^kn1$?3OGu˶@^woKcy̼`w<џ'>zd仛E@4y R:YM`9Dʰ 0.%6 6_if)A8d#g@0,?*r pBzi'rNrά2()yu0 q'`"^a V(u3PQ3c$Ծ%>Pyyoͻ A_:1[cRHӘ=3ҷ@Y.br85tfP\#[QT)0!NTkd&"*HuM9* ̰CZnl9%bh n;QKrPaxf[H3 sKjlk"Mfh~{0lY-U'Ly_t}t^ 晹] Ƌ4!2hIĪ3pt m3Jq"uu܈b&+#@M`PUZkB ÔQǚqK^\{(y,䛡b]92|1 0ɐEH:8t(ҡS-Y."tYzW.)BdȒ{:os&bbyxMdBRUcsG>APc=*}GӰZ (gw'1CW5WS9PD99;Jm҄aNj 9%+ig;!2wLW¨A[=KrHKa DT6UFDQ(tyf<1F mo;.Yaf@D>7ʽa ΰyŌy=5p+ޚN2-)crnG t]R|J E;9`Gbh^׺tËl-g]'\n}mDOB~-(͕,%MPtdв+ \HLѸ;t"/3#e0 T ,S0\͡9xBq kTw}7b5㗵_y'ymJ1R,M#w '*W8+ j«ryQ.0&ģ}Kʹbf.@hlUxwwQ qs W!f)PA ]6x(δ8W;8XO+,[͇)!g=ҼqBe^>/(yLj}F,# nyS@ix%^Rzw'~^PĨYN5 HUآSNlJ6$5RI`G,MPfX"7YX7O*, q*f!iՅ#9H$|&kV ,A}vPo7O&1ErHLy5cb($))-B+ȇ-B݂F=3KnHUy5[Sd 4emIcd oa_lGb;#{yo1a(uxɡC)Gp)BA ywp݂[KN$E!8e @~|ޏi';2 Yf`~S'IEL"m2%Q$athNmk9n1{sxM%#[h*usMX"Hg`%vƲUنSۿ$-f0 CQ &@QA@4DA!SY07¦.#)&M2H xcb@NtP|ujoܞ^n q٫q:f-=cKy*3qǕ!ݥwg"ț,"P`$j 33_.d/;$x!*^ĂO'*{||NW˼ Uhti`LB?xYJlSTא>:e!!MT!uV4Sk+KUO/4MW㥂{Q2e$́Ju>@Աl֨I0NwpN`FoPptC疣GCSc)a;ѷ8mi aX!R;Tռ3DBUjS\LPV|ûW{/(We(`&^ X=3xd]\@Ad9*S|+!RXBA+x2$^]j~\+Jy̢ᙤ03K!XT <JPƹHޖh@!n 7Z* fq&ntJא.d!ܛ}|,Ow{l=Z6q+/V*(?{U*d*zS |x!'|W `@4b 8P+ҜE>Uyz7 %B,Lt"@v/pʡ[&>+'b@.H'.F_A0KK|Կfi\iڝ{5|VAGX04ؙ䮺րX9O|pYmZOpmJo}cOU JcBc҂5•)?>EPg2sB?(osEv.?!2yu4z zx++O d"H07hdM^/\IwEZ2s*P,[ 얊*ƃ 4E5E-$S5*W}hudi4,.%=@=ueu>ȪuҶt!ɠ~ 2w˧XSc}c.]~XEaˉ [@7{SĜi{(:Vt׺IHjp 8;vo\^BCʃe?l ~0pQ`*VB!$Xsg@(ˁM<>^ȲooPwV[+&N;ѯW(T){'NA+R@&A}4? LB؍e )hj~54@lFԧ(h q  AH=>JOIp]moudXA9|3rURX.B8Ji.{)OX1  SH Kiy/2 ![W0m@DНstQ6UEnA,8ntE*-=[AIJXpt=L.rSC%_JQ7`m4\O")P-n^#T ʥ1`5@]YI't`;N&i.lY(8R qPYetpvXq9mtҒ@MSngqJYy71dt3ߡ=,⨧>DN{ys$yZޗy\"O/>kD^ZkGAXꂍXYX?M E zA*PA]m28 f޾y_^@a, had2M8(8d(O3Zi` 7JWgD=C/- lZ_FQIօ%X3é[lƲ9=oChkFL/$l޽*3 >=(|*KK \N9!y:,=:~!Yc[&[y>>oP3,$|׷O!x:{`識@lk`"OiMہP@{lx'ցр;!sڴ( S(E/eV >OpJTu{?L;d4Z^'!;Dz*/[Ks9VVQFN Bսjd۵YpzhR@q:KpMAumʹ*+cyO.rEĦ+gPAS"ջg T\t$ \1 0`Щ:ƿ0B6Cw+(t`;d5ݘe (+e0fx=de1_|5YUBpiw i;Q 8ZdpE;w.I һ,^yJ,P2< Wlu m@%>s* PE\5[SB u~Llp^7?y"D|/;F#'3-mո?P 33=zka}}u靸/Ao4 FU\ dѯSS9=݄sD:dO٠Yb B$@)\4nǺ8m#4@.1W0 EvH!H"]]J[H]|=nOb [&C 7Xe%~E4֖K:KUz("5_9P+SL`¦XoM۫r+tעh8obkEex7X]5`u{n^=եZ(O83@idȍz2:\̦*'ey ]=VZqA BW~KExu3%s,HN3LRQ)fy4O{QVޜhV#aE b=\Q#[yOa~6kR6Ĺ ##S!U2Ѥmiï2Oؕ52L12iym:кcF^^e}`ؾOSH_)'#ȔkE=`ضf'L|>R t\fteI!i}h 3{aB3hY${ 24e֨έvwڒ]!u־ʠmAL^ɒ  wG9BW'"*4PFeAs 'I5ՁĤ )6u9djʀ 3P͙i\`e'2݃sU1R*9WCC82fs(U9WNr^'3 ʼ ~)d+U_tJ~mЪ:#([< (`4A9`S+&9m.e6TPLBӦMa 9f@!A eOqRWmLY^KƤAx#ŀU է| L}62ޜtx.y7]`Ò ||nH0,A%ДWkkR49sΟ8:aq h uiX Z 8Lỹ4B>Kj#"}UUϚ~_q /Ț`U\,Y楦fK:o}СQ#|x'2zx:y`@7Фg[p|F0(mWlc NEalx;nR{ YHC%Y %h+IЬl hS:Y.)*$S +PAt@ʠKv^؏+Z``hS-c' > {@^jU'<`gɣG NS1 P]yBACC4Qh;q408yϙ-'| 2o94dxy@Th ^;Wk$;pfxL(U6J Դ˷F6 ؑ# grr6yP=j:` Uꠉ7Ip2 X$x҄>0)[@À|1B hc+C: Oȕs>W)4.~S 3sNS̅ߠTOj'bs4J ) )5Q `:?v~jm QS#h_apPQ*S!1\2)Ũ}w]7dw_7#PT+js$-4gLhBӌ T  M ; X`&T`jU{uƠC+? @#pB5`%SԀU(hn4`LӔ=@+B1؜t> XN" ^ L* L}n@~ h1;HkUef %v޴'sN)XhwWB׀ysiw ,A 8MX m#,ճ4 EQD2 7! J)88-YJ7A%̥vqO8<[At,qwyePMJ /hj/DqYwO"]^w?λVE='0w|$ڹ˕MY YMd+|8H#>Y|w"1~4en(Cz\ g.BLM3nRRD# p lT aOkϡbݔ,c/Lֽ%W @Z,^~%k˦V=̎lkTdZͤ_C?KO̱1҆S3zP1Gkq`OJKϹ(R_O2ϟϨNXi6^MK&2PJdyԖ4D-O`:M4+djwZr4* ު Z LYAs!v*MPnh] .<p\%=`S%`dбG]nBW-.\]|.:fV̥@ ir 򦁋IꠥO N1hHȔV]f^+k#&]B@6ꅂ]$[`U `y.I%%0R85'W\! XU_U_oWlk/G% k/|ɇ {m7Gn9:6@1` >1G h)({{qN4x \tRh s~TQj NWK慭W @ى"4M /LAkGYF*˼i`]iK$M4H)vhLe N _{M2`U%Vmut--X%-V]?0ɁWˁ&@3q?`* Y1h/sշR@$ N AI؇m2J*Z!<77708 ܩL',DʀiЀJ`I%J5sD}iP 8fT"9CιjZh,ѿck< ~.yC3P 4A6mNNhN `ToTW( ¦z>"TkkDа Z f K:`H 䵦;#>~>ΆЎnjN0"q˜.s朘V~+":1(pf'WBCH;4h{P&Rj>fiEP\nLy@ @Zg1tzYߐq!|?v< ļDW*8;3]1Kw^9;Ӹ LIZM4`3 (Md`5K89ms$%$\- /M *@ s,@lT&@BW]<Z :NJt,$8IʳNԨN]Z#.TA\#h:c.kPy9:f ,t?G AI Ϋp~J|:'YF0K.+焪^+˺5)0K5 U4R}J@kU,dʜ·3U9'*.fuY *uDtA,O5,Yn \@ -,ڳg.P$C ܠ--[E&ȑ2P , 2uP9(LZ}b TjWP8$ PCr;;" TMkjŝ#hty8ق4-3g΀ۿ/VMϯOsgElll鋿ҷ"&#j9 )ȫŠ9ڪ6\"ފ֝ K#F{{޳APʽ⽪&<`ֱ0GB^'"-Iy34J$?WW,-x47md5b >c`㍯԰&m.E ؤ`& LwR A $2 QVy[}]`7uH1, H4.I@Gp g-)~LϏ9򩷂E%!g~A'Bv!)30׺'SQi@ {)7̅}ӎi`{O"WU`d5@7 `/k4AS߃9E*S#,j`݊PJKINcQ× Ll?Ej9Ax&6i@RIWX=.|ėb Nw[=e>!7K7"HT.OxI`Rf֑ʠE.x:x Õ0]1;poֱT׷Jo nn|& !x|%/6bm01$#\\Y;'T00 Ul6^&yLi 5ɯ;Hx>.#,2T50dqW LpB2vz` sȠ&B] TLIր,D,Rd6O`UWR j^#.I<>G7|n/0v y>RV QB0l`*Rs^´(EB-S@<ys^s9n}='9V$Z^ ,as.,fg .QEv<'h(AJ6H)jTB4FXZjhXhh,uu=Pa Z?@\l :] W@h®<ª걂 `՛*4 ne:xԛM9s,EA4sRn#r@<"~HҜb@<e$~8pR` jā'(]T  l tq@.Օrr.$Or@u.hhYOH>OUr6h<% ,ɀE#(!Nځm;D[[J.VzPғ%d`ı]^OZjURNQMץ R R}DRޒ-h \V4~.,!e(h/X^`3ս2O~qQe+Ꝃb@|+/8{|*'|8J<8YkX"$@l|mBQЅ\~낓tspo -,-,,$r WWKpXKy>-ީn `iZ%@:B:Ј (s_"ZLn+nUn 8Ձ nI:Wf4@IЂOh* Lg{`] h"],A@p҃= pID r [ [H[ rmC))KK`/tQPcOy~`|-vV8Pscr6ܠ @) `T;'n0w L{RK]!.à)]`kY3M@THր7ǂ*Qi|CV*< 5[@K>X^  $"hY4"_cl)lxuD<b\u I\2.&3>yHX'@$D+h BJʍ/ u]-\,\|K]T׀^m 7 t(:[^ few$M \fBF]@ ꊀF\-r5hĔ@,啸>>`id BY -XZJZ.|),]m{X:BR4@Vw4%-$-@QYU)iH: [W&JG]B!|.+,S?焂©9ONz\b*T4x&`>/|he)e PBvAz!^.==2Z W;,;( 33G>s $ =69gN-*=zx(<\)BhlC ;_ .-%To0h$hZj* BN۔)χU 5WP:lt%m]mԅiL5#th< pFY]^e!yi:V}h74ikNPKnhy2lM9iE>dz`~tpy !RՉ g(TohPT r73QMy @w2/3R@ 2OTjS FAX@NީF2OW=xb10MXLy~zj22jSE bT.] . ,E9]`PGwr7h|}irf(x8a9Ƞ h"7 I l2w_H.@u򖠾:; T]sP2'0%o&0pʃyoSPxp pʻjC/J`iSp{;x<"+N%\2<)`SN yI&W$H4K͒>NCどOC Ҵ$> HҞ.hE7ohhjPSc!>B<_ i^kaPyʪ:p*԰tstEUsʼA)w?Z(\9q 8i^rӨ9z*7$y=; ZSM|Ά@ ksBZg L)J9դBRmISU\mu ddĉXTQ,e0[8KuZ`T >А xe4`Wַ}5nK @Nj<Ƀ. vl`OiӤk0ui"]t-Օ xR{;!A5$u1@ zyb(uV]LuuS|`]@ZYAW ִOR $\נ:Q%OOe`Mb9Ȉ:9)3簃%saf>Q"z(<{\ޥ9Q˴iNVjRWDҳpu] $-wV3Mh VsSD%;oA5+0aA@5.tLnvy zy1Ey\\KK`I+Q+S?ȶW Q(;lP+Ϟ>x>qič1112],-$kiXJ9/`׵,EˡM\:>PWӭfj znAqc]O׶`ULy\grNyT2=kz9 4:Yg(č-RS$5꺪niU6-)rž}C&^;\c2>PgP#,.Edf:+n݂:6J46^(Ƹ.u] >[Z21:[Z0)XS`rFW""#n&J̙c?G!6jà D9JmF$e:Ge6>d˥?5A P lӕ#Skƿc]s,rɥKZzO)DS(+~B[U9gĥ4<{ 竌w2 )OxN9<CO!)0eO`)Lx2te`.0q󌤾 Uę˹PSei{E_fn"iYJL_غ{c^+hE8ebb&?KKDߖ=C jho{?g,gS9@)oȗyOyNūs)Jt.гK0sV^[Qpr8+Krv^ JyO)u~ `Ũ2{5=/yziٗskt^8hzȫvQ )#GQD56)) y ce! W֍h ڶa, Iz1Mc8ATrAiͱ>7ozD^c_yy,hRW|WO&<"9Ϙ:v[|޻sބk[gӉ"6'焞c<,<`>0Wdiڼ6gCA.}ʼ`PgTCλNy}*e\2 T:3Skүmh(G qs.7\Ny1V')IʬKA$^h!$r POy4fςjjXkO N6L%2"EEKJЂdXL723d[Nbfv)70"ueMMgVOEmX5X̘!\ʧ Z>M=XOQT XyZ9/P{O4 ,j E7x2hg mbcw;>ܥuՕrpu6IPcR7@;(dSve#`[Oh4 M^`{U3(Q "œT Aǽ{Ncb1@sg\ggSch2o`Pq>ʞBR%%NnCZ6—gՖ.!tq&bְ|}}^cՍwfeZ Jz%zA+WwHLy4ʼd>d' O>^F`r0p5V~~~22I%enZ>S%"Ԭ.IxfvETӳm &?Ʃ2~~9@RҾ>>>B|:$IIW^Is@#|g ^<v@&s|h0X޵ONU߸;< &V`G67W~)d+R]yʳsCZ6a hyE+ <O,NJ$bQQPdLiBXAZff5(1(%ܸq}7T8U Y^nWsK>Mv(9W/\'S lոjc.)єbbynLR =.'MmVR | [X[bu,Lyk J 8X=罈Hh(! w}!9Qu"˙lDŔ@X˜4QDTc:2` S3бӀ Zk_db[?3&* Lu*@>J%W"FbKhIRW۝K]=Z<-4ZD͙sd:S:B>pY: RYh7s@f@})._[汲ؿֺ-cq_]P«th ͞yl(RnE kBbAV/ћLc5)5Ӧx,)Nr`fniiy`}&/n\W٧R wSΌ3S.8W?y~^ofQ-2Isq3s,rrsz1 yOVu`),R򒒠 R@^vrn^5Rɭr<չ-znJwK/c< `EP#2g@ `w[,Dރ؛Û%<{"C0 +mQi_R-#ttγwܑyܝ;9ɭ\_Z * b$݁IPcLAص؟p~L}{;e+d-ρ)O/iYz*ZJI{ZJ[kp|5 %B bs[!yWMbޝ  &w̙crrgN Jj@Bnܝ`@ u@l Li$LurO%\ 엞hplv?}h`a̼)ǜgpteRWW>8[X{t]\s-~x&\>`7IG7KFƿ n_а^T}njWPcʵuB.e+js0 LtݜgxptUi2 ŴWBoz Yw̙OON}\A0́ !LP +@~ N  Jye^0]zrI H?a`_nЩ)S='I&甧EKvfwA؇U53W7MآoV Z/6%AcyNgh\t}AcjPqi4U؈yRTy@|0K_ (7!OtrYڼj D{ū.Wt,m<j`{BNVE^լ@ʀS\qABA R8%P';q'(xjx2< gyja9g++2h2:&y7K) u `W \! hV1/o,0562Įe~2Sgrm .@LI5Gr7(eS98) )+ 90H2S ŝTځrJvM@txn; G%VOµV0^wI%'aD 4[rk9w\˕ZZ\E\AR``]`M*GYYrpYY?ڀ JyVnֿWK6Z?6еXβZiFh* 7LUCy!)/Tm9գs C` xݸ7j80s*,\X' ;iV}Jyb ߝF = 4u4@] հj\橄+[pN-p;@4;8Hp~SrOe`;LyJJ9LKy:+XW^GYJ|\OK@qu, LyW3YN51@e$$I`sEJ` `BUWl6lUUi0 VJzm^]z) kU ̹0qgm}YX'0P_p7~g ʼf{RRRe,˭grtuH t\6)!p=A >[MyX+xr)4 Lw{ Fy/Bv]# Iy@(vX]=M2TP).lHԭ] H%^oT@D*T@ HZ%:0ւ@* صNhP:TR]oߩY -mʁ-4yy`ʓм# :T t&+] mXխR5e)0zdRY=5mWU1@y%b7c9;_ͩ9 4~.?csD*f\yiW3S＀w-@I Ի5^NPvF] .@-N`@-5-P*@ŝxB ' 2ᷰ0)-.U-|RJt7g`]`">{t5E'g^n]t uu-.x 1A&` Ω8\R@!j[S??`.s3G@A~c]Kþѩ@ =cv*RXl]߰B 1]5@yF{ Դ׶d!IhAئZc\=P4H*(ևB0mg~,}0022!"6y'ܹsԝ5zM.̙![Ah2|R8o~ <BHi )怕+!`ʃ9_`ߦ<]Tނ^7<js.Y = y`'СhT :mXQʴX5yyFj]PXX :H肦1"=2v5z 4SCWC@) PI*0S@<5Ph Zj` QҬ{iU+ha9`$B/^\fxxԪ[q9^x;xdN@ ԁ{r %ദJ'jiR#+K8LZ2<ر7]oc,cy".@ 萞uP< w]I ]p .AEH@i+D"(]9(~Aߠ.h0i;2}faMtS4yP6jh)#pEa8 l3;vLB h'S91yz[xq(M3xr'=hGP w8xP R'NV+{sR2y>Ɵ+ckWaPRd0ccsv:W`ٳR@kC!GeM<>9MUgg@ 2(0M6Vb8wœKryk>7G"1{bNז~WjɢYJlcccV339zZzBuA.ppSB ~Cle3;|9siB 0SX}'[hnPۻ@mr_ Y >< ³3Niʅ\A:ԧv܀A0&FP;_nvJdcvg-faYXٮaFݺ@wX2Ϧui3\=-mRgayC9 +N*io11 Е`.N.N{t t4w'ʹ.sAc˻m&80`ru yAկ}u'hNNA$ )`k^)rՕ3'bg'лKRw=9q\Ş;J|Z@DO8rN{OQ{ ;;{Wg1D+gA*V^- >5Tr%ء.@3N\*u +`*߈ \9I[רOSZtndPP]ȓ|I-0JusՙS܀$ha.81S#bট ` ~PrPi-SpeR(j՜;xvmqmJK͞u>}n sJN^lRc[%m<&`A /s\*D_ ^eAY>0e^R+DMMOCӦzधj .=;iao_`!f0ݸ{zcD.q@4ZB.bo I.#1*\hS\ (a4>i୬*(+ZIIL 8)%*1 -X $XYӲ|(fp%>` էuT[|$JzDwH4Wz4x<줜أOEʁ5]Eu݅]]kF\P@@}p)+E1"yOyW\ecj3G@7Kxb<X$S&$d dl Jy m$CC"V\\B)]IeV>mvy]njz`- J4:l6"S@!j[y!tHjx^}F?:ySe?5YFfrI &ЁtL\\&; &DPڃ>`M "E] O_Obzte Vpfi Jl`'vt%6Po߅9@U/w4h>㴚 ,L3k9v<<suջW@jW`szR v ?螋s Oб;Y2 n (偊< HJ|d/Q }$}(/-4+:$<L.l=qpo `CA YPz<%N\ҺwdvJI< Z>hF]HyоmY p{a?gy@H?~P*eFI",!D]_tY}||M7ya2ӳ },׉Z!=`Mvr9Bhy%kqLo\ c8|@AR(1S@!@ fmm0 Ym.zmߗS$HRCX&յ2HT D.xfGSVKASS Iv@[~L? &jg7]p !5UsdֻЎc=ZXK+Ny> PpD<<Ɖwy2VT0i */ұNq'3t5|<4HLleH *Ruv.WNY)3<^9t-\u!\wEYX)yx=A5Hv25,v`kZBuu,ڲ\ŃV%{btͅ?Ĕ@'72\y\53f,@u?|B~Vд>,KPY.@–۹ y)|fF.93*=7̠o.\-?8yw7; ; GRVu--AnKpu |.ȜAVVj[0wmi [!-=p"فrxi)* $iχU] @i[jhc E̳u)$4\hQ^SB 442SOX ԂԶ5%r8bA%jpT3傧(@!u=[-r*4ʼH=ɉ%N.n8W)~DDέhUR)6~{M`=~{`k([:[%0)u-ԙ%||\}c'H"ֈ ^r]s/ r~ MAރzuf>jH:txV^Է,`Ĕ@̛ Rw155\\,g?׷lYci0hR]8`a'jLlj= N|L>>i@U- iS'0kk 0RL!yPs-?Ogz/?q =K[xrJ8Z˼ի|$\A5x 0IælˠQlU#W%<8^Pg0 \ׂ%/d3tL>Š#rW[{.e l9Al@,'t3leMBt0kH[(<7`Wv4D?H Ly?-@Wx<ޥK';5A\`OB]}49aCzeKXIRc]}l/ ֻC4:"ٳuxʅ+zz2Ꞟ-,cr$$$\%|r-@VXH/@eR+#0rc|P1ed-0,JyKAs >^?`zz(I<|>t`C ظ.[B@aO.h1)P F@Eh5X+f1f t%ED\3=PDǾ'~w}^n}\}OPplYL'\5HeA]\r]W/m _e5z'Ֆv%oI m9-g v vS,c~ RƠ3]нTL)>-We봗P]p ОKXisN9XXdΫT-ދSh hl`W62<J}2[?]YtnJx80 =Pɨ ͑USTXA,A[n=ʬ)Z)ad"e>MW4K>,\ >OC61//vul^DO`ɵT{3aйg#@'`Μjt[(u˼] Ju,i S[o(/6dT%;IznN+6P%AbX3O ZTk])yO `#PM9v99ŚVOSޅIS4$o) *4ebe6I.q:G Ј x^C\CZȭAJ[JwDΞ9گ3߿;,9W AҼs ϑ73G?=s> 3L; JnTy+jlYYHN`bw<`EZ`@E5~Z.)e>>=P9(* LWRNguu,X۔<: T;s $@Â9v-.NnRVY‚Ij'e|n.(]Y 66ml "48խ%up'|,]1@)OUZںeWW9"^Ӄ'xL8ks5렡8PȜR\;N hיm `K Al(hрO9a{@y5}@[E9}@-fq0,{N }`ʓhoV)Ы] ,Ζړ 5LƠ}#v\!Š.JX+ww߿ė:4f)KNP-Ȝ= Z /SB9s\վv0 Ȕ2OT2}R kK4JCSIy TصxqrL>@+t,%-!-c;boYb =B~0򹖠}|8-p(3)ֻ,.ǘ[_z5 ,VCNewlQR@JJ2 S 8@ӍoH#+Ys2Ot4TiBK=|)||صu̖2V#+%*90k.tm+g?=ЅUJjyzV]kaHA@=]eAzWn$[fγ(/WZicj l]6Ou&\zW7P9Z ,59LRrA+ᑺm!> )ٙ˹H3@Bii,0XD )碴{øGYHQdZ:Mue`pp)1&`ye$$SR]\-Z t&hihh''g`Q:$ 0iӞh<.&AQ'x;B\yJةi骑+oovCtH+$ Qb`[̨ ?1pyn <WL-Ueh4Εߠ̅>m場. OdLz0V:yucbs-V#J=Wmaf:Fg?.%5B)))Fh'D]uŕIͲL@Rkp'ZOjyŌ.-f1cI .s P) uPiqS^%H\FE o@w3ӈk Mq2πX[SX2YXXޝ}juk#8[[ >` Y#1 ["mBޒm1(T#$ Jf^ ,W.$VQyBR y-v}"J@ Pn&) P;ӌv `礳 -6yRY}B_Yb24 `ӵgmc͋mh]]4ָ:^bw}e.X۳Q <~~"9I7RNNSVݲ\\u)r] )ACK)/t*Q`;Xa:#(%%i We OeW)7y`ʪxTAn4PlӐ/<@c)(v8/Q6TT60TWTanyAl|bW WquX--}[dekf~2r^'yOiӦ [YȻjVP"[ dE悮r7~L0.-PQaĽDدi(%Y;-4|ԁiw;AZACA󗃖?=t/t|Ly X۔}|ZG앺!` %B+!'HhߪmhPuPj+.NJ*./.xVJJZ\W 0@`,TD]AGzv;CU>U@ԁ `VSڸt-x'P=P&\)]՘ ody4yB||K5a j@r,<=Gۃ V.mLa`r4>Mщ5IO&G>RR>**Az,;?6}jqN{ɓsyFW O mՙYsp0 LyV s--Yu1Fp@cܯwYvv 'OرcN;5ɉ0xgٳ@[\N^b;x'x x| 0(;Av; I9-͝ Ly?,Ϸy=_޷/Ξط U`Uy MQN M{~Veeu y')K' uu&OV`֑uwlAb-s=?s챴wոk5ȍhý'| s)NZ\@98 t N@bɟ}<;E4t(~P4sӧl ? |e 0 -@') =X yzqBz"5{M. qrPK4ؽдWnc5PVvTVLRy*W[NpH~ T1"S@ 2OM\wN{r5i9SsӳsK.k[&&'xʀے>]`3z: ݥi;b׻.˼{:ۥN **7_: P_B4'oji` QYwnՍJݳ#xi.э)І FX [FڔyAI"4iSД_RDgR;MsY`,z)= C=ddDAHN&bM'W7y{Ȁ` W wt?y mV8qިTrTÇ7TE4}4| A{B>wkgkcl^nl\K]zW=@ٹZ/ŰtՠFb m/Pψ7D/~E2 \/ MwZj'N'j9u'>`ڛ9RjZ'UU_Iw̼ݏُt-(}89;;㪫cy tgrբ1OZ;985ChCɱ+氳(@S\lv9@%E d#1r{O;k:{tUsxE893x6k3Gqg5FgjyOOx /$.Q:Kt:S0,v6)X{jB.Ȝ}M~yZWDcI̬:n]uL^QQ`b\mW @kD@r>uh]1HLX3s0p?=G=0Vs$ҝ>>>F@tHLyHy\""sN/f|;Gdm..^W'rP~Wó6\\sxyW8S̻KzRO8y/컨\ݞ.N`rݓ۲Yi30R1J]EJBpoC U;)ɓ68׮X`E9Gq\hvN(b+6}'ԴC{&N?x2oP ^)* "~s/VTyQ̻jj~USJy"Ok?SHOzw 9o.`ǮU9a .@@0Q@ 0z*R()9(m#'h L{c@d@n#01n%j%`},7:k[;& @ G T5+p8 PQ;bQQ`qWRS3NLyOy‹2 !g/1Y_DC&3V=kd:14RUe鋀0R2OXTO7<׹3B\` g\fZ& ; Ly`?{M{eOOP.Yn/¡3NNT:̦+(zζjM6NNΣeJDk66~*mmmq@m@\&y&&&uO&VMOQ{!@YX3NWH멫7CdNƜWsD-NC@ ֝vwOXx?h'缙3Go0屃 8}7|l)l> >D4Xo{\YFs|< @ YYYY[-,=A)@@Yٳt2[(װokktMֶ.=y~iNu2i@YۀBwgTtO9;;9@;ë)8N`t3j 9.|pgSNSk$'Eܑ(fg``.L~A)@~#1 f`o~~~6`} ?_ǯlP> @žuQբZT&A<,Z~GO;0i] **' yhX'}CL#*Gܑ3zƄS:܉Sm}}/8Miʞ> >|>mqTW&3| th'CNGNRHLyȹZa ,T4ى MKMsK5;K?1]ۺ[P#q$J\ r3Nj6 %Sw{0KY/0QKBgE^&ʼnʀ;ܛdxFepV!fN h' UK%$.*IMo5$icG^:c D}1 0`pj7H!֡:PRrn̞HiBJ|#xɟyaénw>m#= ^n=}2 $A7N>iv]e"aPBlș*L?s~_swӬ ҝ=8QJ%d(.\f6 cv˖Im?AV XPmG@zup|g('bAAOƒAurR%P{A*$X`:~X\%&`|!su9@AajQj`umW #'LygA`eo_:A$ `(j'5mlIHWV ,< N6 J~O~~ `=e$<deg@ V䚀):p^G`Q}Dĩr-tZРxPwI,LzZzHKC:|zu`V J0f%; SIir Bo/Y-agY "Ӕ&Ob`jfd5 Z`aLuF_'/lpZ{#1 +.>6|z0[r789ojX ix N`SQQvfU:T.q<<{m @ X9t6F H`R׶663`ӳͳe@QA 6e4: @%Y% YAb&HldN` <iI9 Bmo8c˼)`Kd|m! _\ 9ct{RO`m ;zJ% l{n}5:0:L L@:<ՙ@$i4-|fffʍ@6/B7 @BϞyfLsAAM`P *8JRsށ ML>>RXA@X#(ESLyHysD@͙#l*(tv΃"ss:f9sNU3Gtz(Hګslxy?j!P\杕#PR竷uvB`&!Sh|LL@$o :GDZ`m{]%H4 'jpLإ xV(vw :8siЍg8o$0+,Sb<}߾}]Wq}@T 9sBeϞ$$$|-+W-ZR :XS~HLyOyW3y'^=(X1oЃsmyTTL#R1GUN(/Dyy832}?^`R 9xz&V;Fz'SLH`$ @!<:Y@ (l!KTZ499$<=iLPP3`,n<кqgu\`[BΊ@gx'0]t4g{3H%(<\gN:8`N8vܽ~Xcw{((*̦ ^!hif $ Nfn}@,}:>:S@!VI|%M(v9 $ ³@@wj֜WO AB9s\+2Gq` fdCz;/'AiIvR|;-TWHVV!VVV0Stite} GO/SCÇO蝿:뗂sji]͠#`xE%` 2Tfp\ gľ2b>̀i3r7)8 C!wϞ=*fւ7:In-AP qLÇo8=;zB~g),h6x 6ăsUAO (MFǧ.*)ٚ *RSSہ_MM lRyB`B@B=@x+[ GD7-{@>?tX;tΝ;+E \(- ggjQeFNKA'AO.=t x%%O@A䞾P~x 4G~<&׏^) 0y2t c0Uk΂Q͚TN3GV49" 'B)ԅ$SSZSIKHUYjRRR$(UHR(؀A,( Qf5>|`˽:7?Eʾ `*VOVL LxwVH\"p倩FSG*9;`Ơ =NBȼ h<(=9L,;@N<_ MM˽h) 9`;f/o(5v>zf6 xZ7+B霬W+ 8Ю87g9 8qNUƻ TI/jRRSSRRS) I2F$ IxӁX LAZק ^"t#hhr5N9b6Z[߹qk`'Nh 9Ap 橂y+@glt( .҆O_]WdR#0Qk{G#1> iA=sVكHuuŹދϹ 9TrԿ<+_\]KJ5J1LQBBN(EHS 4IVe>~VVO`lԵAO.VPi=~\'z8[` &ή` 0amR***; @Ld3hCP TPά:0ʙu03nܣ3w.qX˝ ks+&< ,y,i_ )PmV'ՠ-*O@GWhG]yrsK/N~pGP5hKi30 S͛ABJiX$ 9AJ =`:1,|n jVLħa&wLn w7A 'h, 곦8@͞k ,mWdaL'=P*$Jj@jJ`lJq@ Z*Hx27@]'U{y:&a307j`cD!X kf X@ʆ)&N`?YJ7 >Wz|s3m` {r#A6og磬D6 i5x;XAK0Yʼn)L/W~r7@#"1ւA%f` JqH& 8PSڅ’΀iJI)&<0B3y4ʼAx B$pgґ4Y;@f` ) {ri!f3Ղ@(Zz@.Pu&x8 Ba#8Fb@;S\mgW\iQ] *GUs؃cbX4ZVjQjIk;ffwz.U3uԄθ?=dI8yAYJ(TGIJ)HpA $)5Q BB0F0R T`#@0H6%s1x  W (3D B'8 !f wCȬ(>0RWUBZuΙa&73N;it `4T$6KͳTI.U ht` 0 *o66g[ 2iPb('\`^6zc9!7dI  Y7rXhң" 22],L'= urN،yF a 9Us9~b \+sW-F@y !?^^9sB03ԷsUېh7 wpdu82SZdy o jeW͙Q8*/*xE9WC6m*BI?qh*DU UO: Jy q/o "Ƚ*steP@DH &Ca0> L'+AW8G˼Q@ @𔧟˫ϫD kYѼ@mmmCa Sh7 '>0@t”7ZyQ00 ZQ0@y``@y``@y``@y``@y``@y``@!͞9s9_y-F802P̋0!FS,‰U`6 F@!$y"Df\-!ڃ;љ8H|&*<ccvb4TK8!S4EєG_@ڐ{.9;Y@ 0uΠW'xSiҝyR 09!$41 MtuL΃""& fD@CBHS;H;r< hQ>mm0s֟8gD9s* ϹMy`"" P;* #@.[&PSb$D*@\FjTdQPIPwh ؎ҏ )o ~+DfTL1qP #Fg ˼H! R8S_EtScIR:&s@$ Єs>L@ ׶L(R;d~h 9 xsv^ \@ e^xD)2LL@) @[& A XqIy;cazxK{.E _BcHC~L Ve*nB;'ZЋ(aM)#EUp!D"Լi߸J} nFZ< f?pt,z8ξKkO97/U} W|Zj<ǼߐZIa "hzM׳(1xg:Jwcl> <fcJ.k%[WEuмYU,<4y 0jUH#i60!ȑ[BU+t$5D4ỔyW':Qʖ1V=  ž% Eu?Z4=8Xik0B0 %ԅ9$m8e8ƢR~A8}4wp.a%S^;>Γ C+`Q's7 > s\shSIP@gۼsqq}ү.Qsk9 SH ݣe(3 AiBڼcǠ;|ؙcG p2c>1gc9}(P `Na |3HA ([.E0{2q И_B& &MP闼i%wGvحr_L-*sVeO<]FD]7 B}6ĩ]j=kwӴSx*Ĉ< #|, }>Sa#f0 BGsnѳ#U:, ;irJݐ ?RZڸY%5s3abyqL䥁7Mr2τ¦B:d S,B{[/psRUR {Ђ:{r6;QӋ^o) E? 1mܡhef^,;һbȡXUP}cZez8S_ w0S y&$ 9|09cAi0hX}_^_aEUk7Uq EyXR3;k 0ple ~"liNMT[?>w[GJi4pTR!X0oj1܄TҪbs1rß# k(q+hGvGֈ\+.4raw=kib܊Yȏ敼21Fܸ#loY.>И-Էg1̚MG@`\[tACA Qۈ`6LbgZ[[Wv `Ȥ>1v*(]y|nB *Ʈal I@2"ʷXeȘ1%O5&s}i/:fj$J՗qJNGpR}QrWIJ< A $"d[ +~,D*k1jEѼ[v`C%*"mBN!eC{ޑ? `*gOWTa?+:És Tp:qhLEw@)oDU~G)ODmլW""3M+DxO,mm2νJ8G0""~<"sf?6 o@Ss"\'R8焈>~lg)BWRg}C9Fs@lyDg#؃ڠu",8miF^PwB=#O[yDW@6+@dՄιwwD & ~[&Y[t+WTlH?оpz + 4 .午v!0:x 2ϚQxg"CF#=Q*ia^gSP Rc#rPQD@( (D5 wC+@U텻߽*^;tNҡsB@ Lm}wo=jgU`2̂0A93A}}F"G !ޫ,P~\L V+2P{}9Fh (<93\Va»o"0V0 WVs.WA@23**D̨X.l3.8VPTW$|!" RTR @  POyڼY@u1K[;+KHgeAR@1މ;AjxBj-(,\ą`P@?ù2 K@*\\  ψ) QxLypp!p& FmG]2 h7 h7 h7 h7 h7 h7 < ρO u˔G˼QKy39Ǩ : ^6 &.--~6h7 ^ ig9ŒI0獖y /Z=ٙ,=>"ȝ*\!j TSAale(B=q)W9o';W9^ch:GF|{ IY36Z( DV@@XI^k )o4P 9r v( "8eIm~7\8T\Mۓ: 2o@@!R ^S@A +9sD>ȂyMЀe^*hh7 H4,rqd;iH95H$m$ ?Yj'D'mG )_B@w م`P%`6U0F˼QλfϘu|w;Ҽ}ڪ3@~d2o@@!FU@}slBC0tsQ?T$~Q_J\tQ m^`T5)݋6Z@!ʼW6 HH: W0YUՉP ҋe( Yblv3R4Jރ}A1Q1P&n־M)Y10B^ta־J:>Z|Jy 5c4RZ>IDATxtı 0El7bk&Fme] PɐwQbsk`lJAZDji;  !PV*a싼CJ@  3 ;R?@$[dţhdiaXM?XQX``E^OAEX pMQ^ $vh9;z(dɄJ2CZdLWÙDK1dJ2%"LW)# ,AD?$C+ p`J2K2RIf$Ù%Q%"J2%4 D*2qqqefl׃zˀeC]@Tf AUA5iR24U,OZfT%]L% D'zH$/pV_]V_ = @_@<`"+%T׃18́%)0 w ( N\`J3k$8YU4eV_.@K2P KFNf6 0Ox} (.C/I ,.B``$VA]=$hJ2Hi-ŀ)_)NePZ {Y6e-ca !x.&@F *RzƯdғI9kӺm?,r?jU٫2o ;2ڭ9ᖓ]ӫEP4/<cCS^G 01#ZSD qUuj[.6vIeBRGf@ LjWupq. S&)֝G22> 2NKL\ؘؔn6eQƏrJ^,)KG r:fiv3Ӡ-PyYsI-h%YV-ˢeX[mvs2 _l AA<< }Hȭۜ%KfRvyDm9tپai]Q/ ʬ1BXl]fމT/x aē)?vYIhBkp,tkl@ m3YW5&F . k?K9Q P"<&HD5@ Z yLP9:\}yL2iǤr  /]_Fv@1`.^]_62b 8F(5 Q0 h F Q@c@lh*4F@Q@{@XRYAMuuTR3 h)Ձ@u(C" :(̈́:R5IXulPBNe-5Je,ujMeF*&X :DiREI~8i<]Bps!c/p ѸQ@s@XkLeRRQARjeRFHzԝ p;j<^,rC)2ZL'F_Gl*]46GS@ž4-˪ 2X]5#RVuȝT6 p22Ԕ#f TVWMo*-):Xw62X{'P 2 FhH@}LtO"BOBhS }SGpw: X$ਏO4g**d=`w=uSNy̐I  2`0DT갦zLsJUsDcKe W Я5p zzQz:Tt!T!? PSu=4z*SŲ((Y5qKHppLfX IuTKd4ORX=0ՂYetUHAV D&JT@( ^b,U0SJ-4zhY@0aMeC`gu(M- _*K2P" 4&pCq:,L p2Ez"G+@ Pj:#=qOd`TqDG&(׃f*㐔T&2y¬ u8^Z%@ȀeY]TC+&2ed 9$1&2:2b@.N:4Ko1E80RJ@ z*$ZP2Ö@CZ% K] *Ajk'm;20,Cփ p} Md,㐬W3Av2P I f0Bѕ 8QQ xJՀb.u|/5Zؙ*Ee@f(CdV&dfR/CkmGR)$.Ǡ өQB6Gsײ(3iv}OG-cБm|z?n(Jr8@l&^zBXC+HKC6 Ye 9 e"* o -2pYelpi'e!5mLG jBY*3LYH?#c-yUPFN.Ki˲I؛ȳy]y5q.`Bړe#&$ S]ʀL#PG.S>0EjtNe4V(@#9@MDTLgjL` 3}le$qo=E龠)ZeX2Qzel.hَȀȣe0QGKe T>aMe64&2JXST *@HemG G2,8$k.Ygd&H"Ҵdfh#( %]S@daɀ?DmHdQId*e X!+fY]5z{_A)ȠR4J0[`1`aʂ+`>KҘ Ȥ50ԤH Z*dDMT@$7:g*C%P2H0S+Ǭ$(9E0mvC_4DQ̒_4C1RY2G)`]jAYXԧc* j05/1V>g-I:iivIf$ j5B_D(0S7 la]m 'jC@?@wrm]Fb:\yk:dVG[같O[e1`ilHisss{©&w#h* Ha  @\NNa`ˀBR>&h$Me#<¹!\r 5}h*MDe+G6 R˸y`T> y0 yQP@<܈$C-(Ld<@AqSicd$Xhl@SYd$0M#8&r kc  pDAI)ʼRr42^.H"PUl0A϶PPP f%( `*#K ojMopm *F( `*\M*rl@`a 1" Q= tJ(44z(=T6 hVT6 h,=vf9F@RY,&Q@u@wʁjLkF@!2KQ0 h^cX)jYQ@}@Tfgl£`Ph  l-G( h*2b Q0 h)*Q@@3 @QTTzB21IHQ0 &CL,12rˀLt4BKeq0) 0$!`V\ x* LelJq.$@eq@\ @ *J,'XIz,N 0,te$ 04D6BJ8D T+8!8a0*:ZcD8Qt8QB1ቌ5ADER8 FSF €jY Q+MfMA4Fȭ18 q@Q0 Ƅpb``_+ Le<󘣀& ezhp2uuv6 5ČQ@u@228G(: x* gd@0IT`6"Th*JTHMER+*Ti TdSԡcT.vPbTVJR #)@R,%2p*9RiR5(-1k Kif˄ܚP.2dT/S:JSMAX k*Fx*c21u RRY¬CRƄ&2D*He̚BXSFK+LLS+ \Բ1,`ا2^c*A#Zh5&&D1٤Lv!9`!]V UKelRS܂#$RZPe e58kJT  \aþ L: ĊDJe&(2D)Y|TVB,AYH00^@FeXÆŤ@M*TU|2:GinxrJJjVIJinXzD0E+c:s0gKq 3@,vט=wR6+%ckAcClbYEѧjDyِMdSVZdaX;1 Pv%)H"SĒxE(ӎ4:ԋqDJfRD()]I ,E#M{hzY }vԡ[QDeKVyC(aµ (#ySRSyX+{LחՂ#(qqrG;U+ySR+U /`tE6Q p2P#- :EFKKJ72%PQFGG:8F$tDh`Ӭұ1?U2*AKGS1 p'3iLd4օdT(*͝& L:$+( 6_Y7hmH   *EAs rpŒx !7ZFgATBt]Cym{h*# |r9pv4C-DUW VTJ:uQXnt%B1]*Cԍֆ½ ~7 GW >&XBʡPFSQ =Q䃬 UG9uF-Z7RhmH  !T2꒒DH*J`3 iȵ :JʲQ 8AMMH0 @a\NJS4q)dJePa50Tth,!<>d6`*`2 T& /gM6I,22RӒRTm kIJz*CYNY|<s&5T&@hL[t3&TMdHKe R$,, JSTɅʀ)4M6i KZiHeȥRq"P8m,#2BKeZ L s@qXȀFؑ$JK Vcr2 .մRYq/;RTdQcS@a1}e0 Me@IR*ST䴶TP '.FFM)< gYVOT*C]ATQ&,Rcz*Vbi-, eCSY0 p.˕H>M-_MM ph’(2TFl$TR@a]>@lm ,lP*>)$@"8G>`"c&*a*ǬCcHٴ}LZ2BOe֖t, 2pYkNnMP*LZ \=BkL.k`E2F I5&0 Cj4>Z:Ne@M}np!ˀ-3S-,,p\XP-HKe?@a˴ C!@ @lM-hD) dHA`sh5&h FѲlXeD&X*#SNфDL RRYI^,!C!e$ʆGX0"PmbA[ؕ?11,V2! eY( @S {6R'nQ KV|~Y XQi| WXa<ַ0QSG 1٭h9V6[ bLLOex"ps!7p"f`Kee(  jA-.vQՎ"@ rSb}Q b@ TR l*-4(kLԻARـ^2Zhp26ehlh5f]T6Z -@tMe8+;ʲ Zc]cB˲A?Ide@ T6x)(FS =k:e5a\ JA 8L&!G 2MPxTЄC@9 Yc5S??-[*?WobBTXG S\*DԍЄ!2S@} T7~qH*CZZטulX0FEXJDK0+Oꦲ:qT6,@QXc*:&2$p9D]>aNܣ,@Zae۪([`X/&:f#Jlwp4 J@֘ aaa *Uj:"kL}~ `V5rzCNh*b (Le‘RܞbbuIJe^K\*#qJMeddf` *0V1)ǬF\"T6@Q"XYS%l - )1A+Ml ^֘#|Qbb|bTŕI~L7`"ssSWg#ƄT6@Q6RSٸ(+,[LTINe5`DaP&%,!(.b(psա#* SwFjpbW*o*F񣲈Fok1V.@og荦2@Q:)ffk-Y5:9 0@Q>*))U*~V1P*cD'eCh*Me4lA h42 5&B0kͨl4hTGd*ó h4  jL>p4 a@$2z2YSTFSY 1U}}=řh^cPRr2c0Med">1G)T-S z0ס/MC~JM2@_cԛ*Ӥx"kjL}i~`:s8TV7)I4|UkI *Eәj뿮˲s`@_c(SY$DVMDї3Bv2@aeYbb--S$(ʢg#ǤTF j*q`"+2&^^]5rwh*  RYS`;0}2..2IH" \l43XSo"0 s1PĬ1 5 ,@ĵ 휜UTġ7X ˲T6D@9`g.Ld*P,@P'2T6<@;^oJbr HsE,s2*`sepLTNTUMdZ9 LgFbTVݮB ܋th* bU##yA;{#h 82 O2udt^GSY HXS_U@66+`{Qp':4Ie4G\|yt 2G21'&/0eɄE5&h*# PJe(0% ޕ>y_V[bTF@CB+//õ5AVO,MeT4TǬ'+aD7 h\TTFO@$2>MeuhPeQoD_|4bKzn4Q )7:4@ʠ;倩M eh* NT6@mRrlN*\MeC) }YˈۏSn4 y@)Gy;FSPD\*K)GT)7ʆ< #]Sn4 y@D2;h.C)W|x>Ҁh* SelF:܉3ʨ?֝rKe(;PBZFFS@s5&N9GѳMed"z N9Qw<o?@ rShl"e#N9/.,}]p;R9Z b@CT64@ ݛ ZS2@ޏ9hhTF{@l4){trנyT&^__9T[[ET;Ih*x@ObZYux$#P{h*- SN9`R,WuF% 0Q-ECz*C$^C}Bj4 4 wʩFEXJDK0PƬCT6S)s̐N=1 ) }():&Nf8RQR3s3EIeCs4 @VQ V񬏥:X"h2SYTFS=@ҫ0wʁn SeTN*C1MeKDNXH)nZ1: Έ^ n3E#2,/|u$nt$c@pf` *0VKeud21Quh}zTFTF wEZG28&J2&J)'&*+sZDGMe3LCq2;|Qbb|bTŕI]LXR(ar |Qbb?Xr*27+1FSٰDxr@aGZHn6)a qF 6`I[]VO\*cf6fk*8DN9T)D)koq TDGU\2h&ffS`ڣ,@$/)掬<&,Eי.0DNZVUV*rhb2t9,BRÄzʲ]p련Μp*3'>F2+!ɠ`G*mh2sTa5He94B!i0L+D6Med;͑ <1ףrazsd%H< ݄zDD3e9s &ta4hYF>!.G.k2ZwIv*-DB*vY9D+a^ Ѳ ()Gv" KeexexSYhYF-@ħ2N9`jgy*)g]A;>&(c2daѲ* ()GNy%h;hʐl(`4r:ܛ0RNG 2@wʑpo0HeN9T0ʈDN9RýY3!)7"H@ĥ*̝rd\*AJ*)7Wdsrr $9kQrˈ1Q#n@S8iAMf Je8v4)nZx*Me@QSF5&ri2NNBs?֝rKew!NY) zF F wѦĸSH \,q"z N9ʢ)0<2ZcBƄv.G8@QSv+PC=3~`2`2:9p"!픣2;[*C9ѭqh lr:! Ѫ7!pST(j rEHerFS@2R2r@\H]_F;MA5( FS(=AYc"chp2ṛl8|5&ʝṛl8c*}?J*CS{*5ÉG`,%_Y|e%N9`=Qp%N"pW3,@-աх'!)7 h*#1kaŸ8!ℭSŲu Ak@3$'Bi?I(.D9q K9jl]CS<"S])G :drDn*CI  {*ª5ibCel44hЦ2ȝrXS'Tʰm]#&!JelGUk:Ut5&N9`Gw3gYV—8I*˰(ivnʠwʅaDPDjI]crbK~سÈj 1718 h):>*f'Gn'ȩuw481,z0T@rN9e#a@ Ttܰ^3bEhtNL IENDB`xims-1.0/documentation/users/howtos/images/xims_anondiscussionforum_howto_step2.png0000644000000000000000000001433007776633450030067 0ustar rootrootPNG  IHDRg@Nu gAMA7tEXtSoftwareAdobe ImageReadyqe<!PLTEޱ8S@@@3338=IDATxb``xb`xM؃e(aZ:E"@Ѵ=\6@IpI`M  9.l/.Cá.HD[øv#!x(h4mHtE\MB&.<شEIi F$83rlȧm.b10iF@ipD^sq!m.d9xFI\h SHZ1$MW2\h\ص`z٥ޅg $u8IX%hhhMԲEѹBP~$96nRA_.T\ (.v|C΅EkЬM@i`Fu.ʅ֖՗ƀ+mcP+^L X6!44K4&! [rv\MŅщ4A p!9 }OFq4R#'XfmM$m2 Knvr@ pF44K4&!f p+6:Imf;fZđ|AB{GpF@i 6Eh0[2ʂ9RcjƦ ra08`w8xF@m9:@i{4m״ @m5u+@Q0\@IFp4Gp4&h((hhhhhhhhhh$mC'!B`D@UqpP$( )UA.zrfr*9蠛<=4t?i$m\"46ᤍ+,88G0K98 o@YjK-:Eu1` VH(BpAlV#]{ :\vw?qn[5 Ǵކ&Q<DqbՄB-bɵ8݅Ɂx 'x9F tm,@ =0gD)&s bx*R:Tb$:Ւ~bΉ;G6q6Zhᴍ腒[6H N mr^GUObFqh&>m# "9((oe&mN\ #p?6h&F 0"&m.,;,K$x\AȫM2mBARp`1ZH;8 q4 {1ɁM@6ϫsbci7N@ 1xAh4m =ZQRqv40 ht( F( F( F( F( F( F( F( F( F( F( F( F( F( F( F( F( F( F( F( F( F( F( F( F( F( 虶GQ`4UR]6( m*b *3Ѵ=@N h Fh P6:! N`DR,$%&Ѵ=,@mHO1_'q\}6 Q@ \i!5mmhMd—mHpƇI`R0\X90J Z. -%mF'm3Ъ܆DKS. \9ÁژbmDd4q{fi0H\6V.idpmѴM. x>(DoNIK\Hm6 ,u6r[hmѴM6 :Ϲs_nrh;UmA Q@*A98p598O6mmJ@{Z(,͢e0FO0BD2=mäPC5wil@hM1Ls ⴍG6y FѴ=\@Ae4iShtO螲 ht/( F( F( F( F( F( FGpѹQ0\8mCWWpr@8UMai,@rMۣ`8mMۣ`mBI 4}sp A: ^GpLa6Mova S&l$3hmLѴMӵC •9h(a$%h~P;' `)-ΟB9cFJi&tRFJ\X6xϟB?cFhg\$Y@ޥq 󧰦mt8F= 06IIHQrhp$?1IHC+IH.:~(iMCI۬hi mEn3t⻜l`\c 7!Rv"Kc$"d<>MCfe&nD 6-b Y.{J..Np@ՒH۸q&&䡖YYa?mc YX]΋2.ix@Hz"%mi&MCh,\nHi (HXA,6"=Zns kQm̂Eo'PO)m.܄<ۘ$D\vM.r`q`-ΉhP98p,*8Iۘ IHJt ym"0N㰥mk^."eĕ8nFrKuqp JU8 .Bc:߄1$X6@ιQ@AfE @i{4mu`i Fh6mMۣ`%nXѴ= k @i{ r F(6@Q0\mMۣ`4Gp-h4mZnhõѴ= k @i{ r F(6@Q0\mMۣ`4Gp-h4mZnhõѴ= k @i{ r F(6@Q0\mMۣ`4Gp-h4mZnhõѴ= k @i{ r F(6@Q0\mMۣ`4Gp-h4mZnhõѴ= k @i{ r F(6@Q0\mMۣ`4Gp-h4mZnhõѴ= k @i{ r F(6@Q0\mMۣ`4Gp-h4mZnhõѴ= |Fl @i{ b6@Q0 $Hh4mᚶh4mᚶh4mᚶh4mᐶY!%mhâ'mx "mhãMMHi F(&mHFJ4GpKr%h4mᒶIh4mᚶh4mᚶh4m!YQŎѴ=@!6,0 Mۣi{0mD)"MC6m : `i%mÓ3FNHYa4m MC,q4mR+R_m/-JۣmY-m uЄ!M#'mp @s7iijm96@1Pw{4m۴\x @i{ ״ @6-h}!ht(6@Q@+9h4mᚶh4miefS6 2 < +Ѵ= +Ѵ= +Ѵ= + h( `ih,H[ yz|򊋌=>>Xv蹽@bzԏCD|U[`yzī 8S8R.`:~11~Pb%2de`I F( X! XOcph4a?P#$A()3IVxф5 WH|d! DC:MXڂqw SLRANY@9`= @ kbKBS$eMXo )*D"YPV@r64Fq|3PvYM64F +T!,g*Xh4a<)f~2 EjehxkB~\EdlfB~MX7Kb68 3YV 3@@&Q/a7V>X F(Xq1"-C$,Hф5 WK, $ @ kIXbX!Rq-  F( W!ф5 V`M@0YJrh4a<yAfw@6( (4F`l0BpXZ 9MX" 9a2Ԅ ф5 Y( lth,~,+lV 4h$, ĊQ5<4Fl!!e#!;q]D]: a4FAeb ೌX@۞e \V0WV v* +hIʆH6M@x3D#qU$8ar# w2n@A@1HM[0ECq4Fh"BlC"L@ ky11p"O=Xmp,b`# @++Ʌi GR t8S@10y8K^) F~z Axأi( ֘WO}8y8L6sZxp|EHV.eRA!ݖAцv ,YAg% zEYJ¯7E=)%ϟ }K/Si<A6,@j]Ŧ6<D#26@Ȟ\q~)i?W 5qf=Zg=~I_{5_Y/cA bZ'@!SD[Muҭ[/rcw`ܖy8˟W['`{s\6tPV= :˺M;XisZ`E0Zt~ІC&  rHJG_!!tuIӚ7XqKjbG-%e CvŴ2* PZucv[!xcCfѝaNSm29D9jU D)6?H}DA8+x,gƚ`kŸ;w`5C.9|Iޤ4" FH)< Md&8~ kIv˩\:y벯:~ A'z 0 P!hd+nBf$)|ZSnIH{:W3Hm~ZXҿD|ȰRkfwB_wߑ0|` NvHyE@dW< SI8ԅ}*Q7:xJUKI ØƜ;dgW= ! m]nraCr˚xJn. yL(0rA~ubfF=0+;* TZmUjE0ڕvQCcA 7E4Xaas m  I{_z &օ #`l1Ф@dIT,|U@1 ęohP xFt%O@ `d~1ZԄ65 F6M @ v`(4> F @1Q@@mQ@@ `hk(4444Zbmcmcy4444ahk(``Vr0(o @1X em@m V n;bXP²mffob143J²ѪpWBll|l@G%dcNU@ ƣ`8`2&fP|sI rFe @ })aqpٱY@NSNc%-$,+}+@@Q.*,b' xظ9le>i>fnj%,vb@83<#vBv|lvlvZ҂b c KX@ !n'/-- LXLrf;>;H&9};*&, րyw>f`Aɇ %aQ1aY (ƀ٠ ',%GՄ @X~ DAgqh>N;ȡk\"HN  G06>h&P<2lK;.`ӞZ%2@7ht)#@^:U!'@}h_rHihh HQ0Y hk4ر(@w`smcb` Fcb FX& F͌MX& FQ@@Q@@ & FHGM@FM@1莂Q@@fFM@n4444:5 hhQ@@%( 6( khk& FX& F44444444ZMX& FQ@@ khU8 hhttQ@@ `(44FM@&Q@@ kh44FM@&Q@@ kh44FM@&Q@@ kh44FM@&Q@@ kh44FM@&Q@@ kh44FM@&Q@@ kh44FM@&Q@@ kh44FM@ =z"Հ.&@ e.0 886h%,;VQ@-g> @)aڌfŁNX4FM@ )a2%`Bp!l xBM-8`MXx@ , Hcd1%XmŖ_,ď%e1jkk!A[~%)_YҖUd$$ì Ḷ AĀeVM23S-++fbccزJ0cU3IUV̜h;+ YWVD̔y4a+caQ/`cga; $v:D-%D0R% MXBM1:'}Qdjs`ƹ2," Sȇb`݂/f.ȭB &ddi݋^jOz1 $L5 fu( H/BT]KVh1+84j9)x <Uwͪ6#D[Δٜp)bZH%WԓS+e0AM,,kcno(:> ,6>  ӪcGNXk-d/X^늀BpSkpRNuo ."?%}ٛwu8HWLBgow%YMG<4aBXF-*T%,mH Gme Um4Yh-Pl Ed d>13|xV6@e0Hٔ\Eڰj ՃYm1%@ ªLX6vv̔&,P¥0a1A2ɪD@1 RbfV1 9a8H²žZbe 563K!) u ax Sk[|`@`VoҿBq!Kց*YjI7Xhfce?DްXښ̉⾈7, a`\6O%Ō7] .&aJX۠c~f 80 s~фE@mٌ000ۊ'Oq&fEivcMXt4HAU0t hL>oP!uWY2#̰E, . f0B*zؙXUXdtH /b3\7;>J V΃Hi.s5 USn4Xcӕ,0?hJD&̬ $ˠ$Zp' bvz\ճ ۊ)0 KHrII6h&,Sf=%6611f1YI[.3.]/!/ L[ XS0DX4 b5&Yٴm8>aMXzJPIX@*&,e- @aIJ{PRWO&,m,в~~EP$ +%/V~~a1F_NX ̰e6 . aVF $eZ efccegcV@ MX ll2   8V{22q,fVV[1mfEV[VEn &$`z Bett¶622vl64a  ym+oe.P ̳I„mmlla:Єm@:Z@`фE'@lD@`l"q ,0 I0Dh¢CAFM@&фE@5Q@%0 F44FM@&Q@@ kh44FM@&Q@@ kh44FM@&Q@@ kh44FM@&Q@@ kh44FM@&Q@@ kh44FM@&Q@@ kh44FM@ LJ0@IAz }A!B KXBBha=xEEŁ^T2eq!*3qv1*.jk,VǭPevq^eqqh"3Y هn͸ظD9BZ+J0bc88&I3q>ÎMZccfbj2ZgE'xup u;  XXh-Z`01 لYga(Ś@!sxC!^:?`rC%,E}a]HI'tD`?3P@Mu+bz#r1D"b/>k븴 ,P2F!mrB# % ik3gV uTC<Ͼ>PWƺ @p m|R2$f[`}u,eפ-M'T =db,7J JQMp 3thuoej{ yppp֠ct^rroRY$ ^ʓT`m|-4ۍ⮘=5[jeaQfup!TWi g9o@\Z|("-HRRwʀ._Ssdb x\" &ydr*^׫8/j 2Y_ڣ2!24tΣA{h39@ig64(-Puj@m0Ah.RsPŃ_uޗI63? Sc}(#O3g^!XN4k`ƢxT{Y`5 0k*d$dKhuO7V Zޢm4]/I$|nPXU{\Ihk`T΢k^P_F) 6%q2(AVծt7^_0+ТB ,H5gq^$\ `JT+vX)58!(W͢VQW,Q;CeY8D1G[P=ʢ`٧G=B'vz @}ATҖ<z,t:ոXuUE};~ 1f"sK¥` 6H>c,xtq,˽e`لӧcAE{H4Q}e $n`a]Ri ;伕z`n+m| `tw;VaR>)pBWc C>yk`IJ>xߘW]&՟F2|\^Ot;&}Jձ`\~vn#'>-}$"nx}ʻw,V ,Hoo21X@u,8RȮt9V+;>HVA,K[2+z @0 @J#6A E N9I q2>_?4y:(KUx X.h6[a%3ˤ(wfpA/ ΀$'$8G?G# φbm/* 8މa 8NР\+Dõm=uRz @@lB31${j* y2~dJPē-Fy 6T#vz,2yh_3zcX4 `rA&e\s9?La+|xt^NAK_P%GhZ\'VX U KMJOn<d4~6 FZ\sNii4h4pi +ф5 hh4aMX& F( ф5 hh4aMX& [ecccQ֕fm.ccq0ˁ77pqCqB@bBl 5Bsq"9XPͥ s\v숩`33{;fl;5٤IN]_8q !\;Bs f0!]<#UP;Alo3a?H?Rv`y-o+ZfeK6ioU Tol{CZ=b?8PƓ1"< qQL•VOX:h> G @gjy3X 02ˤa~<,b& }I1Ϝ򿛘Cg8Ht|5:.{} 3'? nKð'gBk#x݁tiQ~:>:ak g2YWtCQ8S;G% :/eg~dՖ=&QҨ OaII Q+Uj ~] ^F,.#Fg҄/Œ2KArhV0R Vq=!.F"W* dXDσ΅N"xUiL^/ậo~9/o(i- ,ıkI9 ]+G~ Ҭ (|Hu| 0 @6A5S:/0;YHç|FqY Y4Lھ,j!"nPD/v,aAc$,XZSp2x28$,. >aԄe>h@`B= ~_ R X߈S%`]* ,5,r.*Lڰ-XyeM p,XՂ5 eV7+ivS=e Qa+NP3wp|X9cA*H(R 2wݑTv XpƆ<8V,sn3Þ^*(e,W׺~J,OUp nxJ̷M#:Jd&1VUaA!"'}և~ˍSHB2P'ԑ#߇-:[_ /u[}(?0oJ t)='d_h!HrɟrK]Kwp} .9킚Cy^3z)36fډdWV+ëW\:J썉Ă18Ÿ^z 6*>E>WW(m|`:ʍ p}E]X pь obaTHQ/0Ɛ? I''q@"λva;el*2į/L0^/8||!9"=SJK=u#Iqϻp>]d^0 l=x%PuW-F\.<'ʄ<'ꤹB#n FVVȉHKΊW БhnEik;NQ@u@ >%`@F4؆Qxܼ,DtyG#s0\ ˜yg' 4 dA)3Z *@*a=S <5=mn]H/ԏnЅ +@C^<!u9F`ۚ Uf-ecrsWX ؘ (-:I͎SN^NNO>v|llʜ|k ZM SǦ; s*0 "dpv0'881rS*>F)M$:^A֢2gK,O\]X&5_;x "1=| @effL(̰];>.Nd/x—O$Z,+Ǭ,X$3/O12u9Ey98ʠQ@]@o=#<]^5g Aġ$,{qXݩ ^ ^lƢllt(4d%fhɫf%a[2ʁB^NeKN>p5Qfb4MX4d't7b:eHB-C ScM T4</lӂ!C9&X㵥uAG屙Wf6.+ylIt8"&jl缛6Cqx99yu9F8LT+7x9Aw%S氓J sa6@AHtE]@Cn+h%,.yh \5]0@63 hh4aMX& F( ф5 hh%,+n 'KJS/x(>(2ENw؇3@% L ۽I1|\ F^S&0övpQ`HX40@)aoHHX4 4xjFT> 2Paa>b09\LjHX40h<, K$b&7@LA\|\*P@rP&,7a1ahAGXx9A40<(*pfcccŗ9xyx@% 43xq&HA6In%, K@ y9OO^CZZXbIKs1IXV9<<\ ᑖhd', aq6nw8/ KXXXP4^NXi%, c` K&>a1w"goq FzU&,WHd4ظFb F$AK r&*avj'Wbh‚Ta :ABDBbtK*S״pĕX4G#+x0X`cR#б.aȈldadSFDѹIhMX & Fh¢ _'r#!a\Lju>x¢Ę4 F\2`;A7SpRdL@#.ao#/`)Q@@ kh44FM@&Q@@ kh44FM@&Q@@ kh44FM@&Q@@ kȂ[ޥNIENDB`xims-1.0/documentation/users/howtos/images/xims_axpres_howto_step1.png0000644000000000000000000002033507776633450025262 0ustar rootrootPNG  IHDRXHpgAMA7tEXtSoftwareAdobe ImageReadyqe<PLTE熉{{}PQS١VWäfgi՗²f~͐ɿst튍suv_acklmXZ[½889FFHnpq}IDATxb F(:ф5 hh4a$,MX& QE ́l  _0Ɂ7&]MW@S.UV&6[^QN(,pT-<7dGpGTҊ !%FFAePr+JO2)lL,QF3,W+ PlBۼ!,2(oZNEHbJ#.9nKT@?ӴC)6 -™k >Qa՞p1 /1G@ |i^srmNFa"LI]/&"ŚΖ@კcvvZؿtMQIgHQX=j_#O9$WNxmd͖CF]cEvn@Bs5=:CQ)pH/bQ^Cm"Eme0 s 6X8/6rc|_fq^^:~|?1*QpG.Khɰ {-e1D*u4DDٲh &VMAe{6L-Xw֜(Uň\nC`ߛU9"6pӝZ"rms Ѻ⨲ .!OKlP#RG;φ>:o\ Vh^E,.K†ޤ$-:o`G]k~?S5kyGDIApB GƲUmjl:^8 PZC %Fr,h $ Bj',7&(D!vM|KBF-q`·*4BA0'1I赮 4$`(7XAM[\܅c+WS:]+Iw@ 19_`eYnrF`H Ī~<'`/j m.bYH-w ޻13o'0j^D#-,Z | X x]˕um_ifZ/n~a,e0쮯卨l.LXetuaաBrf)ҔwM{QC;Vy0!XI%f%siL񘄄W1䤞_-+@p5AM@d%zPd`65{[]KY㬭hP O[+7ZqEkAD∆x`)4깗pꔸֹM6&=Pmnf %ATq~sdQ)7ߪ P /"d2S RfYĹ\l{#_lBU VQ48ڈ\5y=9 `׊QA`e)tGztнH A%QFbc̟bm6-M*>-3RP ލl3/Em#'tƸ<1cr? *ɱ{UB)TP3y ёQ@S<@ kP;i5MX&1@&Q@@ k$ah4IX4FM@&Q@@ k$ah4IX4FM@&Q@@ k$ah4IX4FM@Q%aE0h6BnmȁmeMXm.miNJs[57䙖 yXx=7?,hk#7xo)fHi=7I CRҎCEӔ\SVGRܜBN\VRe0(aAO MOXNX쒚,m<**@,.7 K_Rf`2e`UÈY #8WBiJ,yF9єE@)LRZܲ<<e@, J ̄Mml,M홵5lE-8fDXY5,E%\bq2) Iɍ+Mv}M-KYM26=8=+'=/ 6n;v9zY5DZd줸9Gv Kb4+W( Vnd_ @TYe: @t<0PXGrgnѥ7#̸uFd&,b`bee649eFwF@1p0*bqh q@S$,b6Qb4ac5To8SR3SV=lXbq  i?@ˎ_PM˄HJ\D; #h(@1ps*ۉيڙȘ* <h5 JXni ogǮi#=M]I_PX( =a7 #n; P4S-$'$FhÎ p3rCXv|,܂(ң`<8#7@1 g!`,}F %S{Q0DZ3@ J>0cPfkh4a >@&!Uф5 (h4a 66ochj%S8@&+4 F֐J8@&!$As#Nyф5J,(0#4V‚01@ k4a$ahMX4IX4FM@&фE@ k4a$ahMX4IX4FM@&фE@ k4a$ahMX4IX4FM@&фE@ k4a$ahMX4IX4FM@&фE@ k4a$ahMX4IX4FM@&фE@ k4a$ahMX4IX4FM@&фE@ k4a$ahMX4IX4FM@&фE@ k4a$ahMX4IX4FM@&фE@ k4a$ahMX4IX4FM@&фE@ k4a$ahMX4IX4FM@&фE@ k4a$ahMX4IX4FM@&{ф5Zb$ahMX4IX4FM@&фE@ k4a$ahMX4IX4FM@&фE@ k4a$ahMX4IX4FM@&фE@ k4a$ahMX4IX4FM@&фE@ k4a$ahMX4IX4FM@&фE@ k4a$ahMX4IX4FM@&фE@ k4a$ahMX4IX4FM@&фE@ k4a$ahMX4IX4FM@&фE@ k4a$ahMX4IX4FM@&фE@ k4a$ahMX4IX4FM@&фE@ k4a$ahMX4IX4FM@&фE@ k4a$ahMX4IX4FM@&фE@ k4a$ahMX4IX4FM@&фE@ k4a$ahMX4IX4FM@&фE@ k4a$ahMX4IX4FM@&фE@ k4a$ahMX4IX4FM@&фE@ k4a$ahMX4IX4FM@&фE@ k4a$ahMX4IX4FM@&фE@ k4a$ahMX4IX4FM@&фE@ k4a$ahMX4IX4FM@&фE@ k&,Ah4a NW>ahZ KG tLyф5',skh4a )`Ơl=K,MXC,ai𚛚3 FPKXl>ahjU)/h4a 6OX4ZU3@&5ai6W@ Jb\`ak YF`*1@1p! u nQ0 : Kh@h%,b9p$/nblYF$Q7# ֔-MDM!h/= @Uy4MA@1p3qsps!عe A̐`6P!0Gx `Pbcg7dccc1b70`gTMX$,ynA)nyXm9lL9LeL F ]PIDNNQfD,nb`fcbR6`352b21в2g-HJXrJ2r2#2 `eǯȤ/!c"Ůd o'( e"cd(c=NXRrvrr# @ ڠ^ <"76 фdYdعGx 8;?7; ;ggg3GI KG^CN~$ׅyb#'3.yJ,6P{|v"J#:a 9G)q+q i+^!@Q!aq i3`CedUV7.YBhX& F(I `Ocipxܣip[]L:@.lXDEGS( 6a7>6#;H0-c,,Jඹh"@1pٲi)qp0r*q2p ɘHqZ )!9!en)9~9"kI@SQDD^LDHɆCLHDOQ Rb)qsIq( .a 7 Wb%,9nф5 NXĠͦoddg&e")lXY)phD',bc5Rf4dWcfgշ)JЎ[QNh5 LXاc@(vE[X $Pl0JDty.,g}AH0QR` ^/D"ԍZة35=xmgf%!!a%-<؏ф5 )@&!@ @ kXbz?ahb KCɖw',MXC-a11 )h4a POCAc@ kXCW@ kh%,&#[00 F֐̠̂iffA>@ @ kh5 V3 F֐[yф5hh4a&,$,MX & Fh¢Iф5hh4a&,$,MX & Fh¢Iф5hh4a&,$,MX & Fh¢Iф5hh4a&,$,MX & Fh¢Iф5hh4a&,$,MX & Fh¢Iф5hh4a&,$,MX & Fh¢Iф5hh4a&,$,MXC3a)@ kh P F֐f:Kf',MXC+a10 3Hh4a >]Oo',MXC,ai J 23Hh4a e6BMXC*g`U!@&RgqhjU:@ kHic> ͙GPR6P :@1(^; ƹ_ g [C%R`&,b`lGh]LOF ;MX@ |2222@y4a2@A-'' <1(+0ˏ&Q@f Pⓑg4і">#ф5 OX) M89L hd&,Xebb (h``-&e-`b#?Zb@Ab|,&bJ"6JL|6"Jl%( ?a3aTQGKQ@v p0y Ǵ@,k0G`X k\J b#܄@ GKQ@^ e1ptu( 3a77E?A4 JX0Z$Z$,MX& F(Iф5 hh4a$,MX& F(I Q0 8 hPsIENDB`xims-1.0/documentation/users/howtos/images/xims_axpres_whatis.png0000644000000000000000000020572507776633450024315 0ustar rootrootPNG  IHDRX}1gAMA7tEXtSoftwareAdobe ImageReadyqe<PLTEQPO滺ͨ򬪨 1/wuvjiiEљ낁񰮫_p¶릣|~_^_諶rqqnlmcaaꏏ{{zXXX\\]rtqAAAB@B667΄pnN3 IDATxbPt]b@`](3 +`- *e-*/_(-5 FX+4,Zc_BJX`"-P_ebgT? FhiJZ6"a'H', B$,pqWebnna<)(A$A9b)K܂Q P’璮fspp@BT%u`VXi)z)5d{Ԭ]=ѝP_ $etX5Š*: vW9RAL`L}}VUck6G8 wgӪҬR%--$-KXlLjBnT-S> Ag(-B@VC{%"ezh (H&4;Й̓0X^24p.y2X/ +Q&dIh;\%'^YgLQB,H] &2l2cD27VZ_7x<1h6kQUX!m4Pgk[ta(1F}gB%H[pSɢtn1IC@D_@?Muum¨"kQ\`gojԱX%lN,$ ?uh﫯`Gg+B:~swނuN^,^>&;$B\)b Iv_`=&XP:# Of`=M+24k)q٠,:Oɼ>EXާ/6űn9Aih_хKċʥ}3:x^ #;(4ǜ61CUgo@L//+ꧣM>`~F6# \o;VŽm,9[v̘a¨P!/M[Rk5N6y ;x_݋pxo8X_W3Z bAX粺d,4r~^]`-ʼn$춯aaHU)}8ϥ`YcnbJ@}y|KF‰_Ѫ]ca%C(X@cH8ڼ̲UYM;:),I_)70 1Vl \vKq氵b@znux |uۛyx1很o9U훰=,> ` }=kTUGNI_u1M4r*tty]XarD$:$Pf8G`V'#X`w |/qc`Ѥ0 -Σ}X˿`!ՇUesw'z{׺R0ٜHWxptu&3e>Xpg PE^AcK mu t`Ш !HUl5qႮ=|BX3Y74 l :) XGwuXҔ)Jwց%+[ )3ТFCqP%mj&`}IJE`n lr >Sq6bZ8s2׿=ktx{|D(Eb?͒Z/MJ `:+|4~5u}H`4糫e]7[Wm( Y ,{WCctZ^&#${tDaZ@MEΪ XRO&ď%Ff|H(jH F1D*fZ0} `-}2~ղ1@b5(VcY%1|zQ:M/,&c ՖhP*nD&Tzu &ux}&::}롞;rTtD\B Xpg7+Af>.^Jp'-`Bt?|P[\:)B`''"V/XV1,:p[VL3@HeSF aapa^>/+ D -OT+,ȈD1 "H iK8tARh,LZi$$aB{b|̠@8k766lfpe)$ʨÉHX@1k\NqZ*+JQbWJi*0x>9 nCI`{yBKAذ4P<0P-#nFZ<HK,)wh4 :akqnh\xUX3ǁ@iQ OX4V[:-m5LX-pbt h#‚<2ȝ!7)qM@8tQX# YS _MAts]µ%8' 6@1{Z>AAU$+fFZBQM,j9xD]t+<-9C >͈fƇE ؂<[ӖH@Bz<=84oPC,s.0,EwV80HXk-< % D&A 9Y %v',%jK̫gDaBaA؏4ib( hu0f ٞµ`@@AZZZ RKSFZ Cۨ(pZi`C<&ZXPq,l5- u"\hd  ,Ӈa IA::hP p0IYׁ( MAq7:B k@AK,-h-k`ʯ%,i+.U\bV>4T8C4]a%6PJbcG&,Xb|8x84<Ī GJ K,[ iiQi^$t*pD/%- .jW뤪Bq6f0me[o n eM',D[5z~XbWe[o/rЖIMXVM:Zu^3sU+$e B'(:!_±UUjҒL1//JSնyIux%10;+gʷeժg%,Px1p-C8Z 68ф5 m,0c )fp0A(* Vq:r%n_((r`LVt鵉HB$l*DRړ.\WUcBcmb ]㒘AJU%!BzkW\AHUX*)MX a)Pu+P/_5Є@R $`$pC-x`U8rVTI gFtj8 a%'sAAҘ'ZP3X WX\.?԰#v6%+ @Sa6N W[p>kx$<)gW8 `%D4aQ%aAvz #o)Sւ]QMIKwZ;H 4}I:DȺ+iPocպ幹A K 7`BbMX]=%txJEp^!I7PUjCv˓*ZEp>kLjʮB BՐDqs(n D e95(eT7wWL{Wr%LXMXqX-[xG|s4%꼰 `ﱒMf QDHJX$A Q5(F!Q5X7Ukx"@@%p2#/ ^F$\ Ͽ>KJ^ѭ^K-Lͺ>S+LHQ"5 C^J[H^1 5d49S룭 A eeeԊIXJ,jh$!T1nl&q''D@`hgRp&,%@A{unXghAdC0aEjճŸ勅{yiZhUVyq$*fuUbVVbU:^?ux6s]DPaxXaVPq~8UJ, !Xՠff]OX򮌮H  UMKǵK!ss]eb 85Ù%cbs|! K$, ,تí|IUn9"TicQ^c.F4Pl%{ 'ykWFy@p *6@[ψ5aq*"U']')* LX|jjy:ѠZIX2|LX|lj|bU%LX|D* LX9`Ti! jpQ58(u jp 4Q5v:,!kIW֮d%LdXbSb#uU&MJ -aYqsH 谱yhV i1y3KD뾰\8:m8fz:P󋩷,+(PsUd/*RE8fLk#ZF)QDR`7zi RԠfW f)"|]@FHw|%Q%@F޳ qcBhNO[O[f1hHA2*^VW/Šڐx6W UX WLn (h]UYlqjtA\Ix4`h ,@AJ `k޹q$,F!-W#8|t7H(ܨm ]>b``ҒNH |$W%B;@y;`rօ|p`wV4TPA!aAj#QȉBdDE}|}BP;˗v 7.8@7^姈+a"l@#kJɤև XUs H'ƩyJѵ#@0`Z&0Di\ /fԑSl-qscO^HLd,J͗Q^T Y3ZR\%UJtM¹ W*;+<:1|Rхuj鮞V1tP# D`FKbFaI#0]{ MX TvX@dmꊿWXvS m,iOEq"XyUa}X>8aI O`NX`XWz KW% 5h{$f)4Qn^ՠ $tŚn9(%J&tr 6}TkXUJrM/ -cS%Hn’%,71FEƘ?z>ƸpFEOW>: \%+!GΫ1RnKzƍQ!7,r`S4\\q#ra B X1P>PMMBZ_HpԲO*+)yKĈyYb8\b]T80UY^B`cӅ(PRa,͍Zld5`v #@U x X^q R#+DJXmcsqƂ *A3WnWPCǨAm7ưA\MaAbK\]@ɗ9 2( m, D Sӫd9)N>7@0xKӄ,Et+ľ9sfӏ>a4ɂ6WÍ2Y6DPjP 95R@%z)Uȁؚr'@}b឵Dn@n(/׉֪תOb+qMRbf IV6X5zM|zWz~0 zz0b*X55xA /x4߬,0ⶆǥHԮ A 4 jU +\KD|"|KB@*5OG&&5Z˧ Q!߇#V'???(F*Fۺ?*,=)I+)J-?ߺQO+>Z"_*%7#nI_&.7,.Ɯ(ƈ:(7]:nZV,Ehş5|;6VRU@(. zMN^R|XX`Jr&"z+h!Rh`Xři +pzB6SGp{80`i a4L&T87nS^+tpFx{t3 m,bcfn!LWOXSբub}A)DӁ8]s@)A)@)ldr t@[z3WXS9:{HKKePuB)V#%77,%+%uxx*"i(+;;"{P  q,̄%%եyKYiGi''yq1KKNL猫+N/ʗII /tSt`JNB.fwLIA9ҹS'!jS'͍ v0F8XK.W"{JXt3aAa:U~HbEf̸Eg.FYn6],pLѥS>HzIdm"Q`.ԑjfuQ `*.*VV0VVV(((-sHvu2 Vwudt1!j @m:H•`wOkFF6MXDZP{ _$cFeDГ %ė_ Jk) #hS+6AJKJ 4L ԁBBaf)O&uƎNN :N2 Nd-$!] `Ow’*Ё6bbt Z(Դ,@s2Ԝ+ķg w w{E<<<ҟ:IL$˝mâ"Q#jnp.L3JJHTX8ik*;a <ܦ<<fxgXZ]=Xg1v4}Z$+5Op뜰p>MWz+"$$zk?DO .B5/<p+zWp- vBS82Mamh2Q7U;\* X%J6RPP7:b= =m=`aT,PPlLF KJUQI a( tG0Q)J.P Lg {yC<","2R2N"֌6J֮NLJDXyǗ\9s\]]ِ%k>)z6$1)0O6~kON1Vm` j%Ŭ].dY'/+)loPZWX`cSS%+ "IYDp]ͣ KKEyD1ONݰ.i] 2cZVV,Z4HT{|ڢ%E@60iSذzbCb`c]X艚70nD *׀yXӢ:FP' D?% fc',BB>|>/`Jwg&,f7V& rƖ'PFqӢj&b`Hض)V/*3PƯ!Jb^T4<= LÀXSV+.2,6͍EaX&eX,.3`Q`^a:GOG4 ӫx@KS$  ^!@8Vik c h+?gT[Vv"TZN'"a22[NF_Op’̑&,IOWW658!>`HAUCzC6szN((AM0RCp!b&)`*2',pjF`̃@)z a4`X 2PJ5ʁ0(%, P%j(]nj@ǔ:X+z5RTxS-͍BJXh;a0KiHF^v`.akzOHC y ~@( ;VXic)U3|QXTGN&j%d^Q]"}Lv*ɖ.fVS[hV-OwvEX9$&,:;񙠕_s .i8WsD;C$( 1#Pen@RAF Qmmꯁi Ƃ$XK}EFkuA,CaT x Xik@d`GOGZ[4]ZZ &+)hk;;8h:skJs{i*(Hӕ;V&Qm,$,8A"V7yWcTstJP*Qp JV) &7J+@̢b` 04i**k Q b,830{!W 6€UUiXZmmmnSQ=vq/`~O vQ% *%Zx+ac:QF0R$s֌I|g;U:jJe`Fq;̦nmםL7L!i+J=YN /ٓ} 3αpO\-E-P LXR'Mx:He 7^)US *)5*.  i=LZ1txo,)`ٕJR>Xܣ4,R`XVaP fhn!Va`mW i'kkFne`4@An!hr؎rvAi 1i ˁ[@ONA"zD&l ˚Ok|u_:bl 3u$r@zdlAAo Ee. uF}@*Qr)7ށF$BjI Ad'l ~"Ts!!FF P*@UKآX=0EiZZ@TP$إQx&Ī<+@6'_g$̄N -ձO@OX(XqVcTTaՋ[avrQ}AF !Ub"$*DS Z=dK,pXbը+Ԃ+P.J´AnUӆ@] TNil`㝘 %V"1wx5fQ@$Y&S]4Buv:Gc;X3z>n 7OhzN,F &``XT Sƫ(GK AHI xR8ATƣ iGW]4D#YzMj "FQ1,[Tޠ6Ya!zP7@ @T Fԁ-- ! `eNR@,.*@}m Ē8AZ lhA1*jhSSM@3A aFmPR\,4`E8@ڭXA R:p]AԹ]`*R_oj[ ]`pݻ U_>OI.SD7͔ed/ߠ[AEuX/#7D@`|=˧UirM^qKܰrՙ O0cy嵕l;n2*Hh}0 B,VԎ;dUUȄ^Nߚghp2D,@U:<3F#)1zY>Zs!?1CZ%b t D2 ѹ-A 7xJQ~/UC\ҡYޗߧyMvڼi:/A? e^T4nQsGPV;.(<zW?5UDNok{J׋?a^} iGmtZ/sT1kF0r lKvʭt̸ ufk=jSh([9머$e1q;4;F˺C JJ~uENۥw º ?4a1 JcL!~xaR@}nULVZdTHtX?c\AgXPLTcbR}_!-W7 Rʰ7g/ HV ɓij _d)AZ4mQ=zP^<*%`wdmV v y l H- 6, -nc 6@븠ѐdaT I`9HQ `O4&jٰP[$, eU,{8tό /8 Zq`R,"01~+þr(oW@{xeƙLj땬E $r8%bb9]r ,YԢ%%_mƱ*L kN!)-/+IL;ֆhJS`zŢz <(VbEH6Y֩Q Y]% Vf58@`Q l2jqց+Bp/FO pXh0 ,&SĔT$TFI@@]`.)!x @ճ QRE8SY- "O*nrw^rW7g`Rz7S4}viV}x̓n_*vga؅n+vf8XJ5;#EWZ O`S Jl2p5O2&_XyJ8IYBRVq:A],xXX:-֏S'VxgAs$k]\88' dtL,}w[K/z.^k*i݄ގz[ƎXۊc/$xlM@mA+B_F2  2{K-U YBFWҲHsb d[ZQrH\A 6Ҭj{8p_.x3vA8 A. YKppbccS8EYw*UKx ~CÔE#BDσuݡQ+Chb8emv*Pq6qpP"֡VPK{Ptqq* w/KX&_ j)x`a;Zvp&vV[UqL36Mf 9gT|7CB2V W*f_-Jiv<| kBb0w=Կ s#itj7*QFHaB0= *`Ϊ\#߃,3bE3*m|g-ZDTZ]!^v+ QP BCRaEBP$BJleݙ<1$,!y;=MO`>Ju `X}1].ҫ4T( o */C*VcsBGgiwhYv"I?;ɨ+na_7}⣖_~``؉C}pbC 0Yc־ hu0$m>vcK*Rq%h# lu'uE>U#(=guhIZf'GGeC1 k0Rm$edhR?v*PpQT! $b?AG2.]*h[Tȯ{EqqMCCkޫntBoW/`uVþ:t9, 3R86R6PD5OX{zV@YT{\\a „iz[=[D^ TD=!px}s#Zo)+=5\V^vѹ-UFaӲ:zx[ U0`{c ^[߈o9ց7s{MFf:/e K3JIhNXE,Gt+&h!U0+'#.RH4)#P$A'B+RBˤdYٺ FDo|XWhՄ z+B+=4I\ g/bElbsԃ䒜̛X-Z ^y2>_%z!Vl&SE )Z0)&I~pؾoh=u7n#[@ȼCS3qMخP#&˵N|r)5EҜ%:~z祑)h&׆Re gU0i:B2%DWM 8stkkyH L-D8 jT"uK,kRp@O]`U0<86ꠅ@L] @@Pvh_nv %-wu_LqſX%E9XA!| ,B"" e4zHDb 0"Dt &_RU6:+|WtVeɣ yu4~ΰjzNvp+{M)vtwH8_!i_B4BnBI%j=ƳaInnx @ a|p%[#!+ }'q(.{uwB7n |}k.˄=^nq*:PFhz0ˀFyǴG#FTvHAȡ|͓ |jT8!"yGEP7:%XgDMw#8<“n2m00ޏ7 γ1- *IѯkDBA=u"Q, 2pBwHW1حP Un3/za X@@HH/\}_ButtT(q*>n9ɹz-EֺT!!ˤD{f웞ScuUCr%RBMN%вͪz9i`ҺΖ,X>UO)`/ŧz< PS0eA|0NP -P1Նti.O3Sak@z(d0th C.ѡ/%[Q;}O %!!ӓy-/BL躎埆uOly-) ]MWv"ل]0\,[}ԫC(37&ĨcRr-y)Ven' N4m%DZ{VYt;l6lܫꙚ 2s>t*yǑVV`NΔ&xʞlǿio;ca(o.͚ũ[ @%Kq1_HnNM^]wݍ^+@ǁxM./`H\Wao&(4, nc\z20Jj,`b' RJºlQA*JW#ruy~P08 ymDž EI!3/ѧKꨫtr4Etf%ki-7-1Wς0 Dq)A\C"YB Z_މJ7B)^ǒ:F|=8U;t}Wm,Te U FzWC_ )!@"x.W=JCM^bDObf*p!] '\ 919e7ba(8ե\֩ RL$o*nUA ˽\ Yb,9细ڏףY~@Wn 2^"R17Xk[冏bT^HDR09َij૤OX74fRPb0\acF{)L,E,h]Өc0k D~/M jcThK+ =JSmh90ywӣ 4 Z4:ta6hu2H "QP%j Jۚ@sR *_lXbCmHUZL`FJ꺩 F/sy'llshp&)vyϞ;źEr1DDBI խD'QfaYM{i)FoP񨣌 6Bq,07`" J˲uJΑHyVfW4&qW0 `grM>(y@3.- ptNWYWusms-!8VW˜*Sq .D?غ $V5ѥ"Q^-+FrYB ƗȶA57I cZ*C`vq=0fhkh( khlQ/c[i{O4૎ugaE75h2:J{gA RCw!/XKg_`=vCkyFS/O>C\6zlW(A2G&hAmq?Ƌ 46),#z,4дW)reKh %3O3 aBA^əRTDͱ5[w*@m,piHB/*7`sK@ G| s>yh3Fns=#М>d<2A CEjyV.KI"G=r 24TCܶ2Z ,^J+#RP> a}H 5yiZ\#tγ۰ݐG.fe=W\F``:̀AhccC8T4 =5$z[̂zh Z3 ֓ Q~Ո=Ov\QOcԧ$M|פE+Ӯcn`5C7loDLªy]6*VIX29Z*!+%a%H)2`MOA6$ :?4eeTT.DAz5-Й=o8RAŨCg<´h1z,+4tP}t-,qy@Hހ,5 /0 dv~.2A8, MXI!r F[t#: _Bd|RPM : |~(KDEm"P3fA0YNB5!C'4휿nދ888f.w֧yL34^$Z%{MCiyϟS 8-='ak11Lv+K-+;T,t7T&BN52H<}=KOGNpɞwfyUn 1<.`Р@']Cypu VUJ=ϭ޵`0ci ҀJJ`cLPqz7x h60FAQvY|\/<#Z^< F[]\ `tK*@p#]€ hE l`BC40lF&uxLEKcmk %ȃOd% |O08WhA%hz)h3Dr~C2cU Zhy" GX,X[]kbכa)²yf1:/{6q6ˊnix*X]Ec< TVJ]Ĉ&(Pd;_ڒ偦k2vvfs,-]~f1NjF;mJ!4 %.ŏ[]a.KPb0l ]ڥCn. }Ph;5KNnI;?\>? Y8g!nizi^Lm`:3\w;تH kk 5s[{G7AHz S%T'QSX\_*yWѮds6ٙJöI,0HV=) h opw( 0p֡tqkN>С{՝]!CՒtz¤=Ay( |)Mk]u_3JpM8±,#uNW*8/B!z̀nXLђNr1Lv+#`:RuQ /9L!뜋ЩtIe*uw1#^mR{_"KXaKq(Z7J:sAPNNr밮?S1)`yCÆ|.Fa]3:@{Y3ԝF3757HMMK밲LO9L֜6l,1)Rc_Zۄfm H YOÜy8=hc.qaIuq|Kz @ Qx[v)Dptr8k:H}/蒱7r{oX'pZ -0ڙ]KeQU=>~v8fX}uMvfJډ.oP*658Qp_<`^ͤI *Aav"_? ILwԅv`]hAi+ ̆QlRBh˱nhVfƢDz]10 ,#JRԆ 5L u|vb*+SW7[췧_kXqp`$(Bt6: e7e\C.YB} aj)|M CluD;` UDNh$hu!k_|]#ڈJ MW{;$A's&>9 oSkzCK닧'V+Va"EA*ƞR)s{ﴅС]&A2<=^zeי ywʴ 3!tMHw8ʃ0*5z_DbH–:θwuP2e'qKPR]ɀ!c@gh]udB{˸lԨ҅ )jH<˃sBrA6Edm.:Z u?&Rjϔo~Ovb p  ]5)bbI]aJ `^lW7!6(\MJ0vS@KC%wWς0 DC阵ΡD()p]܄AhV5bn!S {w/w^_dSy~+*O&yB\ ^BGJpWnlkn[Ppr!J[EǮX_ҌQs3l L7=8++8":v8v JU[(Ь<-Woz ز?OBf\!AF h&E~xȺλ0. $w1Ըȩ2hM5VUTf1d`K;Fc@%(XЭ#H'P$oSPONv& 4n&ʣ<s y öNhV<)ʭL6@9+Rƪ,L(QހAX.`R>#:Ř yU icY`o3JB%q.BV^.v!}"z]!T)bwmuph05kG{Zz(+cڒn2F8'>e t҆)\v1m,}`kّ:k漘yhKV9.!ڤa= oWR9UAֲdOba(Bt"nR,$k~wiYP:p{SzNagds Ből:BNjƑqU{dK u@'* n$ ".U1 d^a 9l9ӏPH3R٠rlúҤ8:`,t9|t8c=Zr ym&1 ޙUML߼_ /urcÓ~lnfUj=lQcpN{-œ "x4i'í); u[nW-Fμ[u\Ҝ3i0/\kqza f4R~WbƔ̺NoKe]xP*΋ leAQvԋ}!C .5W0 #_(YXZ&ݲ1tcx|&LUf>n"n C0z( a²+{Vwie̞W fܨ m%r eyd01Bq Œ.RZ )%(]M%k$Ѭڮ _pw*@4 Jv-VBSq%dpY(:tz}ܯ/ Iˁcm}M ITj5`uΧYw`(J9 !lQ҆# VvvhNKS..hD =<%X^Тʩshpް0OY@ #)u w>] c?·]= 0 [\ImVɱ͵ݻ:8KBKKr}Uc._ G;>)r%@&[`kwuО{cɹ,?t-uIZA4 Y@. kpd=HWG߸lA&%+D;NѦ!!Ӹ}S3JJ Դ-S¹=X~ʅտ2b7ʊry 8s b=UHn݃t(dp7wn;MBnLݽ}'wf9-ӝ49IyXyϮZ'u_S#!3LȩIkMC/Um ,`E fվX[xRx氧zXX xtOH A4iC/# YsPB΁nj H,cB^X/;ca KVW •խQ?pt%Y(thw/w ?ujۥ[ Y|yFvr]*D f le%#LH% #W'aoXX(s͎MNg65P>ૢ$+D$M}qȤlDNMkzYZNŮR(GzQKjq?\$Tqa`e+k"Ԩ*uHvU-S컳cqb.nb.5ۼ4L~L|GB|( ʡI f[& L 4,S>f g#C?Kuӌ:Yb5\fL#`e -o7{Ʈas6U'Zlc DpTdlI*/IcK<L$q_ 4s8 pw* @ t閆 +5t$_: 9,"/v?m3ycF*LB"A`2{Xg/2(FOL5e9._^6b0ggyϯɲ*T@Ы{]f b0p++=h*fJ $ WFOAM|]pZEҪ gUp4h #MTʐnAkΐTR 4G ..g4!:b`.+v]cPjU~`  V@qnXqRB\L> Įn (00ƓvKԁ?O9;'^ ̬*qu*ve/ZŚ[IgŊ)r"-`,3ye$&I :(}ݬ`>$?oo^cdxIUDB-0|)T`ϡ& SD h;kZ7WxWav`!S)lHt"dlf 8/9}v$tf}e$H_k0-F:J&U/,ޓt1)`nFW"(8g1nzs Q <-5ȯ$WoL:3.UG:읫򠅽>Ps( 1̘~!c2$ %`8g?$]ӎ͘%˲O\MH~{^eX[:5XY@,[JZE0T9PC z9G5gE#p20]@S`e9y,vT;\&!T$ϫ:++ݦZ B4 ^ōi=@*y*׬p3Fa1{gp ^ܠ{՗䌥xxkݟpN5P;`tC :fpmQggpGR++fehBocx&DU}\m|LɅhɦ s'8^s# N(T]0SXREt=鱖N'~ pw( 0o;6CG3:t{v+՝"1sWc$փޯ0i&1IJN6*D60) ,EbB?Ri𼟺1wKh9GA EU~N7U'Un` #3s'&c;N" Xɍ-pǏPb4acml5ب:uOM eJ 2YDU?Qض1^~ޜ5 [W-#ˮvߓZں2Y`.1:j8%ڋ;yb 2i'n3l33Whk泹VsK)K%‡4j]Zf^;v? pw( 0PĦAFC% : ugt tjBrzB:۵Y,xREnB^آCT] MjͪO0٣ k\ ImD2CGyT6\6,NF>?Ib_ '0JY.rQN*& T,2FZcg;N?ɟtܝ0DDMHj<_wf΢Ϣ*&3ٙ?.i\"N }qIa7 ah$?jy/d4xʡ%ŦX[g`5ot$£TbB"rRӸԸ'Z%?{ g`Yo. TfvYPapSbVTBвa*?hd!ZJk`Z(k@ y*Vw! ?pw*P0"8&H6#!*(^ׁutܠ{|j;LLZ%g o©P;ZͰIMw1U%2n151H"DnW B/֣=dQmG?w`pd0R9s݆[>Y}|PS):U,i XOBb 48GT6)p ]xvfzXSM֪ۗ7K 8 !~_^!bz U#VbfT[ղ^FLIS&q>YcѩK7bi;A$;JMA'+Eq@֟.3ۧTW6` Xã_'C*t0צiCψ]!k9ώ-wĝ0 Y4>p n?ܽs}{ݻcǚ%y(bxK8X/Su;$T6*PLjƄ8.4n*Oa 9TȖXwJWLgT~,JwaHJrcSѠt1IJ]5yD;~(8=o.IwXѣi<)+^R0 62gkߣSG"41VP+Fa"( y!5_ӯW'ؽS2 i+<XtTJ/2,|_ ׼^0b!v`|F׸aGh5D<:e+ۡ]貓WH`y8LOADl%n$TM)bEC̎E"VC ˪p.5޼{l֚rFԝ= @Ebk[,lrA$O3* iSyy^_uv<Z>ZۄK[@h5z{%蒁KK=5e)>}Px31 "BdDD<k%56dr&?:"fU~RwMjXSC3?&3SNE@,Wfb86VBje]F*=wF> Ȥؙ20t8y IEAnÚ΀bċ$>PS-;?S]+J2d[PrA V̍Q C܉8T$H;"x4Gq2$G7CqcN*c%f^h헠渘ʎJU\ ¢MקSM$:w'eyu2D.x _ao;ob b {IC|ŢJ|;kk@ȐٝIv^Ck}xcyU{4q|`mXI*ѫ'B1B^*,KL@84J 06ըB$IZClq։a5*TX+nveĶ- 9("r.n(/}hC b1n}&9LWȆOܝ 0dk_" Y".n7'g]>@2gu~_(GڹissD~X35Uƃ݋\_Ʌ7.ٴP$-A>ixXCR#+l~P{(d&:KOX#E1B&o$$R,"{Gy %yWYTn] +55q]qV3"|*wnx ݵ0 Y^;ʃ҂! !Cnѱߓsf3BVO>4o!|9D%} }N}9~;tp5˲j& .aKy՜`6ZE9 K7 |Z(bH5 P~a"aO$٤ Tꉀ7.A \KuL!gPPw* 0 &[:w)6!SUЭkt!NY~˕'ߧ[].˶?γfg AP<+oa<h]ieTWnr h@i?zxgu2 b-X+K`DEg,$C;6OK@u8ѩ]9/A0ۊjɃiȅjzIkWabtl5!3P=.;yw$bMtϓE*=]UAa|FlA ~z wRW1+yJ!W/\Pòhxu8ZTS5CnCk+6q$pӭhZQOdzL[.Ҥ#>TW VQ-i >?\R8E4l|ܝ 0C/^ %S [IdFIr u>߈%Mx>4L 2nbL>aQW8T}K\.`փn d(tDy 'J?ޱF$pO,"YM-V/[N3ڻSa4lê2pSS@Tq8$-0.Д0p`\%cK鯪p+aU Q5d)Z#L|ÇGJ zr/ y}Fr-\Ew {O e(f^E(Z?fh8] '<9_,TA]#m1V9>lc$ 8Ʌ콏; ֺ=k!bgz`YB8Ooutn9OQw+ @PTk$b9 l7 XZ $&o_Gsk~aۜ]Z0b@z*>^HHaԶ#&!/Ge|J_P'D9=yIFbQ>+-%A.!ъ;wydkոu[R{4fK@FlúɂG%倢jHg{]A l:P!Op ' }<;3],jtfA>7Td^ly%q4+|oGK/RHޛ\F;n!+xV`je/*)_ב.|ǹʰa2T[{褓r'!PP|(Qf~(>P)ReQ.,6\G0#wg0A 0mK._.>ŴSzEUk37NhJǏ]s3whYa ao2Y8NmO"c,PX{SEo%k .P8L3ܯ7@͇ Fvq-5RT42g6ֵ! ;šK|\UwȪ/$,= ?pw* 05 A%SL&BHu'5s!{'q;0^l7{E%+tvD.qU(۳tS8$JC_'c`ن-ʱ:E"fjY2"@Yr"VBE63EKDdd'TdQ4RXE\ Z_Yx)FHg3Õ5p1?XbYʁAVC$'J< lYA>p7ɴz XnȭzS a/DL"IxJM1hkWa죯yܾ+ |>:jG0x-2)#8$0UVA`&Cɚͩ5cG1r;-.a$ VkGa@9 %ɖ WJzrV.&YZhƐU (cg~.P>ΪNhNr#U(EZŽs{Miwl+p:koEjO[+Fa& ݢ& w !BT;I;kftIytw[. ~,} $!FCs۶?nx>Ĥhk %t 8VDq )1)q!%Sxd5YL[*"KqR8Ab3g5>:_nrYFAgsYqH~mXy9pFūᯑKb)R7|qa( CJfuR;pzwfڥj*u8/wlBbwiWZ,A ]E1Ȉ 7~㾪:%A%A*R}!V<7o뫢=hii3"CfhI;}SJ9qSc-圞w]|)8Msk)07]D,R{Q e0_:Gड*[A U~Pw( 0.MFSC2B7: tjM ~ @0a.`pK0Ignyg}wITA7t_Z)䴋┟v.Ev8ZIl!o1c*ޫ/uC˺NGlE/F6(SK==t6sp| B12b̎ 2~,I0Pq%GX{KToʨ~vmέ:ktתGHC@5uy7 qaiҤҒ$I T {|ot!Ežs|P~ּj8̌+hqIF'ƇEf)Y0"dS7^Ȩֱ@r0F{!<a\fzY<6@b'YiXق06\շCtmR$"/>|o"Yˤ^=C:K 3_Cd*?E]10 D`daBE(! %ݐ_`_9QǪk09.?]cE5uuN\btf x7^4$pE7yU8tr,iP34э*(~H)W:}vp*,[3m, %ZP`*37հJ[KjcXq1v|V53'KE& *.ؑE81O&:v.cY"n`u=OJ] $Nu M քMݺu~˽(OtlkQ ը~i[.๭ WcT:IxcVM,O#'{])qJ[q rg~ 3sףZ ,t &Xv`XҘLB-2;d`z@&W%vdb*'VDaRiܐ,Rd2'#wW DG)bHiA3tH&n_hҽsA4^.݉lf0aQ#(5GsKB 2ĉMiL8S)4y'wg{q f@1ʱ4K,sV ^NU]Wђ^65݆/D<(<-ܻ(EdPz5W BJ3i7jf+# .Vo )%f$Iq)?s_8GΘA¦q31 .&151R&QW67vG~EVg:p}]Rep] 0( ~<Rw-:,/rch'HqJ7mu׎w-@BߵСUS/*|[6wWo+P/:tH$TCLf栚\3t#"eV]XOfdNM>pw* @TNvtzA M VdO%c.Cޝֵq <ͣh}٪%0B \M4]y뺒PÁdy2A"ͨE󚝇1݇]ϑ>X{'bs -*bMFbjlp /-C=;^bEd?4ɉ>7H2 C9. c}U(. B:4RB5u tLfnE}ޤ,IabYt{}I?(BÑg:3zU `bÆx@< wNC2q8T$YTųoKz5AIop')'[;??$VӾ LRw;3۫Qi '湘P ;ꔐ@%ug,e)-9eI8b}Uvv4AZҦpbѢk@.wy{^?$H3޸N:GM,8A[Sm6 d5lA@>%tP7LaGJo=K17ݖѱvimp$M 3s:,qJ:6M{.?q% ӘS7}Q~Mmʾ^UiAAתYQf?1CPA fi22l$dYUp|^ 33%i긼zgax@kLk=T[X:Jԇo F;&|%R`!>i0&JAED}Ҏ7">KeD"=pH}6bvh[z(Sf/Y@em"ſYsMP["Q~rI(a:Y gix ǩJ#5Wσ Dn@R:Hgl&?k1$0z޻̱v/WUbA=`aŒ-7;I ecsL>ԀlcT'T7L֜3~ra47"Qx,Z"@7娪w2(*b*=(2:=]<2kfwZŴ(P ;tp 0(ÍP >qc=Uf! t֥ Cӽ޽K޽Υ|LwLQD8-CBn"?m֔6EMQG~0wAva=G qWIw 4h63~pe /˼쥑 (q8iՊ@쵋qP(E[ _ۊbc(MJ?2Yp)% V'9H/n3/ $t2)9`'4Z(!`ÐZ )TV!ҋ:0=(AA]A`++bD'0ly0pYu0}Ț((8UKz'%U7`IC@S?%mL&}6kl h]xc9Hؑʐ @㰐@WQ L;d; :twʸK,aM3T+gTL V"I2ӿ0,s榇$>i*=;l c5L?Z_D Uy8eg2ޏ8T4uԗ!hZ`!C X*d,009t6䕂%ȮPl[\nL:L*Gz 38XIlKrK9 ;ykC+@ճ C̤c@D+I7AesȿZ)KHr} p).cme.9j%UFmD#Z|t=&9)ZeZ$iz'$SQT )VTZfs38;4Lٮ:jW÷LM*) qL 6 l[jLilޒG3ᗿ‡ܝ E]JŁ~@ %OKcguQ!w=5SAWJCcEp]U%2Xcd"@^ c VUOg={ e!e%.nnD R Ƅ4ތdA<7ǔ/t8iOu*J插^ƶMC4Րbn<*h] P1 X)V/1Gk,I6}WL biYFT1 }C.kT`ư7Oj<kliP{zVv]-Ϩ$'x @MXKU 2~bh-BqBr 0Tx^DPѲjܛyKkX,\ix\lϿ>pw,PQQ @lﻗT::f>X_ Ol]WՅ͔) T`:BS-Y8͢^ۜU0N*̾r7~xscEbt[%PuK,RR@u3hQkRIͰQrvBeCĕCf"iAH{jR6!arБ­h)c}C#X  X;: da# dRAks[VpLQ`#kb 2= 9w+ˀܤWQ :K4 ^' BTjVs60])hmMNF+$e*D <+- F\ +SWPI -}c&IYpM :Y La*+*t 6(NbS,o~Oba -:C11B:Z7콋.-]!\wq}sڮK: & R .IPxֵO41pMJa5y5'sA0c:\~,#$Q-4,d@/ m}ʌ{_N׃N<ʦyUBZ[A,C{f1w5^wu$YʼnziCU\RXO]1!ܐ!1Đ#HXq,\FceXffX;?ZS> 9o^Bs3 )\*CL+=S0) B:j{$(aC_!;.uW4ңZ]ˎٷ򴭇]!u"r(4$/"`eiϋxg*Ԣ~nx @  uꚥfh)c@!ݞw.jK!{{^{bb$_C(.#ElVMem0Y״4?ջJ< Z5⋑##>2]."nclU|qY9uqr) /n8Ez'=׽~hA *B s֕8-Ӛ쮪xњwڀ1F~B]0m!g,46%u~>~fvCz;`]hޙ|q7Vp&L)uM*cOՖ~jp- h(*)o' j`\spSe8tWC#K%J? Is}[wƱO{D,:yáZt $?ātM Kgg Pގ[ҸR^ LW9h%tԫ ab>5+UNgY?@-,?DEG"̈&7a 솏] %L:0СIi l&;0];ׁhBt{X;P`eoKXJ7JxZH_FDIxgG~iq>|DM_պ"alE݂JI7I2VKh%/$gt rn7Pup/ambj屟'$>?zj\X&@z !IrO5r>#;s\WDnQ30QBttiRMaP) t#i7{Хs7f8;{,y7̆Zsp3>Ǜ` a9ҾK0BYTC!ޯhC F 0g('\0eB;~2C@D\+(25WGjgMs!! ߱8F 5s!tx)Z;UrH,7aR/ZDŎZr,gW[T!#:KXA .F8b l.M7 ?w]tndb.p3a5KلQyD BiRQE aY&(Z4e/-؄qz[gs]rTһn6Kx{eOޭ .&kz)QwVENוvgZU_cH1SȘ̐{NsŦt<=ı;caFQڱK*y("lHۙ-[n\a dZv w֝0x.3t%QM:(IÒmT* \9! Dz8Tی\ +/5Wk9|i*8Ԍdbk؛a#H DTՏ5$ ͧ~ J/ByX(j8 .l2Ӿȥ:Gd ><Qw!UU/ޘ^zO$bEzlul"PaB6~X"W֍¦* O-wW0D4A IM%[!.[~|i ;)qϪB M ?ÿe-%auV\ q#Bwf¯Lp*֘g$G62؞ GŇJB/U] $-N B+K ,2굄S0KW>!Z"oqb;}bKKg&MM[ZgYt#5^p32yBz5ԇ04x]-0$PLAB*5!U/UT+9{_wW`}(otxoo}S6[`.Lq6ye!J`(*.JSh&Xܴ5Z{5%uЗwrVm,m"<ծk/9@tK44L?{(+h ~L¦`rHtq46 S #Ua lBiRh4 iPN[;w xz-1%۷u/-Rů`Eq85ASe `уiATkaUDX*1JI6 3[$ >gRu) ؗoy,. YB$<aOf5E7 R,]{i͒R=T"^X6RC#(0+(s|cOՊmzƵxY:p-JqgqS uW~yioU4K~3kC ܅GEvkuXhX/bA(H]L1à")07nHt.xw |.cUkc檲YϑkPF,/~{ HAk#Bka$u&Ծkћs,1YZJ'jsS|Ͳ)FTBt^Q[/UL_J(u:,NQx4j_} H γ5EwEme憙;X-O+aJ6.@b)K|-R |ϦM;t\~dwX}oQ7Ĕ:A9P*/ޅP]4ƀ1ĉ=ḀOѐ`[2l*lT }_BO\tcѷ&T~~&6af/-w׮ PNt CCl"ll ||}ֹY>[3ĵ pID UߵOe*[Y('_mV 7bl˪4,V=2NfPPW}v~ )0TB]Ɛi㱗`1 tau#ZgҒj0Mw9f0>wW´A$+b Uֽ[.\D)ϾXgw4 iLJ)wW IJx!4#)8zn~`߻rkyϖaZelT-kB{:GNB O!>&8G9H/"C $s$@JSĤ28mkOd6k01u(ɝ.څ2ΕJ̙u@3P3&3Ο)8_ YL'U΍9:d0 B` ?(KhLg\/@cGs^cuX`"#!<-b!5Kj'C:7[,|9߿Y|8f:&ЁZƆ UeU>xc`0.Nv+̲L\|3swgTcC 6xUN=,^@(jfDmj:HWYz[aC"l:MoHdT-w[Y̅xd(K1EpZzi4.ⓥyFP/_\C^A„KH1 XiR\1u3{.hӱs''~ޟÿ i9ʉG3W^ˢSG^3JOu:?)D'z@bJ%[_U= *pvT'n+gڠ \[;E;TgFHN&`@bAdBc) E벱DHS#,ߝRcW\bHS=*Crm:FMv yPr)<[Ae 0$18j,B6-C`H,_NgŠtnǎţzUU[E[2#'|NBGSBq> 1%bYj/Rj/,7Z:Dtcs*556X9kL1zL"4>Qa(lE8V(! tt:u U`DBg?Xf18LqGgݻ1no7nrƇ1W;3jy/%rdU~!#m %<Лn2r2}d"㿥a "o6#yX$ַ 8mgMSOUSJfTcTZl{ҹ [O4d'z ݵ0 1)f`S8L&[g4l3=)1[.ٜIC;&]a0ഞaf- ϨC%J;XڶX(|6k~o"ɓ6qzàLwBgYE&AX@4aG5fS"t\[w\Y38(%Oږ\M{9JW CxU:@V-ap"pdAf=6+|  CA0<ġF`31lll$ |w&\/V8u@UzК[F?|vF9-<NhSELob=ޯ Mu {7iN7MӴߜrӆQ4iFh5ݶq/Bq^~ޠ?)2vd4gLmg9qݭUa3(; Zoa5b4=aoba *AQDInY ](ֹ !xܻ{{gmy=wu;0cނKޱBj]_i܇LhujQW?6^! d#ҎX}`@ 9%eMmx}pq+oLV 5iRc_,=.\Km8&+^w8]Ό%LۼAb&XX]z 01JTE-_`c/#c粰!!N}g ϫHIac?k8=9C,ZĎK%SD'H)msa1qRwal'M7J_zS'?D|ن% jQ˩h8t1Ċ7 9 Ux{`kE])n*EʴMbc k}DPg LU-%-rG-+v}eٞs! 7?ܝ10 E;d!U@P"6̜[;s.euW2> 73*$oQ\+}aʡ%.׵Sͅб-p\lN)WTiJQ]ABOU]wnw 籒<86i+w׮0 CY . NiJj-C"?d;,aNZ838be+ƶkZ0fOuKFU"mu40CvԽVG^Z"vQ1٤ol 0fDs8Ǩs!Lb##J2KB)yaD;H4 ysL߄96YF%X9N^hd/>aOht銿pw:A%,iLBϒ; B?}@4&~*B*}r,f@ގ0ԋQ :Z3@i J'ḭH0\YO_I^KzʝYU}5RݚC|NӶWڈD]/7:WeLoUgK`J\(&)ΩP(р*cct~R_V[ܯ—`tF1DJ"IGBbK@qv_v\{X*ZR )A14Rx5"34y˫6Eڬ8L_sx,KL[j.`qzɲ.DZ@boko·ܝ!&[5Y^r΂ǸY@X[Cdg0 yAGۻ7[X B=u=gKrsFUHR%t!:5V3h')Mae*ly2'  1:D16HQ\8D0vm!tD͆S"Yda*hjt܉.4h; PDߚw6@af c b "QCJ l eLvɅ+vn.j%zpw,QC? fD]xgMikVZzRk#@5_mƊ}3^PukdޓNO3~Iz 0 *RP GBBKҤRVRvxll|Yl#BeSab(˺nl?z-XV$`i{%wwc.+(p0sJr;ۗ}m[zcV/s˗@Zq_وIԤ46jL2{̂ mx EK(Y/gr(^t1 %jXf.eLO3C 6V2hɞAGimY`akcx3(nuLPkԓMqs dK3 [݄G݄ >=;Um},د;{9 Y@{ p2sfp ⡏jf͠m; l uA@W@y+ᖰ@}(wg]`,%@B94,LIudhn^N:hS;xov ׊@#@G#Vц-üޡwa vЇ>b#rY [rۧ$bB_Gt NaSO  -:(1xh-9 2Yo¢ SRID@,aEz00;$ɁD'y|2DacAj4)Ea#eSH"I-E- J_L͂H 1hFVVk$:&༌P1^ƊN#3l@2ɂ1`CKbcas;$S(f1@fx@"J)h E%Pr":,V>)Ehó2,Qya E`;Ā I@M J,Ʋ}>Hy@zvxW+rc :Z"p 9+js5!Jre,X Ҩdboԇ#"G>I ׬}o2: Y0_&I!cd%&ɄImm JR|d8+V?6N i 5JH1U8<2jy@cLJƲ:d$ )%䐍YsI) }`\J7 4 2(*kEGx@6B[`qa(Ba`S+%R-K\ E{=,,UNL,>EjǷV-.O7M5 Z88@iT Dv A9Y\Rg]@7XEc ^T yP ")5D}-gDCm攭xjOFHd< L T X& N`/ي5rxE 8ꆏܝ!0fUؙ!dbtkR$~ոz~$?~QLEu{|w)B49 +Pj/>6o;u)#41i#-nQ-|{7s+MqǮHwOŖRʭl{螺kDL[m[#QUqSW] T=ws`Nw%oyw7xQ( `,=Tte$ez &&,6;wMr$[:3Dļ>b>BBI~IU]Nyz>ݨ44Z 2o–Dot!Ξr> ᅬWIkԹMM@Gʂ7 ͂)[Ug0  0Yt0 BAB( $鹹%7?~[˖N{w+\؛#7]<:-:%is7StTaPxтbx7<%hr aC57ʋD`P ΣiNf`~_+99cU>3lS4ÄݥL (1@r1œwW+aة]L*i4h1A7>ͭ.xTt88㽻je0 E",?ƛa϶R Z)7T#=먂Nr #(P Q@[+:-LXsFx1\ @0svjizk-H<'0mk v'}p Pby K]$w9WsX] 07\\ԭչOKEe*KYG?0O'ihR9W[j,jipe\ 'M ]rPjNm ,C ,ESk^buoqv];g|>Vcd0}yտ5k&IFvdp`iݘE_ җܝ0 DY:( [[f|F?s0pۜYWx¬}Hn@x#msMGC4ԁRlI5_&P04`#^q `}t?33}4{F.hJD8>4+Xw;aj4sw?OH[D\[/v?eta0b t @}sW@PYW(s.obA2fCn QHY3g˖!KgSչ@2:h CJXyL7elzUf(aڹ$47Z4MM ۴Lj4 N :? 7 QBD1~bD r ,ajz^zuu&KPjAL'L6IN Q=e@^$| lMaS^KaELPLD$RV)D ghB*ԉ+T mX=2a)罓jN-QOp Go V, (`bi܅2dg tea{>۽YI#Mqڨ^ O-etCP7pb8H aCC06q̚$FZnivCbUb|N󧨦"ߗ"wPqlq;7Rt4^pwŪ0 Z|(l->" eб]HNث'?l$5%zW՜nepe,YDj=.6ek\-\ۻ֎CyrXrCΥqulũ&? }F 8V# o!"DS1L,"{Lʻ$gv,)K`f3 )`Ș_'ϟ6-j::mNzخVRPN2Wpɿf]0+(8EZ(XT^ ܤBABgܜ_H$8_K(xq8A?m4I'}W  Ө˃ǻr85z~EI[Hj!ߠ>1k?39p$\,g]:b+%_Zkdna(b&&H[[2s%~T.DMoqXkz?xmgYF|<,4RR>RXgm4baJlj{NQss] "d $cnzwz*~ќ0y nmţf ~h*Y}N0"ǝ <%Ի4&eAkVS)%'8R$+QŞ2RLt{bV̳ӗX:0l/ۓg^*)$)|L{3*JUiz =NŔ:*6%U Ȗm2k /N~>xTnW8 ʼn>˽^&UlAC-1[M|\8FJ^w2D;(L%EUFP6 %LOM9ů}2Wj0\? Jk.$cc=%rHخ}30a"CIX^S}:"c.ܝOa},VwW?9tc8U. zE-,H |UUöRmW'cQJQe&:;rQEc(='W0YC2:sXGrtRۚF@4V3`*0yA?rpw<@6L0@bIb:X!e#qev묋+A_CLRw[&o`IAԻ6IO^bPt*Vx{M/8k]?9 oϥVֺGr}w,6!i;}R!,0T Q!|"\lf V$ lpdv9-BOm5޴cZb aŕ$ LX4dhkpWV@C'a JK XU+ l @ PFK] bIZ1N )?K,|!}* H&%H(|pPI+QI0$qzBb)F@ 0VdT^Mcl"GӍ %VU> TWbA%A24-]ن<ȃ7JX4{fDp&Ra$% IZRll ']˙Z DlqN$-ܨ1b d"XMQs @K `FH4*jUb(]JL2ћ:/H!K v <9.:8.qȽb\8yN9&/n[f*װ8Hr,[#xks3TC9CWT_,)TI&;) UXaÄ@mr+f'J%AЭ`A2 \}u.7.?."FXDw As"t-]0t ׄN S=EWg ;"ǘօ\!Ұ Ӡ ;1 K*=B(e䳰M.0v3(-3JYi%׫ @"8MHs sDM1[1֢:]:M:\V-?!666NZJSL ƢNS[APs_̱镌%(Ɨ:\_0J "_bДXZ%j]s J1 ,r K*HHǸ 0ZYksE` ˕ &īaaR+,&`!斟^ n!&Ι((䐞nŖ,ò-j $a sB_XE?>l>Axe NXãKRs@IX*t, KG XXb A0"4ak#Qߵ>'X-q&,E.p@sJ#JZq$q[Zt` … =bbkc9 ݄a Ē燗X~Ks$,Z75MA@X*$>(B-P;ؠB.m@l`X(TbZp +BOX9::||yЄYkc1ABXZ J*f~7F:p q~$[q>Xθ81E7>`'g_OXZ~~qX%K60Nc bs @q76@v X~llR ;̐xVhtQ KXE R3^0LC^^P x _ ynŒ⌜nҞŠ@-QZVHG< F F1➠{++0@ ZP\Z AFAXbאOX@πFW@1DB[H 0P9ԝ񸪪|f |WaAL,Aë`ˋ#8H{y^,qPiAFZa0!JQl( `!`54![ Y@}'!4AR63 H(hPy 0r.Bn؅50 0Z>TIENDB`xims-1.0/documentation/users/howtos/images/xims_questionnaire_howto_addanswer.png0000644000000000000000000002017310140441053027531 0ustar rootrootPNG  IHDR1gAMA7tEXtSoftwareAdobe ImageReadyqe<qPLTE@@@8SʼvvXXϩH,+RRRQQQbl"""2fffDDDTTTwww53UUU߿5H]VVVzvvv|||ooo?Qe{{{ʐppp,AVQat7m{|YizP`sWgy䃏-BWن}16ky333:+IDATxb(*+Q0 Fl 0G(Y F3(#,Z` -@r L_5 F(JL@~h4ӏQ02=@fQ0 FXL? F4G(a pdzU`xfz‘4CqX.5У` L@3L_U%0G( gzC->GU61H;Y@e4F(k >̚O{WǛ Pdbdc [Z@ӄu!l&3eT7 `%S#a3G(L@X34ػa/(XUE ӃPU\ISB"DL)@V&27 F2=@a| '#W!:`gyvb=SmH;6LKoAQ@L@X3},W3CnuLMz1** e#wWb؞o GG-_>0G3=@a *OFM_Yxr=(׳sppgr%?2(#=LbENM'ۃl=R z܈{hL@T\TVll`A4]r5Qn4ӏfz 5=#ӳp P)4Vj2=܅pѝJ3猂L%Ьapd2T~JXFUTx2="23\08gfz, AMː -ӣg'\i dz$#a  hQ0dzNIy"}*2T gJLQ0dzn5}LQo™ r(X2=@ 98ekJJ,:DfJv>LO猂L%А]GC0FsTw%R)uLZ! US9`4c4VB,ídz~L@#$#TJLOsFhǒht.Q02=@ L8rh3=@ L08 sh&2=@; F4G(a F3(#,h`ez`L@~h4ӓ0`gz$1Q@L@~eAQ0,3=@fz2f%WVQ_IF.LObLOQnDv%d&d%hfz F3=MJLJ5+ J &JS|fzB F3@aL/*8W`eBf 3=BdfzB ^w רߧ_#U8%FhǛhezy>u@U + 53=-F1[4S7АZ|$dbdcrLVl8[GޏL@C-ӇY񉐮RJ18O $ºt`!P@`FF`gyv*+`^HT c49kF( X=y\ALU+4;r4ezbSGIIÏ^=#+ p7it%$ *Fq`4Sh,YP _ίgzzXMDp,Ј,,yRcU+Q)ЇOQ-ӣG3hc!%@M< 0W5iѢb41fzezj5}x;޸U[vRB~4L@C-ӻȀ2==';77lA;L/++)=6k4ӏf4<$IK`ZRR~4L@C.K{rh&7污2TCl`=̞(ԡ]L?hezIMz[)̏+V##MoX郣G3hk!8O"9pvUH;N@hCht4z\e++QkJ$I\5=0׏G3=3=@fzk*\Y)L?:7 hJO_EO?G3dze*=*>=?ڼezP2=@fz(:.N(dr=#@fzrqYs4玂h4ӏfQ0jz䬽'7WQ0jz(L\hdz-`d5=@fLOQGZ􃶦L?驕Qqhez[cW5cUTh4ӏfz6+ˈe2=F4PьAhZ鱞p@cxkz\# ''RO@~4i ++QsuJ[.CjУdzt0fz35+xF-Amc=@fL? kO ӣ6 *Q0 2=IWUR6rkz^sˑ%R׻w{*d4G3=2=3=b8#Ӄx(IDATxbxŋ (#PW`hNkNyRNќ2 F֜4@r @Q0 W`YSh4Q@9eP)9%LF2Nќ2 Fs 19 HW{3]+­ nȰWW$xO=H J2"s  šSpG++i_ֱ$WĚFsWiRx+?">FTNaB@C9VfSS^"23P87s nS^aeS^c+RT)h-A 1/v+/\ݕWx[n}0^駠4_ # SH JƾP sHRdA|NjT1R1y!q$& v}Ŏ=oAy_9Fkģb8Z5&?f)&?Sʒ'Պ)K ,Ta#P ƾp^g2a)4r ZRќBZ3OdNA#5 >`S^PGfV(@^;i2WHZQ@e0Ls @Q0S)4SFr0؟@9eP; 4SF(xCDNќ2 F19 Fs(oNy9 Hl7S9( Sh4Q@LN F(ќ2s ֤FD@;i uyDuJ+r @SFќLl7)o)Ur @ ,oˏ D`z4 pN 9  Q9,@0##-aCCKl.JDڙvLA)XskuќBKhe+4W#KӮǾpqu @}5+$M "z5[_/ u(4^@_2XQZ_!a(ǾPG딑KhSh|EОORK: wNќ2SF19 wNyE`&0iijk4 @SFbr @< )4z()`Sh4Q@LNќ2 F19 Fs()`Sh4Q@LN ѹ)!S9et~t~()9eS31Ae^ќ2"s @)yc4S{ e*Jt^?SYN 9\ KRNy?kIR 6q 06SYN r Z ObEN!^b49 S K_Q;WC) ʫWIP#ќ2s @SDB9.g" aPCY9ex".S^)DXrkskLs:R99ex"S]1ؗ0Z_D\Eci}aj5br @)E^)SDBh싦g"Spg ќ2s @ $IY;SYNќ2SF19 BNgќ2r @O]K< )4;xtw( &`Sh4Q@LNќ2 F19 Fs(яG19 FGGGG19 FshN’S^P9e4  9j4SWN!F)9e‘S`S l.ac%Q%_!ќ2r @a) ,s1$9e4 ɜ@Xs+Ԝ 9k0GshNN9 WH}9zR@ќ2r @SIќ2r @%& :)9e;–SP%aќ2Ls @f)@9e4br @ќ2 )4SFs( &hN)@9e4br @< )4z()`Sh4Q@LNќ2 F19 Fs(QOºElќ2SFRN SPќ22r @ќ2 )/ӂrA?9e4 ɜ@)6"支ќ2SxN u Bќ2|s @ShN)#/Iuʛќ2SFjN jF)9ex"ԣGPziFǾFs0)D,9e4 @T)ќ2s @QNyEt7e4攡Sht-hN)9eSh4Q@LNќ2SF19 FshN)9eSh4Q@LNќ2SF19 FshN)9eSh4Q@LNќ2SF19 FshN)9eSh4Q@LNќ2SF19 FshN)9eSh4Q@LNќ2SF19 FshN)9eSh4Q@LNќ2SF19 FshN)9eSh4Q@LNќ2SF19 FshN)9eSh4Q@LNќ2SF19 FshN)9eSh4Q@LNќ2SF19 FshN)9eSh4Q@LNќ2SF19 FshN)9eSh4Q@LNќ2SF19 FshN)9eSh4Q@LNќ2SF19 FshN)9eS9e $ {N`H)`Sh4Q@LNќ2 F19 Fs()`ShtxtxShtqtqSKNy2hN).?GOhN)C2hN)@rʫ76|CU7SFsP)C^Poy9e4 @,yl :o4SoFshNQ9 H)Fќ2s @S^"FshN^9 1[#aa.hN)$jќ2 )4SFs( &hN)@9e4br @ќ2 )4SFs( &hN)@9e4br @ќ2 )4SFs( &hN)@9e4br @ќ2 )4SFs( &hN)@9e4br @ќ2 )4SFs( &hN)@9e4br @ќ2 )4SFs( &hN)@9e4br @ќ2 )4SFs( &hN)@9e4br @ќ2 )4SFs( &hN)@9e4br @ќ2 )4SFs( &hN)@9e4br @ќ2 )4SFs( &hN)@9e4br @ќ2 )4SFs( &hN)@9e4br @ќ2 )4SFs( &hN)@9e4br @ќ2 )4SFs( &hN)@9e4br @ќ2 )D2 rs @=Q0$s @Q0 )4SF( &hN@9ebr @Q0 )4SF( &hN@9oI4jSk _3`D"&ќ2 FtN 2s+H3 Jр6 _a)Pl2 wN rh.#%{m9ȭ/@::J:(9 pD@*S؜"&Rktk@YF( &hN@9ebr @Q0 )4SF( &hN@9ebr @aAxF(h )%liT:)go=9 FshN)9eSh4Q@LN 9 9/$v ~Gv4SX!`D9S` < ќB: _a)D":@*5SFNS9@T) -5m_XP)D ~BhNMN*H; Z{g"7r @S^!+l9! E::jaVќBfNAJXr + 0(V,S#")Y=ǽBF^)4)o +@Dr L)ޜ y6S)10h +++f Ƃ7PZ_h9ټS؜Vc,Fm6SPs j3 (1tϊNy3s @Sк/^O%z"H}W/xPNќ2 FzNA)`P r @Q0 Sв @Q0 F `!N 2 FH$)4: Fs()4SF( Nќ2 F1u @Q0 Sh4Q@L@h9(#TzNy= FHShd唗` )a9e  }2)`4ShN9: FlNWx( Wd^ZH)AS: 1yjhN: F\NZSP"ќB: FdNsW$56! M;~P0,z I%bL9e9jG)9B'z"F覠F^V'XF;: Fs "B ԫB8r r%DhN: FtNy*B)H)MS^aiBoKaX ;ǞSl(Sh)q)1ukl9:M+u f3,B()4bǾ0Z__^z-駼3lm} : F| ZKaFc_hc^ P s x4 d@YhGpSh4ќBL@9q1): Fs())4SFhN!Nќ2 Fs 1u @Q0SSh4ќBL@9eb)`4S"%=W`NASGN2y4FhS{N<+DD_ppprќ2džSt*H)W///k^.nќ2SL@XsJZ}dq܀CՀ)GFshN: ;I XC^s 0pa P]EuhN: SG@N:kH&Ux@Y`KPNQz%>SFs)-kl"9@(+7kO Ȁ S^A ²kX)9: 8S^-0` 8x~^")[aghN))DݜSL9O 4@*|9ZQ)9fu @a)B@ GA;p@YT,8s [ќBn@XU>ЈNqq_n"_8s GshNa@XsJ(j1Sx 2S^SFs Of.!'P;Nntk4СN 9E(* SHJdzxhN:u @*zMvN*H%\2SFs ‘STV ))9u @OQ0Z < Fs 1u @Q0SSh4ќBL@9eb)`4ShN9: Fs())4SFhN!Nќ2 Fs 1u @Q0SSh4ќBL@9eb)`4ShN9: Fs())4SFhN!Nќ2 Fs 1u @Q0SSh4ќBL@9eb)`4ShN9: Fs())4r(H0Y9erSF/C@Q0RÉ: Fs())4SFhN!Nќ2 Fs 1u @ M9u @ 5SFs u @ hN)PP)zr6m4&+dќ2SȭShWYڥJ0xPќ2SȭShhW9rւ1GshN!N!S^!UpW^hN))4${\9e4[А%&赌ќBn@Cs6-JBǾFќBa@YFhN!Nќ2 Fs 1u @Q0SSh4ќBL@G`b=qB4꜑QP)/!``TNd)Sh4ќBL@9e4b)9e4ShN)9: hNyBa)&˼,">9zu @ 4Yr+V9zu @W(ƌ攡]А)"f)TDCoi&!]7ݩ4s(^@C?/X @@ `'W$QPx<9a9.im3 W0S0r $.h~S R4tRr 08gPNS^!XPR70x&s+LSQ@: [N(Oh5ᜂͅ)D9gPN:}w@9LZcPNsFsA#%~ T c =iBuBZX)aʃԫShfyE | )9e4S)V=Q@: F%))4r `Lˉ9Vu @ 48 shQ@gќBL@9eb)`4ShN9: Fs())4SFhN!Nќ2 Fs 1u @Q0SSh4ќBL@9eb)`4ShN9: Fs())4SFhN!Nќ2 Fs 1u @Q0SS=Q0bIu @Q0 F4]hN: Fs()4SF( Nќ2 F1u @Q0 Sh4Q@L@h9yXHS=Q0R @9 F[_``)ȀSh4QrhN@9ebr @Q0 )4SF(S+9 Fs(XXF)``o})`觼BhN=@Q0 )Dߜr =0S9 SFr`4@r @Q0S0r  )h!BFshN 9 r @1@_? F(@ L4SF( &80lb`GN HNA&6 FHr @!)Mo)`4`)) mڗQ0S0s @sJf.)`4`-q˞,h4)`4`唓uZ_p|(29vQ0s @rHj5LS ,ֺ$xzNZV3` @s$\}. KNyAQ0"rkHN XNYgy)c9" Ѿ(19Q9 `9ej.킛^[/n"N`DPFSSNșxaaяFH)i},~]dRCzHQ0 }NdHN XNIݡnnXW\atq))W]~9t ׶ќ2 Fs "@))>}7fwaQ0 ha4ZMd F(9D6 hh4Ld ` $2’G( Hd4Z]Md F(9D6 hh4Md F(9D6 hh4Ld|f h(DZS$K]mDL"Sl DW Q DƇ|X 5FN@%6 ;{|*A.jGr'֋X0n48@Ldă41&d"6SE.G{iQ@s@lh"44F@&Q@s@lЈMdl 6 h h&2.nnnv.6nvNd@[@#fggfM4D~"p6:qMH4?Bw 0h"5 J2 i̺ L|%?z*2N6 HYG\!? Jd MhDZ"C\ eDC,QCZ^& +@1m%R"CIe;'''&2")(X$b.]$ `᡹ 1ظI XAHMTDD&/ JdfcZ%=bd|Xc Je00hDF2m$(܉:E19AaMd Pa9h 6 ˴КJ2 5sJdܜ<<2 HŽK2iS]pWn ȈY*Hd(K.\%lD WRQ &4LMch$2D6@ ˔'hD F-Md F(9D6 hh4Md F(9D6 hh4Md F(9D6 hh4Md F(9D6 hh4Md 0,4@aId (  D@C,b Kd4F@&DFs@l4D`/Na|xdG3$E$`&=LJ7W;hTS$1K]̴IdDt";j4 D*R"8B RCMdId̐zJ@IXm GAKC^@&2>Ör|u+!5P($գJ )0cId(Jà"#J&hH' =5'V>T-|x4- `Mdi WDe"י%/L)DNj7!קz ˄Vq̘%QKDl@&2r Hj=Gr"C7ȨPECؓ 3LD@%2?/m2 Յ.i%8m2ҫK"/)>>!R$X{ uRuw)dƬ` %2H@%3"g-3z* Gm0Af%ؔ0 ܦ /@'z!k ]e*Q0 FWьMY6 FgMY6 FkQ@@)khm8 hh4e Gm@Q@@( є5 hh64Fm@ֆ6 FS( p켗IENDB`xims-1.0/documentation/users/howtos/images/xims_questionnaire_howto_create_tanlist.png0000644000000000000000000002417310140441053030566 0ustar rootrootPNG  IHDR a{gAMA7tEXtSoftwareAdobe ImageReadyqe<PLTE@@@8SigcȗϱcØoؘԭ޲uǁŚmʠeaջhӭk{kie޷ټTػd)^̤|Úveٙӱ߽݆у~ö|xȪŒԔ{}嘜ɖĸ{[`oR¼xaŽϽIǸկт[%Űljfusn||ܱwԾg1|U´ٓe}}xǟwjܼǾxZ{EhXsfwmZ뿀mkgbջȄnh-׻ƤqnjʟȊǖÙm׶կԹÂtrmyjT񅃂333֨J%IDATxbXiM`֯gd ќ9 F ̙43G(9 Fs(1gh`0LB̍` @H9s(``"gh`0L͙` Ɯ @9s3h4gQ0s&@Q0Zڙ0-gh,g2PlHƣL͙`4gƜ @s&tgc*߸DbmfI|d!|#b, ` L8ZLr&@ș %nYh#,c͙- 2o$A-s!9٭FsF"=2/Gs&9 h37o$+gn$!17#LFsͣ9s̍X̍ @r&8!|Rܸ  6iFlijFڈbFLbϙC00,į+0QTc0qP3g;YDgRrFL"܈Z/ Hh=K59AMFDv،G1+fDQgbUlՌ`DGQ@Ŝ|1hs&@3S0rflYSfDĒ6[ѭҍXVl GP3@وu9̀֝:t#2] Hq̍a*iYH(g`\RA(x ]}EЮ]/k18dw+m6$42yfFC_ȔHFBsvcj"y8%Sd}L5=! br&1qR əqՙQ:Xf9tzq#iqG-Y&37"a ہ'gY7c:!D kV\B gȍFș`Ll9sh?^c($b5)s&Yx3g8 s~QK-.# s2@'3Nn$S>@J&YAcףVqj'w[^eY,G~kF%FW , uzjn$5df3h4gl u37'2gٰvəDۜI`ϚAC,lu@֙`4gƜ @9s3h4g3^͙`ar@Q0 @L͙` Ɯ @9s3h4gQ0s&@Q0 cќ9 F`̙43G(9 Fs(1gh`0L͙` Ɯ @9s3h4gQ0s&@Q0 cќ9 F`̙43G(9 Fs(1gh`0L9s( uC(F9 q4 9sxL͙9s Ɯ @9Vќ930cMD$NSnrTNGEnql$3L(͙9[dFLfPLT$͙4rF09XXh9 pLfߑ)dF̍8r&.3yrgMbhE w܃M~ȗ*"ˡV01oܼq#Q9 pLd⢘iZќ?gC쉓aLQ/ތ* Yn# o|ݸ]7"r&@3mv9 AM0zB*͘G72&f9-!3437c8A߼ᛱJLs1M3ȜL-uΙ,GRdF_A*KfޜݸDƐ&ߌ~:9 (er&@3D˙p̍juL#)gL%zRC$)gnUgnư @D3܈JEfGL\qL"R%YsF&,KqD ̜ k͢3"V9s#:&33Gn΄JIF&fkv3 lc"&Y"LԫΙGаϙP- r&@ uY~&lP%ԏ֙9 FW*sFDќ93G @9s͘(ghk2 cFFO1g ]` Ɯ @9s3h4gQ0s&@Q0 cQ0:5s&@Κ3h4gќ9s&@̍C993GhΤy :s#fv͙`4g9gаș|mv͍G%z H89 p̍o΄62 #ɤ([FYm#6i3gL37f s&Ym4g3h̍o#q,rm~Fȡa}!a&̾v.r1g4gv͙њh-6$3Ѳ Z$Tgnf[9 Fs&Us&@ yQM(}=9܈5aFbr,ќII!37F^QϟE" J{E>ok~hcvΤz. ͏3GLJs&@ќ93cќIImb͙gR!ghϙ @FcF(9 Fs(1gh`0L͙` Ɯ @#nh4Gș4fMFs(9 Fs(1gɌ[32 HX3?3G(33g289E r.ūh939LQ0 (ϙ3g2C@XJB Lh#ƒjB`%fc͙!7Q0"r&@aLDB8B1T-g"+#2!$dA [ݹq(M6m9s @s&Ɛj~"314ä́r&Q=9s @9> /X9M , o#̣9sLx PE9U ͛gQ0r&@Lfa dF9gn&ќ9  B9165 15Kh#.gP8rh#.gРΙ`L]> F`̙43G(9 Fs(1gh`0L=md3hQ0 cќ9 F`̙43G(9 Fs(1gC`t|m0LoI Ɯ @9s3#gW#DFs(͙ə37eDRrќ93Gr&@Q@D,,`z3{΄6k|(7n!ۈj4g ͓Y @, w !͛0Tup<3GshΤ$gٍQyphչEx4gLxvd<5ϙ}d# iʙ՜͙C*O}KٟxC!299gq`8Jj73}Z37s'= f4LveFEΙDНʭm!DSXz,c#@8H8*Yz(èĶfwlh3h58e4gX3Ѫh{)9oDma=c3S3HΙh[=zx4ѷYb;6o&ќ9`9 ^(9u&gwf 8)Ji Xr&!`zC GsL 8ڀqL"N"@'v9F,=Z~&*gR5Fs&]s&@ yp%Y~DAc1#t.f3IpFG3r&@!L$ќ9 FLBLm"CdcGs(33g*%;V6Q0 LZ#FzzLL;EƙA(9G(ə9 `93@je'˼2 "U'FG(YΙ˙ZU IL̙1Q0 F r&FH XVX",)8glV9s9 Fr&$cs&@rfbs F6v6yVu(91!LLNy޽rl#@Q0 h3Қ X-bU[Ζϊe214 F(r΄dLH X8ut(ϙ ̙˙^1)*}Rͣ9sLXƄ33Z.^U]33G(w΄gLHk kLlZFLH[7nvzLDƄL9= F ș3y鍂Q@w$)hQ0 `dќ9 F`̙0zH(0(`-׾IENDB`xims-1.0/documentation/users/howtos/images/xims_questionnaire_howto_createq.png0000644000000000000000000002246110140441053027207 0ustar rootrootPNG  IHDR߯igAMA7tEXtSoftwareAdobe ImageReadyqe<0PLTE@@@іâzP߽t333t7$IDATxb` @ s1h4cQ03&@fQ0 aь9 F ̘Ș` @HQ01h4cQ03&@fQ0 aь9 F ̘41G( F3(Vv&#G˘41GʘL<43x @sfA1{Ƅvl 0=IG%hLOf!DBi;Z2fLD P"Kf$2ᒠ,s!)~gL^"=2-G3&r dL^>|ϋVbo ʘsfL^Lr2&/11@'VpCJvrȺ)d#yEj!'u~j$д ˠx{D9JX BQE5-G#:1yi1@G0eL/ 0L^^ZM?PeZ W;49ًW3yfp3&/bfL"XcR3&?lʏT87/?/Ƌ#kv?cj S8 (Ș`֠Lt) ĝ1y!T"pK(c`ma8 "%R)N9Y{G`bjiy0g70EEKp8S 0%9~Lf(o\CNѼ؇`- ?Vu,5y5BetTMOF(c⮋1Gpہ'c蒼A F#Z6eLl2&@fA)G#j}L^<8DfL4x!l @s6,NV%y41Gh F3(͘0ch>c%41Gʘh͘` 1?xь9 F ̘41G( F3(0ch`fL͘` Œ @sA1h4cQ03&@fQ0 aь9 F ̘41G( F3(0ch`fL͘` Œ @sA1h4cQ03&@fQ0 a1yFGɘ43&( fa1h4cfQ03&@adLFZG3h8526yQ4D r<"c!K0cIQ01G3&$ȈLMxOT$͘4d3&/?2&x Lf̡1gdpAFzŝ滑1YrLF~F KP1Ɉ QnEEY6J)7cKT \٫(F֡s4c͘{dDhXe_.Njz3[[Qcğ1h`͟˘*H$J#)Cц[~xdLΙH92bM(#c:ΏBs[1~ :&ϘDddddƄz0Dd,^4ePIlh+cɈַT(%#-ˏRs"WbHߚNtvG8=dL".c2HI0c˘D*c֞lҔ僌Ӣ(GE1G2% 2&@ Ey s`r&/"ch͘`drx1y ,& ͗'c~%`fL=ZdhQ03&@5 F ̘41G( F3(0ch`fL͘` Œ @sA1htdtd Œ @ FA1h4cfQ@D (MĹs4cZeLRcb9~4cfQ@׌ @C9cR0vj>o28}dL•1O ? k!6q*cGL 1y$nZdL%F3(e1p;/L HˋE=l<΢Q)' @2&`̘t9.^^3/ah1I#&c5&`Θ|2&4Gb1I#&cАh0vBgL΢e=rdL—1zT0c'ĢwnhdLKx1rcGibKLSs4c @C"c0vdX2&7 lʢZ;Zcb2&@ Eg^:cV(ch͘`fLVsƎb--ʎ1ht?FQ03&@-2z( F`fL͘` Œ @sA1h4cQ03&@A1htdtd Œ @s4cA1=cB'h͘`3&@aϘKь91Gu3&@a͘$ь92蹲*c eB &ɋ,21$c_92&@aɘ(9јH ϶s4c2&@afL^ԌɋQs\a1#c"3qgL^^^͘1Gϕ. p1If́ɘ @8KHl"Us2a\'caVlU:*;ZcfQ@ @Kh& F3h9 aь9|1G+a1h4cfQ03&@faVv4_ @sdQ02&@-2z( F`fL͘` Œ @sA1h4cQ03&@сA1htdN Œ @sfA1#cB'DF3(͘tɘD\YR2&h͘: F3(ɺ3n)˘~ԣcN-Uz0Tst=JŒ @rt,^䌉v/jь91Gp lG͟Њہ@sDg3n1t *Qϒő1yՖ͘Ch=Œ @D+ˋDo6eGz= @ˏÉHFGeG3hƤN eh? @$gLь9 FkLgL"ь91G+L 3&@.sfL͘s[3&@fQ@9 (Θ4z(=ZdfL=kA1h4cQ03&@fQ0 aь9 F ̘41G( F3(0ch`fL؏Ik=Rm @Xd~r%M` gL’1)jӎfQ0 1G8Kq,:MMIH%͙`4cB2&@afL^~~,'`<GT[ !-L 3#2j` gL< 9 oΘh]yf=b @2&r-?#F3(x3&@TTY⛲q̌sfLH [`]c9mp&s nI/F59/GhƄfL;1G(1hjLGQ1htw(0cZ=m72&@gѳQG chsfL͘`4cŒ @sfA1h4cь93&@fQ01aь9 F3 ̘41Gh F3(͘0chsfL͘`4cŒ @sfA1h4cь93&@fQ01aь9 F3 ̘41Gh F3(͘0chsfL͘`4cŒ @sfA1h4cь93&@fQ01aь9 F3 ̘41Gh F3(͘0chsfL͘`4cŒ @sfA1h4cь93&@fQ01aь9 F3 ̘41Gh F3(͘0chsfL͘`4cŒ @sfA1h4cь93&@fQ01aь9 F3 ̘41Gh F3(͘0chsfL͘`4cŒ @sfA1h4cь93&@fQ01aь9 F3 ̘41Gh F3(͘0chsfL͘`4cŒ @sfA1h4cь93&@fQ01aь9 F3 ̘41Gh F3(͘0chsfL͘`4cŒ @sfA1h4cь93&@fQ01aь9 F3 ̘41Gh 3( @hsQ02&@fQ0 aь9 F ̘41G( F3(0ch`fL͘` Œ @sA1hdLf T(C$cPɘ @/V1 Fɘ4D2&0Ӂ$W1 Fɘ1yLCM؍ĚY~͇^4^ G(| 02&ߏ=T)cøσt4e1bS۱'(tbIIKS0nŞWI9[8c1Ϗ51"eL1 _:BK 9tXND< dl^`bB 70ԓ4A5r'G0Cu_1Ĕ𒼁^z,%-X t5&1^}&(ږC>I͘xC 1)c?8ZMm^3&֬OVS>&?1|b;“@SOkƤn?fPQ @\k۩Ԇt&:^籌"h##LPFe ۔Ek`QY15&Rwػy=1hhgLь91g!^c5Iu);EdL(= F ̘41G( F3(0chx3}Mό @s˘ p=11h4cu(S!1q& ljT3İ7qF $z4cT!RcbKx2 ˉWPx%)HO""F3@eL ZgLUhɘ4t2&:nSAPwX@ br<\??ڂzWS՝ˏcU9>w4c|!1Z*y`3H<ݎ%tB ZɁc-XjZ^@qs2&@ Ɍh#cFpgLdylŽK %g`6̳>p%ь9P BDHxN"2.ތڂzF?#2HΘh[;zF4*adW81*c˘1UlSPc< (Qg/`ɘA"+͘1h(chʘDCQsQMY^,Y~&*cR)ˍ  FI 03&h @sA1h4cQ03&@fQ0 a 2&/VhZ fLjhZ eL^"h gL0ZsBkP^d& fQ0 ʘD\ƄF^&8 gK"͘`1>&RDɘإь9 F9 ʢT-c"F3(fL"-c 1a͘`P1QY\MYѦ(4ɘD\Ϩ,h @D]7 F]3&@fQ0 aь9 F ̘4dA1hhQ0 aøF( F3(0ch`fL͘` Œ @sA1h4cQ03&@fQ0 aь9 F ̘41G( F3(0ch`fL͘` Œ @sA1h4cQ03&@!eQ0 Fx D` ʘ41G( F3(0ch`fL͘` Œ @sA1h4cQ03&@fQ0 aь9 F ̘41G( F3(0ch`fL͘` Œ @sA1h4cQ03&@fQ0 aь9 F ̘41G( F3(0cC30`1Gd͘`1h4cQ03&@fQ0 aь9 F ̘D|Eь9 F2&@1yG3(͘41G( Șxyh&"*͘`1 h4Ä&Ʉh4cQ@|  9&tAF3(gL4cBڬY|4cQ@b "2&2Zc2fQ0 ˘D0c‡d 7eyG`P'c Vs"נ/4cQ@B%y` Œ @sA1h4cQ03&@fQ0 aѣEF( F`fL͘` Œ @sA1h4cQ03&@fQ0 aь9 F ̘41G( F3(0ch`fL͘` Œ @sA1h4cQ03&@fQ0 aь9 F ̘41G( F3(0ch`fL͘` Œ @sA1h4cQ03&@fQ0 aь9 F ̘41G( F3(0ch`fL͘` Œ @sA11G( 03h`fLgLftMlQ@ )ȘɘF(r @k4cQ0 2&???h`3&@!2&??33͘` h xKf...ь9 F@gLgL&ffn`̄l4/(tΘϘL̜\L(G(tɘ| @ ̙D+Nh9ZQ@ Θ˘ܬɌ1y1Q0 F3&3$cP#ؾ/$Ъ9[ p F (zJ4\S<h 3(5d{P }{4.E΀-30 W`LπcF(5=@a"@dңfx1 _{P<={M_REcCXZ*|( {Mmq +yH`aѸ,UD13=f+KxHu"%`  5쭰eHy1!QQ,WPXIA."dz9H`Pr:C ޗ /Ag7z?G{Sq(/!jzF@ʹ`xc^A3BD8P +ÏfQ0kz‘鵼)r;Pg"`4-A[yz%`X4z\(#L? Fh4ӏQ0jz` F3(#L? Fh4ӏQ0jz` F3(#L? Fh4ӏQ0jz` F3(#L? Fh4ӏQ0jz` F3(#L? Fh4ӏQ0jz` F3(#L? Fh4ӏQ0jzB`Hh4ӏQ03= F`>=@fQ0 FX F3(#L? Fh4ӏQ0jz` pdz9`x#;8jB@Z{4G(5=@a." 2}Ih`=+aAUEB%%|6 F]kzš 4gziy e{>~~~.~.^>ž5d@Q@D1-K00 )hc e 7i\L.ښ ps Ϥ8?'? ?yf*<0fz|&πeEc" T%T 4hMRLo&82=, $!:`y^"ZHX]03=6fYLh$))eP!Oz^AN>>b3}1fc@i DfFn:30 @ֈ,75(100430 w<€,V 7)hF2 8|5nh +F )PS/I`E l/9L/eM`ve}<`Cqdz-u!S%(Q 0A+vP-AH2jqyPJE…{P9G-kz"%Ӄ+z™4q6y.^^^N0#4%ɣM"(l.1[X܁5̋X 2Z(H3XKix4Ӽ l^ؼTTF3DZEE`&L U>q1 fz,JE#5.@уt 6w 2=AFhJEnkUX-*ǖQI  z[-3=@z /BBkzܙ4p0v<5=:PŅWKf%ZU/)%[&LB鱶F3=jzڼٕ`<@$gzDMh *{^{XfO#WN82L@DxhIk3ݼ!0-І;)fgd޾gg#hրh䬈\1*E*4PrC dpI8Gb 4K󣙞 Hp jzM|` 8H5=|h %0Tvj, )bqm󣙞Ț ezU3 `SQtiiD"PӃ82=?0zhTezy4Z?# \d* 7G3=5=@a<'sL=0Ëw ܃r=?' 1 +IMLMQ3P^co 0`s?Kpؚ 65Asvv%X2=03 QӃ88%ʞ`7QGH D74Wpgz݂Q0 O!%%eo-ӗ@r<0ϋ bt#@Rb<<$m[,a 2=4Z{W\=1:g7G3=5=@arj"%^@E:@MO{3I(c^A3BD8P  @=`P^LOC=(Fsh' \Jr9 FhQ0 FXM@~Vh`4G(a5=@fQ0 FXM@~Vh`4G(a5=@fQ0 FXM@~Vh`4G(a5=@fQ0 FXM@~Vh`4G(a5=@fQ0 FXM@~Vh`4G(a5=@fQ0 FXM@~Vh`G(C h4ӏQ03=Jhy? Fn#HG@ :82=@L?DFC4h?2=@fQ0#,hy. ]dM$ZL%D]Lh FZ/bD$cr$ir/&!-^LiQ4I驐qfL?H3=@L_ ޡUrq B((U:x1_\ KY4A,ע \H<"7wa/FBs1b]\b, H9qŘg !fh C3}1D[3wKP QsKL?3=@L &oƖHcdzqVo1Z>$bAld53=Fm#,,(Ʀr4L@#:phŘsqdb\4VXJpez2fhcUiehlc%%XbL_LtGsp3rhM?3=@L1 ]R1^5z##a1bc2/t4V+p#--5}L?3=@)Ic4G3=4h?2=@f,]<#"h?2=@fQ0#,h?2=@fQ0#,h?2=@fQ0#,h?2=@r6n#;8j&Q02L/"@Ĝ%%|n4ӏgzž EHЬW???_ ?/h fzg))) 22}q1sK8-Iv{&L? (5ӻ&y5=;V\ɺJ8x\)ӦǖQ%5h'6P222b'oͦG ZV|53=0󖐖鋋NvnAhe0H%||Db efZQ@L@C,Gdޫ7y#z2>RwFYBqFs:E F` 83=u\v\=,ӏ`h8Qhdz~`V<*ӣG3hc!#T@Ϗ<%0/.GG<hI Bz^PTnݣ3G3p42}F(ӓ\ x )EĒ<#ӣ룷JJNfL?p \>i2=lihC/АtggBգ~4L@Co>Y"##ah^1Da:A=Yw4ӏfz:gzz^:f*zL_/]L?hݘ5=f7ъ$*y~4ӏfzfz=.*XP/(ӏfzgzdb,!et™~t o4@LONGX-pG3hL@L8=8~`2=@fz2=`4ӏf4G3ha F3dzssF3hcL? 9<h4ӓ h yEL@~h4ӏQ02=@fQ0 FXL? F4` &@nL?G4G3(a F3=陾Q]Q0 h4ӓa[W"ZLQ0 h4ӏfQ02=@fzR3}q!rY0"'ébd1\1Q@L@Lk~xE@.& 7b4cй`P!hGXKB<bT]JF(JLOYhyRpbd)E(4) )U?jK3oM_8GU3=@fz*6ӣc{XQ@L@<2F13=J 0 F52=@fzrqYs4玂4G3(a F3=9kգy~ L@~tIx0#igzLD,&A GrL?I[0 z6hfz져<2=᭎č`ՋM;lDnL?IL/&Ŷddz  F3hZM?I44G3=y5}1I5}1ɨS1VWbD)[Gi!f1bSE1S栯DCkh4ӏfzrjz`"$u/&-ϣez[qY`.@dbWrˁ fz5=4KŃ-adO5y87^a=h4ӏfzXkzYx3=T0eb $XGY:L~$ezDmvjLP:eĀL@~4SýJ1wR%ӣ)7ӣA_p3z_m1j}1 Fh4ӏfzqg?Lڀ(Fl6T$]]TL-4G3=]F pˑ%R׻w{*dh4ӏfz:{$ň= i[#lj L?ɫ{fZZr3=@fLO^M?|Di`fzZ5=j572=u4h$O'P-ӣoL?Ig,`&3H3=@fLOFB#0 f03=@fLO! 䄙鱯? C-h'13pF(J}bs9!h4ӓGx fh4ӏfL!AГ"Lz 4G3=9dfz(bphLAd@Ah4ӏfz3=5=rn.=ӣ(0H3=@fLO@LGﬡFg|LG9P`fzN{fzJOay4G3=}2}1uNL_\22=@fLOL_8Sp IWqq1aDg=D4G3=]2=r.\0OB=_pG2\@;N-}H-}20jzhj gzL\L/ xB'o0G3c>Y"tn`{^HTTӓL?2=m~Pfz‘c(r;Pg)`g: pʏ(2qY`4ӏL@~fh4ӏL?2=@fQ0GXL? eC1hgz\!&Ah4ӏ3hM?43=@fQ@^~4L@~GC7hdL?d3=@fQ@F/.C7hgL?3=@fQ0GXL? ~(fz>=q4cL? F34Gha F3(#,h~ez`4ӏL@~a3vL@~aKFo F3( ;ӗf!=ӏQeh~-ӏQ/&t3=@fQ@N'nh F3( #fh4ӏ3}qh™ F3( ;f!h4ӏ22=t?}@P4G}z GfzB`e=`!9zg -ӏə F=5mh`ez`L@~h4ӏQ02=@fQ0 FXL? F4G(a F3(#,h`ez`L@#3FP4H2ACf!h4ӏL?2=@adzQ(h~gzBhyL_7P 3}h5DzMO{KF3PX]v`4ӏL@~PQ猂!h4ӏ2(r FeL@cQ02=@fQ0 FXL? F4G(a F3(#,h`ez`L@;*5: F=3=@!@IENDB`xims-1.0/documentation/users/howtos/images/xims_questionnaire_howto_exittext.png0000644000000000000000000001124110140441053027433 0ustar rootrootPNG  IHDR_gAMA7tEXtSoftwareAdobe ImageReadyqe<PLTE@@@igcȗŷeؘmkgկԭkie||ܱw{}ӭ׻ԇmZkhwǟwŒǘxa{jTg1e񡧺뤺޷݆TƧItrmvǁٓ`|xկՂ[%ȊxZ{E~ٙŽljfbñcj}hXd)у^h-̤|Űӱaջ¼Ԕ徶ğyȪsf}x뿀Øousn޲uŚmÙmȄػUá|nÂǾǸϽܼټ{[߽٨oRԹqnjʠeǖ|GuIDATxbXnQ0  #@1Q0 !@Q0!@Q0 !@Q0!@ˣ`04G`H4Z/P/h:!h< C @p t@( 2@Q0!@ˣ`04G`H4Z/P/h:!h< C @p t@( 2@Q0!@ˣ`04Z V5Sϝ j=`N4eë I1Sϙ z6Le>pZr!A'Gt@C}H) RF1D^AR/PLH #xk XףH DJZE* j ds0C*6jjCZ4